跳到主要内容

重启策略

2024年09月13日
柏拉文
越努力,越幸运

一、认识


Kubernetes 中,restartPolicyPod 的一种重要重启策略,用于控制 Pod 内部容器的重启行为。restartPolicy 决定了当容器失败时,Kubernetes 如何处理容器的重启。它是 Podspec 部分中的一个字段,能够影响容器的生命周期。restartPolicy 的默认值是 Always,但是根据应用的需求,可以设置为其他值。restartPolicy` 的三种取值:

  1. Always:表示容器无论是由于什么原因退出,都会被重新启动。这是默认的策略,适用于长期运行的服务(如 Web 服务或数据库)。只要 Pod 没有被删除或手动停止,容器就会一直保持重新启动状态。使用场景: 对于希望 Pod 始终保持运行的应用,尤其是后台服务,建议使用 Always

  2. OnFailure:只有当容器退出代码非 0(表示异常退出)时才会重启容器。如果容器正常退出(退出码为 0),则不会进行重启。这一策略适用于那些在非正常状态下需要重新启动的应用。使用场景: 用于批处理任务或有明确退出码标志的应用程序。例如,当任务处理失败时重启 Pod

  3. Never: 容器不管以什么状态退出,都不会重新启动。这种策略适用于那些需要只运行一次的任务型 Pod。使用场景: 适用于一次性运行的作业或任务,当任务完成后不再需要重启。

二、操作


apiVersion: v1
kind: Pod
metadata:
name: example-pod
spec:
containers:
- name: example-container
image: my-app-image
restartPolicy: OnFailure