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字段来定义处理策略对象