kubernetes (k8s)Pod生命周期和重启策略

Pod的状态描述

状态值 描述Pending API Server已经创建该Pod,但在Pod内还有一个或多个容器的镜像没有创建,包括正在下载镜像的过程。Runnung Pod内所有容器均已创建,且至少有一个容器处于运行状态、正在启动状态或正在重启状态。Succeeded Pod内所有容器均成功执行后退出,且不会再重启。Failed Pod内所有容器均已退出,但至少有一个容器退出为失败状态。Unknown 由于某种原因无法获取该Pod的状态,可能由于网络通信不畅导致。
Pod的重启策略(RestartPolicy)

Pod的重启策略(RestartPolicy)应用与Pod内所有容器,并且仅在Pod所处的Node上由kubelet进行判断和重启操作。当某个容器异常退出或者健康检查失败时,kubelet将根据RestartPolicy的设置来进行相应的操作。 Pod的重启策略包括:Always、OnFailure和Never,默认值为Always。 Always:当容器失效时,由kubelet自动重启该容器。 OnFailure:当容器终止运行且退出码不为0时,由kubelet自动重启该容器。 Never:不论容器运行状态如何,kubelet都不会重启该容器。
Pod的重启策略与控制方式息息相关,当前可用于管理Pod的控制器包括ReplicationController、Job、DaemonSet及直接通过kubelet管理(静态Pod)。每种控制器对Pod的重启策略要求如下:
Pod的重启策略与控制方式息息相关,当前可用于管理Pod的控制器包括ReplicationController、Job、DaemonSet及直接通过kubelet管理(静态Pod)。每种控制器对Pod的重启策略要求如下:
RC和DaemonSet:必须设置为Always,需要保证该容器持续运行。
Job和CronJob:OnFailure或Never,确保容器执行完成后不再重启。
kubelet:在Pod失效时自动重启它,不论将RestartPolicy设置为什么值,也不会对Pod进行健康检查。