6

我正在阅读有关作业和重试的 Kubernetes 文档。我找到了这个:

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

我对上述引用有两个问题:

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

1 回答 1

7

关于重试次数没有混淆.spec.backoffLimit

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

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