kubernetes基础-Pod生命周期和状态
目录
Pod 生命周期和多种不同的异常状态.
Pod 生命周期
在整个生命周期中,Pod 会出现 5 种阶段(Phase)。
-
Pending:Pod 被 Kubernetes 创建出来后,起始于 Pending 阶段。在 Pending 阶段,Pod 将经过调度,被分配至目标节点开始拉取镜像、加载依赖项、创建容器。
-
Running:当 Pod 所有容器都已被创建,且至少一个容器已经在运行中,Pod 将进入 Running 阶段。
-
Succeeded:当 Pod 中的所有容器都执行完成后终止,并且不会再重启,Pod 将进入 Succeeded 阶段。
-
Failed:若 Pod 中的所有容器都已终止,并且至少有一个容器是因为失败终止,也就是说容器以非 0 状态异常退出或被系统终止,Pod 将进入 Failed 阶段。
-
Unkonwn:因为某些原因无法取得 Pod 状态,这种情况 Pod 将被置为 Unkonwn 状态。
注意
一般来说,对于 Job 类型的负载,Pod 在成功执行完任务之后将会以 Succeeded 状态为终态。而对于 Deployment 等负载,一般期望 Pod 能够持续提供服务,直到 Pod 因删除消失,或者因异常退出/被系统终止而进入 Failed 阶段。
Pod 详细状态
Pod 在其生命周期的许多时间点可能发生不同的异常,异常场景大致分为两类。
-
Pod 在进行调度并创建容器过程中发生异常,此时 Pod 将卡在 Pending 阶段。
-
Pod 容器运行中发生异常,此时 Pod 按照具体场景处在不同阶段。
Pod 的详细的状态说明。
状态 | 描述 |
---|---|
CrashLoopBackOff | 容器退出,kubelet正在将它重启 |
InvalidImageName | 无法解析镜像名称 |
ImageInspectError | 无法校验镜像 |
ErrImageNeverPull | 策略禁止拉取镜像 |
ImagePullBackOff | 正在重试拉取 |
RegistryUnavailable | 连接不到镜像中心 |
ErrImagePull | 通用的拉取镜像出错 |
CreateContainerConfigError | 不能创建kubelet使用的容器配置 |
CreateContainerError | 创建容器失败 |
m.internalLifecycle.PreStartContainer | 执行hook报错 |
RunContainerError | 启动容器失败 |
PostStartHookError | 执行hook报错 |
ContainersNotInitialized | 容器没有初始化完毕 |
ContainersNotRead | 容器没有准备完毕 |
ContainerCreating | 容器创建中 |
PodInitializing | pod 初始化中 |
DockerDaemonNotReady | docker还没有完全启动 |
NetworkPluginNotReady | 网络插件还没有完全启动 |
Evicted | Pod被驱逐 |