重启策略
2024年09月13日
一、认识
在 Kubernetes
中,restartPolicy
是 Pod
的一种重要重启策略,用于控制 Pod
内部容器的重启行为。restartPolicy
决定了当容器失败时,Kubernetes
如何处理容器的重启。它是 Pod
的 spec
部分中的一个字段,能够影响容器的生命周期。restartPolicy
的默认值是 Always
,但是根据应用的需求,可以设置为其他值。restartPolicy` 的三种取值:
-
Always
:表示容器无论是由于什么原因退出,都会被重新启动。这是默认的策略,适用于长期运行的服务(如Web
服务或数据库)。只要Pod
没有被删除或手动停止,容器就会一直保持重新启动状态。使用场景: 对于希望Pod
始终保持运行的应用,尤其是后台服务,建议使用Always
。 -
OnFailure
:只有当容器退出代码非0
(表示异常退出)时才会重启容器。如果容器正常退出(退出码为0
),则不会进行重启。这一策略适用于那些在非正常状态下需要重新启动的应用。使用场景: 用于批处理任务或有明确退出码标志的应用程序。例如,当任务处理失败时重启Pod
。 -
Never
: 容器不管以什么状态退出,都不会重新启动。这种策略适用于那些需要只运行一次的任务型Pod
。使用场景: 适用于一次性运行的作业或任务,当任务完成后不再需要重启。
二、操作
apiVersion: v1
kind: Pod
metadata:
name: example-pod
spec:
containers:
- name: example-container
image: my-app-image
restartPolicy: OnFailure