k8s CronJob
文章目录
- k8s CronJob
- @[TOC](文章目录)
- 前言
- 一、CronJob yaml
- 二、schedule
- 三、successfulJobsHistoryLimit
- 四、failedJobsHistoryLimit
- 五、startingDeadlineSeconds
- 六、ttlSecondsAfterFinished
- 总结
文章目录
- k8s CronJob
- @[TOC](文章目录)
- 前言
- 一、CronJob yaml
- 二、schedule
- 三、successfulJobsHistoryLimit
- 四、failedJobsHistoryLimit
- 五、startingDeadlineSeconds
- 六、ttlSecondsAfterFinished
- 总结
前言
- cronjob其实就是在Job的基础上加上了时间调度,我们可以:在给定的时间点运行一个任务,也可以周期性地在给定时间点运行。这个实际上和Linux中的crontab就非常类似了。
- 一个cronjob对象其实就对应crontab文件中的一行,它根据配置的时间格式周期性地运行一个Job,格式和crontab也是一样的。
一、CronJob yaml
apiVersion: batch/v1
kind: CronJob
metadata:name: hello
spec:schedule: "*/1 * * * *" successfulJobsHistoryLimit: 1failedJobsHistoryLimit: 1startingDeadlineSeconds: 60 ##CronJob 控制器将测量从预期创建作业到现在之间的时间。如果差异高于该限制,它将跳过此执行。 例如,如果设置为200,则它允许在实际计划后最多 200 秒内创建作业。jobTemplate:spec:#ttlSecondsAfterFinished: 30template:spec:containers:- name: helloimage: centosimagePullPolicy: IfNotPresentcommand: ["/bin/sh", "-c", " echo "," 123"]restartPolicy: OnFailure
二、schedule
*/1 其实就是每分钟
'*/1 * * * *'
分 小时 日 月 周 要运行的命令
#第1列分钟(0~59)
#第2列小时(0~23)
#第3列日(1~31)
#第4列月(1~12)
#第5列星期(0~7)(0和7表示星期天)
#第6列要运行的命令
三、successfulJobsHistoryLimit
- 保留执行成功的历史记录次数,默认值是3。
- 假如设置为5,就会保留过去5次成功的执行记录
四、failedJobsHistoryLimit
- 保留执行失败的历史记录次数,默认值是1。
- 假如设置为3,就会保留过去3次失败的执行记录
五、startingDeadlineSeconds
它表示任务如果由于某种原因错过了调度时间,开始该任务的截止时间的秒数。
控制器将测量从预期创建作业到现在之间的时间。
如果差异高于该限制,它将跳过此执行。
例如,如果设置为60,则它允许在实际计划后最多60 秒内创建作业。
六、ttlSecondsAfterFinished
假如jobTemplate添加了ttlSecondsAfterFinished,这个时候successfulJobsHistoryLimit和failedJobsHistoryLimit就会失效。
例如ttlSecondsAfterFinished设置成30,这样不管这次的job是成功还是失败,在30秒后会照样清除
总结
上面是我对k8s CronJob使用的一些总结,以后有新的理解会再补充