什么是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 失败的作业历史记录