gpt4 book ai didi

kubernetes - 如何阻止 CronJob 重新创建失败的作业?

转载 作者:行者123 更新时间:2023-12-02 11:39:30 27 4
gpt4 key购买 nike

无论出于何种原因,当我删除运行由 CronJob 启动的作业的 pod 时,我会立即看到正在创建一个新的 pod。只有当我删除 pod 的 backoffLimit 数量的六倍时,新的 pod 才会停止创建。

当然,如果我正在主动监视进程,我可以删除 CronJob,但是如果在我不注意时作业中的 Pod 发生故障怎么办?我不希望它被重新创建。

如果当前作业/pod 失败,如何阻止 CronJob 持续创建新作业(或 pod?),并等到下一个预定时间?是否有类似于乔布斯的 backoffLimit,但用于 CronJobs?

最佳答案

startingDeadlineSeconds 设置为较大的值或保持未设置(默认)。

同时将 .spec.concurrencyPolicy 设置为 Forbid 并且 CronJobs 会跳过新的作业运行而之前创建的作业仍在运行。

如果 startingDeadlineSeconds 设置为较大的值或未设置(默认值)并且如果 concurrencyPolicy 是设置为Forbid,失败则不会运行。

您可以将并发策略字段添加到规范中以定义您的 CronJob (.spec.concurrencyPolicy),但这是可选的。

它指定如何处理由此 CronJob 创建的作业的并发执行。规范可能只指定这三种并发策略中的一种:

  • 允许(默认) - cron 作业允许并发运行作业
  • Forbid - cron 作业不允许并发运行;如果到了新作业运行的时间并且之前的作业运行尚未完成,则 cron 作业将跳过新作业运行
  • 替换 - 如果到了新作业运行的时间并且之前的作业运行尚未完成,则 cron 作业将用新作业运行替换当前运行的作业运行

很高兴知道货币政策仅适用于由同一 CronJob 创建的作业。如果有多个 CronJob,则始终允许它们各自的作业同时运行。

如果 CronJob 未能在预定时间创建,则计为错过。例如,如果 concurrencyPolicy 设置为 Forbid 并且在之前有一个 CronJob 时尝试安排它计划仍在运行,那么它会被视为错过。

对于每个 CronJob,CronJob Controller 检查从上次计划时间到现在的持续时间内它错过了多少计划。如果错过的计划超过 100 个,则不会启 Action 业并记录错误

您可以在此处找到更多信息:CronJobsAutomatedTask .

希望对你有帮助。

关于kubernetes - 如何阻止 CronJob 重新创建失败的作业?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56462145/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com