Kubernetes 作业有 'max-retries' 吗?
Is there a 'max-retries' for Kubernetes Jobs?
我有想要在 Kubernetes 上 运行 的批处理作业。我对乔布斯的理解:
如果我选择 restartPolicy: Never
这意味着如果作业失败,它将销毁 Pod 并重新安排到(可能)另一个节点上。如果 restartPolicy: OnFailure
,它会在现有的 Pod 中重启容器。我认为一定数量的故障是不可恢复的。有什么方法可以防止它在一定时间后重新安排或重新启动并清理无法恢复的作业?
我目前的解决方法是让一些看门狗进程查看重试时间并在指定的重试次数后清理作业。
闲聊总结:
不,没有重试限制。但是,从 v1.2 开始,您可以使用 activeDeadlineSeconds
设置作业的截止日期。系统应该退出重新启动,然后在到达截止日期时终止作业。
仅供参考,现在已添加为 .spec.backoffLimit
。
https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/
我有想要在 Kubernetes 上 运行 的批处理作业。我对乔布斯的理解:
如果我选择 restartPolicy: Never
这意味着如果作业失败,它将销毁 Pod 并重新安排到(可能)另一个节点上。如果 restartPolicy: OnFailure
,它会在现有的 Pod 中重启容器。我认为一定数量的故障是不可恢复的。有什么方法可以防止它在一定时间后重新安排或重新启动并清理无法恢复的作业?
我目前的解决方法是让一些看门狗进程查看重试时间并在指定的重试次数后清理作业。
闲聊总结:
不,没有重试限制。但是,从 v1.2 开始,您可以使用 activeDeadlineSeconds
设置作业的截止日期。系统应该退出重新启动,然后在到达截止日期时终止作业。
仅供参考,现在已添加为 .spec.backoffLimit
。
https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/