k8s CronJob

1 篇文章 0 订阅

k8s CronJob


前言

  • cronjob其实就是在Job的基础上加上了时间调度,我们可以:在给定的时间点运行一个任务,也可以周期性地在给定时间点运行。这个实际上和Linux中的crontab就非常类似了。
  • 一个cronjob对象其实就对应crontab文件中的一行,它根据配置的时间格式周期性地运行一个Job,格式和crontab也是一样的。

一、CronJob yaml

apiVersion: batch/v1
kind: CronJob
metadata:
 name: hello
spec:
 schedule: "*/1 * * * *" 
 successfulJobsHistoryLimit: 1
 failedJobsHistoryLimit: 1
 startingDeadlineSeconds: 60  ##CronJob 控制器将测量从预期创建作业到现在之间的时间。如果差异高于该限制,它将跳过此执行。 例如,如果设置为200,则它允许在实际计划后最多 200 秒内创建作业。
 jobTemplate:
  spec:
   #ttlSecondsAfterFinished: 30
   template:
    spec:
     containers:
     - name: hello
       image: centos
       imagePullPolicy: IfNotPresent
       command: ["/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使用的一些总结,以后有新的理解会再补充

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值