【问题标题】:Kubernetes job restarts even with restartPolicy: "Never"即使使用 restartPolicy,Kubernetes 作业也会重新启动:“从不”
【发布时间】:2020-07-13 15:23:23
【问题描述】:

我在restartPolicy: "Never" 有一份以“错误”结尾的工作

使用Status : Error,此作业不应重新启动。

但是,每次上一个作业失败时,都会一次又一次地创建一个新的 pod:

$ kubectl get pods
kafka-pvbqk          0/1     Error              0          2m19s
kafka-ttt95          0/1     Error              0          109s
kafka-7fqgl          0/1     Error              0          69s
kafka-rrmlk          0/1     PodInitializing    0          2s

我知道第一件事应该是修复错误,但我也想了解 pod 重启的原因以及如何避免这种情况?

谢谢

【问题讨论】:

  • 我认为 pod 从未正确启动,因此重启的概念在这里不是问题
  • 在“错误”之前的一段时间,我有1/1 Running,所以我认为 pod 可以正常启动。错误来自作业中的返回码。但我仍然需要了解为什么 Pod 会一次又一次地重新创建

标签: kubernetes


【解决方案1】:

这是正确的行为,而不是错误。您指向的重启策略是关于 Pod,而不是作业本身。

要在重试一定次数后使作业失败,请设置 .spec.backoffLimit 以指定在将作业视为失败之前重试的次数。

回退限制默认设置为 6。与作业关联的失败 Pod 由作业控制器重新创建,并具有指数回退延迟(10 秒、20 秒、40 秒 ...),上限为 6 分钟。当 Job 的 Pod 被删除或成功且该 Job 的任何其他 Pod 在此期间失败时,退避计数将被重置。

【讨论】:

  • 啊好的,我不知道,谢谢你的信息。然后我可以手动删除作业,因为我知道作业已正确完成,只是返回码不是0。
猜你喜欢
  • 1970-01-01
  • 2021-12-18
  • 1970-01-01
  • 2021-07-15
  • 1970-01-01
  • 2014-04-07
  • 2016-02-10
  • 1970-01-01
  • 2013-01-02
相关资源
最近更新 更多