天天看點

Kubernetes - 4.8 Workload - CronJob

什麼是CronJob?

CronJob負責處理周期性的任務,基于時間點觸發運作,一般用于備份、資料清理、更新等自動化場景。CronJob也是使用Job對象來執行任務,每一次運作都是會建立一個Job對象,對于CronJob的管理是與Job一樣的。

通過Yaml資源定義清單建立CronJob

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: hello
spec:
  schedule: "*/1 * * * *" #執行周期
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: hello
            image: busybox
            args:
            - /bin/sh
            - -c
            - date; echo "Hello, World!"
          restartPolicy: OnFailure           

參數說明

.spec.schedule 執行周期,由分、時、日、月、周組成,*代表每個周期都觸發。
.spec.concurrencyPolicy 并發政策 
  Allow 允許同時作業。
  Forbid 不允許并發作業,如果開始新作業并且之前的作業未完成,那麼将跳過新的作業。
  Replace 如果之前的作業未完成,那麼将用目前的作業替換掉之前的作業。
.spec.suspend 如果為true則将後續的作業都挂起,不包括已開始運作的作業。
.spec.successfulJobsHistoryLimit 成功的作業曆史記錄
.spec.failedJobsHistoryLimit 失敗的作業曆史記錄