CronJob 类似 Job,但是它是周期性地跑或者在未来某个时间运行。
YAML:
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: batch-job-every-fifteen-minutes
spec:
schedule: "0,15,30,45 * * * *"
jobTemplate:
spec:
template:
metadata:
labels:
app: periodic-batch-job
spec:
restartPolicy: OnFailure
containers:
- name: main
image: luksa/batch-job
schedule
字段的格式跟 Linux 的 cronjob 类似,分别是 Minute、Hour、Day of month、Month、Day of week。
创建一个 CronJob 后,k8s 会在指定的时间创建 Job 来运行指定的任务。
CronJob 并不能保证在确定的时间运行,因此 job 的代码逻辑需要保证两个 job 同时运行时也可以正常运作。