Kubernetes Pod的生命周期
Kubernetes Pod的生命周期
具体概念请阅读官方文档:https://kubernetes.io/zh-cn/docs/concepts/workloads/pods/pod-lifecycle/
Pod 阶段

| 取值 | 描述 |
|---|---|
Pending(悬决) |
Pod 已被 Kubernetes 系统接受,但有一个或者多个容器尚未创建亦未运行。此阶段包括等待 Pod 被调度的时间和通过网络下载镜像的时间。 |
Running(运行中) |
Pod 已经绑定到了某个节点,Pod 中所有的容器都已被创建。至少有一个容器仍在运行,或者正处于启动或重启状态。 |
Succeeded(成功) |
Pod 中的所有容器都已成功终止,并且不会再重启。 |
Failed(失败) |
Pod 中的所有容器都已终止,并且至少有一个容器是因为失败终止。也就是说,容器以非 0 状态退出或者被系统终止。 |
Unknown(未知) |
因为某些原因无法取得 Pod 的状态。这种情况通常是因为与 Pod 所在主机通信失败。 |
Pod 相关状态解释
1 | CrashLoopBackOff # 容器退出,kubelet正在将它重启 |
容器状态
- Waiting (等待)
如果容器并不处在 Running 或 Terminated 状态之一,它就处在 Waiting 状态。 处于 Waiting 状态的容器仍在运行它完成启动所需要的操作:例如,从某个容器镜像 仓库拉取容器镜像,或者向容器应用 Secret 数据等等。 当你使用 kubectl 来查询包含 Waiting 状态的容器的 Pod 时,你也会看到一个 Reason 字段,其中给出了容器处于等待状态的原因。 - Running(运行中)
Running 状态表明容器正在执行状态并且没有问题发生。 如果配置了 postStart 回调,那么该回调已经执行且已完成。 如果你使用 kubectl 来查询包含 Running 状态的容器的 Pod 时,你也会看到 关于容器进入 Running 状态的信息。 - Terminated(已终止)
处于 Terminated 状态的容器已经开始执行并且或者正常结束或者因为某些原因失败。 如果你使用 kubectl 来查询包含 Terminated 状态的容器的 Pod 时,你会看到 容器进入此状态的原因、退出代码以及容器执行期间的起止时间。
Pod 状况
1 | # 查看Pod详细信息 |

Conditions:
PodScheduled:Pod 已经被调度到某节点;PodHasNetwork:Pod 沙箱被成功创建并且配置了网络(Alpha 特性,必须被显式启用);ContainersReady:Pod 中所有容器都已就绪;Initialized:所有的 Init 容器 都已成功完成;Ready:Pod 可以为请求提供服务,并且应该被添加到对应服务的负载均衡池中。
| 字段名称 | 描述 |
|---|---|
type |
Pod 状况的名称 |
status |
表明该状况是否适用,可能的取值有 “True“, “False“ 或 “Unknown“ |
lastProbeTime |
上次探测 Pod 状况时的时间戳 |
lastTransitionTime |
Pod 上次从一种状态转换到另一种状态时的时间戳 |
reason |
机器可读的、驼峰编码(UpperCamelCase)的文字,表述上次状况变化的原因 |
message |
人类可读的消息,给出上次状态转换的详细信息 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 运维猿!
评论

