pod生命周期和重启策略

pod的转态

状态值 描述
挂起(Pending) API Server创建了pod资源对象已存入etcd中,但它尚未被调度完成,或者仍处于从仓库下载镜像的过程中。
运行中(Running) Pod已经被调度至某节点,并且所有容器都已经被kubelet创建完成
成功(Succeeded) Pod中的所有容器都已经成功终止并且不会被重启
失败(Failed) Pod中的所有容器都已终止了,并且至少有一个容器是因为失败终止。即容器以非0状态退出或者被系统禁止。
未知(Unknown) Api Server无法正常获取到Pod对象的状态信息,通常是由于无法与所在工作节点的kubelet通信所致。

pod的重启策略

Pod的重启策略包括:Always、OnFailure和Never,默认值为Always

  • Always:当容器失效时,由kubelet自动重启该容器。
  • OnFailure:当容器终止运行且退出码不为0时,由kubelet自动重启该容器
  • Never:不论容器运行状态如何,kubelet都不会重启该容器。

Pod的重启策略与控制方式息息相关,当前可用于管理Pod的控制器包括ReplicationController、Job、DaemonSet及直接通过kubelet管理(静态Pod)。每种控制器对Pod的重启策略要求如下:

  • RC和DaemonSet:必须设置为Always,需要保证该容器持续运行。
  • Job和CronJob:OnFailure或Never,确保容器执行完成后不再重启。
  • kubelet:在Pod失效时自动重启它,不论将RestartPolicy设置为什么值,也不会对Pod进行健康检查。

猜你喜欢

转载自blog.csdn.net/zhangshaohuas/article/details/107315710