Pod状态
-
Kubernetes pod 的阶段
- Pod状态表
状态值 | 描述 |
---|---|
Pending | 创建 Pod 对象后,在 pod 被调度到一个节点并且它的容器的镜像被拉取和启动之前,它一直处于这个阶段。 |
Running | Pod内所有容器均已创建,且至少有一个容器处于运行状态,正在启动状态或正在重启状态 |
Succeeded | Pod内所有容器均成功执行后退出,且不会再重启 |
Failed | Pod内所有容器均以退出,但至少有一个容器为退出失败状态 |
Unknown | 由于某种原因无法获取该Pod的状态,可能由于网络通信不畅导致 |
- 显示pod的状态
$ kubectl get pod <pod-name> -o yaml | grep phase phase: Running
Pod状况(Condition)
- 简介
可以通过查看Pod
的Condition
列表了解更多信息,pod
的Condition
指示pod
是否已达到某个状态,以及为什么会这样,与状态相反,一个Pod
同时具有多个Conditions - Pod条件表
Pod Condition | 描述 |
---|---|
PodScheduled | 表示pod是否已调度到节点 |
Initialized | Pod的 init 容器都已成功完成 |
ContainersReady | Pod 中所有容器都已就绪 |
Ready | Pod 可以为请求提供服务,并且应该被添加到对应服务的负载均衡池中 |
- 显示pod的状况
$ kubectl describe po <pod-name> | grep Conditions: -A5
容器状态
-
容器状态最重要的部分是它的
state
,容器可以处于下图所示的状态之一
容器状态表
Container State | 描述 |
---|---|
Waiting | 容器正在等待启动 |
Running | 容器已创建并且进程正在其中运行,startAt 字段指示此容器启动的时间 |
Terminated | 已在容器中运行的进程已终止,finishedAt 字段指示容器何时终止,主进程终止的退出代码位于exitCode 字段中 |
Unknown | 无法确定容器的状态 |
- 显示pod的容器状态
$ kubectl describe po <pod-name> | grep Containers: -A15 $ kubectl get po <pod-name> -o json | jq .status.containerStatuses $ kubectl get po <pod-name> -o json | jq .status
Pod 生命周期
如图展示了Pod的生命周期,分为三个阶段
- initialization-初始化阶段
在此期间 pod 的 init 容器运行 - run-运行阶段
Pod 的常规容器在其中运行 - termination-终止阶段
在该阶段终止 pod 的容器