Kubernetes之Pod重启策略
概述k8s中默认的健康检查机制:每个容器启动时都会执行一个进程,这个进程是Dockerfile的CMD或Entryoint指定。如果进程推出时返回码非0,就会认为容器发生了故障,k8s会根据yaml文件中的spec:下的restartPolicy字段判断是否重启容器。重启策略Always表示一直重启,不特殊指定这是默认的重启策略。容器失效后,kubelet自动进行重启。以保证副本数。OnFailu
·
概述
k8s中默认的健康检查机制:每个容器启动时都会执行一个进程,这个进程是Dockerfile的CMD或Entryoint指定。如果进程推出时返回码非0,就会认为容器发生了故障,k8s会根据yaml
文件中的spec:
下的restartPolicy
字段判断是否重启容器。
重启策略
Always
表示一直重启,不特殊指定这是默认的重启策略。容器失效后,kubelet自动进行重启。以保证副本数。
OnFailure
当容器终止运行且退出码不为0时,由kubelet自动重启该容器。也就是说正常的退出不会再重新启动Pod,仅当退出地时候重启Pod。
Never
不论容器的运行状态如何,kubelet都不会重启该容器。
控制方式
Pod的重启策略与控制方式息息相关,可管理Pod的控制器有ReplicationController(RC)、Jo、DaemonSet以及kubelet。每种控制器对Pod的策略要求不同。
RC和DaemonSet:必须设定为Always,需要保证容器的持续运行。
Job和CronJob:OnFailure,确保容器执行完成后不再重启。
kubelet:在Pod失效时自动重启它,不论将RestarPolicy设置为什么值,也不会对Pod进行健康检查。
更多推荐
已为社区贡献1条内容
所有评论(0)