K8s工作负载-CronJob
K8s工作负载-CronJob
1.25
什么是CronJob
CronJob按照预定时间计划创建Job
CronJob的限制
CronJob在时间计划中执行,但是Job依旧还可能失败,所以Job不是唯一的,因此Job必须是幂等的,当满足以下俩个条件,Job至少运行一次
- StartingDeadlineSeconds:设置为一个较大的值,或者不设置该值(有默认值)
- ConcurrencyPolicy:设置为Allow
- 如果设置了StaringDeadlineSeconds,CronJob控制器按照从StaringDeadlineSeconds之前到现在为止的时间段计算错过的执行次数
CronJobSpec
// CronJobSpec describes how the job execution will look like and when it will actually run. |
Cron时间表达式
Schedule是必须的准许Cron语法
***** |
任务延迟开始的最后期限
StartingDeadlineSeconds表述由于一些原因错过调度
- 过了截止时间,不会开启任务
- 如果没有设置截止时间,就不会有截止,不会跳过这一次任务
并发性规则
ConcurrencyPolicy声明了CronJob创建的任务在执行发生重叠的规则,有三个值
- Allow(默认):CronJob允许并发执行
- Forbid:Cron.Job不允许并发执行任务。如果新任务执行时间到了,旧任务还没结束,会忽略新任务
- Replace:如果执行时间到了,旧任务还没结束,会用新任务替换旧任务
并发规则适用于一个CrobJob的Job,CronJob本身是并发的
时区
没有指定时区的CronJob,使用kube-controller-manager时区,使用Master时区
CrobJobTimeZone可以指定时区
- 处于beta阶段,需要启用CronJobTimeZone
- 开启之后通过timeZone:”Etc/UTC” 表示K8s的时区
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Joohwan!
评论