什麼是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 失敗的作業歷史記錄