我正在运行此程序以查看作业重新启动在k8s中如何工作。
kubectl run alpine --image=alpine --restart=OnFailure -- exit 1
高山图像已经存在。第一次故障几乎在一秒钟内发生。 k8s需要5分钟才能完成5次重启!为什么不立即尝试?有什么办法可以减少两次重启之间的时间?
答案 0 :(得分:1)
看看Pod Lifecycle文档:
由kubelet重新启动的已退出容器将以指数退避延迟(10s,20s,40s…)重新启动,上限为五分钟,并在成功执行十分钟后重置。
我认为无法配置退避延迟时间。
编辑:有一个open issue请求此功能。
此外,请注意,使用kubectl run
并不是在模拟“作业重新启动” 。作业由Job Controllers管理,该作业在处理容器/容器错误时的行为略有不同,因为它考虑了restartPolicy
,parallelism
,completions
和backoffLimit
配置:
在某些情况下,您想要在完成一定数量的工作后失败 由于配置等逻辑错误而重试。为此,请设置 .spec.backoffLimit在考虑之前指定重试次数 作业失败。退避限制默认设置为6。失败 与作业关联的Pod由作业控制器重新创建 最多六分钟的指数退避延迟(10s,20s,40s…)。