CronJob說白了就是用來管理Job對象的控制器,
經過jobTemplate管理Job對象,定時執行,最終實現咱們的cron功能api
示例bash
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 light weight baby ! restartPolicy: OnFailure
執行建立,看到rest
# kubectl get cronjob NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGE hello */1 * * * * False 1 13s 7m
再查看job,會發現cronjob建立了幾個job對象code
# kubectl get job NAME DESIRED SUCCESSFUL AGE hello-1571022240 1 1 2m hello-1571022300 1 1 1m hello-1571022360 1 1 50s
由於定時任務的特殊性,可能上一個Job沒執行完,新的就產生了,能夠經過spec.concurrencyPolicy字段來定義處理策略對象