在Kubernetes(K8S)中,Pod的重启策略是通过restartPolicy
字段指定的,用于定义当Pod中的容器终止时kubelet应如何处理这些容器。以下是三种主要的重启策略:
- Always:
- 这是默认的重启策略。如果一个容器终止(无论退出码是什么),kubelet都会自动重启该容器。这意味着只要Pod没有被删除或者节点未发生故障,即使容器由于错误或非0退出码停止运行,kubelet也会不断地尝试重启容器。
- OnFailure:
- 当设置为
OnFailure
时,kubelet仅在容器以非0退出码退出时才重启容器。如果容器正常退出(退出码为0),kubelet将不会重启该容器。
- Never:
- 设置为
Never
时,kubelet将不对任何情况下终止的容器进行重启。一旦容器停止运行,不论其退出码为何,kubelet都不会干预,容器将保持终止状态。
需要注意的是,重启策略只适用于Pod生命周期内的容器管理,而不会影响到Pod整体的生命周期。例如,当Pod因为资源请求不满足、节点维护等原因需要从集群中删除时,重启策略将不再生效。此外,重启策略适用于Pod中的所有容器,而不是单个容器。