Kubernetes 作业和回退限制值:该值是重试次数还是分钟数?

Dhe*_*rik 3 jobs kubernetes kubernetes-cronjob

我正在阅读有关 jobs 和 retries 的 Kubernetes 文档。我找到了这个:

在某些情况下,由于配置中的逻辑错误等,您希望在一定数量的重试后使 Job 失败。为此,请设置 .spec.backoffLimit 以指定在将 Job 视为失败之前的重试次数。退避限制默认设置为 6。与作业关联的失败 Pod 由作业控制器重新创建,指数退避延迟(10 秒、20 秒、40 秒……)上限为 6 分钟。如果在 Job 的下一次状态检查之前没有出现新的失败 Pod,则会重置回退计数。

我对上面的报价有两个问题:

  1. 回退限制值是分钟还是重试次数?使用值6(六)的文档示例令人困惑,因为他最初确认该值是重试次数,但之后说“上限为分钟”。
  2. 有没有办法定义回退延迟时间?据我了解,这种行为(10 秒、20 秒、40 秒……)是默认设置,无法更改。

Shu*_*rma 6

没有混淆的.spec.backoffLimit是重试次数。

作业控制器以指数延迟(10 秒、20 秒、40 秒、...、360 秒)重新创建失败的 Pod(与作业关联)。当然,这个延迟时间是由 Job 控制器设置的。

  • 如果 Pod 失败,10s 后会创建新的 Pod
  • 如果再次失败,20秒后将创建新的
  • 如果再次失败,40s后新的来
  • 如果再次失败,则在 80s 之后(1m 20s)下一个
  • 如果再次失败,下一个在 160s 之后(2m 40s)
  • 如果再次失败,320s(5m 20s)后,新的Pod来了
  • 如果再次失败,360s(不是640s,因为它大于360s或6m)你会看到下一个