Kubernetes CronJob -如果上一个作业仍在运行,则跳过作业并等待下一个计划时间

w3nuxt5m  于 2023-08-03  发布在  Kubernetes
关注(0)|答案(2)|浏览(132)

我已经安排K8S cron每30分钟运行一次。
如果当前作业仍在运行,并且下一个cron计划已经到达,它不应该创建新作业,而是等待下一个计划。
如果前一个作业仍处于运行状态,则重复相同的过程。

mbskvtky

mbskvtky1#

在CronJob yaml中将以下属性设置为禁止

.spec.concurrencyPolicy

字符串
https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/#concurrency-policy

zhte4eai

zhte4eai2#

spec.concurrencyPolicy: Forbid将推迟启动第二个作业,如果仍有一个旧作业正在运行。但是,旧作业完成后,该作业将被排队,以便立即启动。
要完全跳过运行新作业,而是等到下一个计划时间,请将.spec.startingDeadlineSeconds设置为小于cronjob间隔(但大于作业的最大预期启动时间)。
如果每30分钟运行一次作业,并且知道作业启动时间不会超过一分钟,则设置.spec.startingDeadlineSeconds: 60

相关问题