【问题标题】:Kubernetes concurrencyPolicy Forbid not preventing concurrent jobsKubernetes concurrencyPolicy 禁止不阻止并发作业
【发布时间】:2022-02-02 13:35:16
【问题描述】:

我有一个备份作业正在运行,计划每 24 小时运行一次。我将并发策略设置为“禁止”。我正在测试我的备份,并手动创建作业进行测试,但这些测试并不禁止并发运行。我用:

kubectl create job --from=cronjob/my-backup manual-backup-(timestamp)

...当我连续两次运行它们时,我发现它们都开始工作了。

并发策略是否仅适用于 Cron 作业调度程序创建的作业?它会忽略手动创建的工作吗?如果忽略这些,是否还有其他方法可以手动运行作业,以便 Cron 作业调度程序知道它们的存在?

【问题讨论】:

标签: kubernetes kubernetes-cronjob


【解决方案1】:

...Does the concurrency policy only apply to jobs created by the Cron job scheduler?

concurrencyPolicy 适用于CronJob,因为它影响CronJob 开始工作的方式。它是 CronJob 规范的一部分,而不是 Job 规范的一部分。

...Does it ignore manually-created jobs?

是的。

...ways to manually run the job such that the Cron job scheduler knows they are there?

请注意,当 concurrencyPolicy 设置为 Forbid 以及 CronJob 运行作业的时间到了;但它检测到有属于此CronJob 的作业正在运行;它将当前尝试计为错过。如果您在CronJob 之外手动启动作业库,则最好将CronJob spec.suspend 临时设置为true,并且执行时间将跨越下一个计划时间。

【讨论】:

    猜你喜欢
    • 2021-06-23
    • 1970-01-01
    • 2019-09-13
    • 1970-01-01
    • 2020-10-14
    • 1970-01-01
    • 2023-03-13
    • 2018-10-26
    • 1970-01-01
    相关资源
    最近更新 更多