K8sController-CronJob(定时任务)
K8sController-CronJob(定时任务)
基于K8s v1.31
Cron Job支持用于每隔一段时间创建定期运行的批处理任务
CronJob定时表达式
# ┌───────────── 分钟 (0 - 59) |
Minutes: , - * / 或者0-59的整数
Hours: , - * / 或者0-23的整数
DayofMonth: , - * / ? L W C或者0-31的整数
Month:, - * / 或者1-12的整数 或者 JAN~DEC
DayofWeek:, - * / ? L C # 或者0~6 或者SUN~SAT,0代表星期天
*:匹配任意
/:从起始开始 Minutes=5/20:第一次在5min后面每20min一次(下一次是25min)
配置文件
apiVersion: batch/v1 |
CronJob不足
- K8s v1.28允许设置时区,但是不支持CRON_TZ=UTC****
- CronJob Controller 根据定时时间配置,在需要创建新任务时,“大约”回创建一个Job
- 在创建了CronJob资源后,修改其jobTemplate,只会影响之后的Job
- 如果设置了startingDeadlineSeconds小于10s,则可能导致CronJob无法完成调度,这是因为CronJob Controller 每10s检查一次
- CronJob Controller会定时(10s)检查上一次调度的时间点到当前截止时间点错过的调度次数,如果错过超过100s,不再启动Job
- 如果没有在调度时间内创建CronJob,则会标记为错过
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Joohwan!
评论