在 Kubernetes (k8S) 中,Pod 的容器重启策略(restartPolicy)定义了当 Pod 中的容器终止运行时 kubelet 应该如何处理。Kubernetes 提供了以下三种重启策略:
- Always:
- 默认值,表示无论容器以何种方式退出(包括正常退出、非零退出码或其他故障),kubelet 都会自动重启该容器。
- 这个策略适用于需要始终保持运行状态的服务或进程,即使遇到临时性问题也能迅速恢复。
- OnFailure:
- 当容器以非零退出码结束时(即异常退出),kubelet 才会尝试重启该容器。
- 如果容器正常退出(退出码为0),则不会重启。此策略适合于那些在失败时应当被重试的任务或者一次性任务。
- Never:
- 表示无论容器如何退出,kubelet 都不会重启容器。
- 适用于执行一次性任务的场景,比如批处理作业,这些作业完成后不需要再次启动。
综上所述,需要注意的是,重启策略仅应用于同一节点上的 kubelet 对容器的管理操作。每次重启都会遵循指数退避算法,延迟时间逐渐增加,以避免过于频繁的重启导致雪崩效应。此外,重启策略是针对整个 Pod 而不是单个容器设置的,因此一个 Pod 内的所有容器都将共享相同的重启策略。