Pod有以下几个状态:
- Pending 等待中
- Running 运行中
- Succeeded 正常终止
- Failed 异常停止
- Unkonwn 未知状态
Pod状态详解
Pending
Pod已经被创建,但还没有完成调度,可能处在:写数据到etcd,调度,pull镜像,启动容器这四个阶段中的任何一个阶段,pending伴随的事件通常会有:ADDED, Modified这两个事件的产生。
Running
该 Pod 已经绑定到了一个节点上,Pod 中所有的容器都已被创建。至少有一个容器正在运行,或者正处于启动或重启状态。
Succeeded
Pod中的所有的容器已经正常的执行后退出,并且不会自动重启,一般会是在部署job的时候会出现。
Failed
Pod 中的所有容器都已终止了,并且至少有一个容器是因为失败终止。也就是说,容器以非0状态退出或者被系统终止。
Unkonwn
API Server无法正常获取到Pod对象的状态信息,通常是由于其无法与所在工作节点的kubelet通信所致。
pod从创建到成功或失败的事件
PodScheduled
pod正处于调度中,刚开始调度的时候,hostip还没绑定上,持续调度之后,有合适的节点就会绑定hostip,然后更新etcd数据
Initialized
pod中的所有初始化容器已经初启动完毕
Ready
pod中的容器可以提供服务了
Unschedulable
不能调度,没有合适的节点
Pod状态的详细说明
- CrashLoopBackOff: 容器退出,kubelet正在将它重启
- InvalidImageName: 无法解析镜像名称
- ImageInspectError: 无法校验镜像
- ErrImageNeverPull: 策略禁止拉取镜像
- ImagePullBackOff: 正在重试拉取
- RegistryUnavailable: 连接不到镜像中心
- ErrImagePull:通用的拉取镜像出错
- CreateContainerConfigError: 不能创建kubelet使用的容器配置
- CreateContainerError: 创建容器失败
- m.internalLifecycle.PreStartContainer 执行hook报错
- RunContainerError: 启动容器失败
- PostStartHookError: 执行hook报错
- ContainersNotInitialized: 容器没有初始化完毕
- ContainersNotReady: 容器没有准备完毕
- ContainerCreating:容器创建中
- PodInitializing:pod 初始化中
- DockerDaemonNotReady:docker还没有完全启动
- NetworkPluginNotReady: 网络插件还没有完全启动
- Evicte: pod被驱赶