我正在运行它来查看k8s中作业重启的工作原理。
kubectl run alpine --image=alpine --restart=OnFailure -- exit 1
阿尔卑斯山的形象已经存在。第一次失败几乎在一秒钟内发生。 k8s需要5分钟才能完成5次重启!为什么不立即尝试?有没有办法减少2次重启之间的时间?
看看Pod Lifecycle文档:
由kubelet重新启动的已退出容器将以指数退避延迟(10秒,20秒,40秒......)重新启动,上限为五分钟,并在成功执行十分钟后重置。
我认为没有办法配置退避延迟时间。 编辑:有一个open issue要求此功能。
另外,请注意使用kubectl run
您不会模拟“作业重启”。工作由Job Controllers管理,在处理pod /容器错误时表现略有不同,因为它考虑了restartPolicy
,parallelism
,completions
和backoffLimit
配置的组合:
在某些情况下,由于配置中的逻辑错误,您需要在重试一定次数后使作业失败。为此,请设置.spec.backoffLimit以指定在将作业视为失败之前的重试次数。默认情况下,退避限制设置为6.作业控制器重新创建与作业关联的失败窗格,指数后退延迟(10秒,20秒,40秒......)上限为6分钟。