我正在使用Java Fabric k8s客户端获取阶段等于“Running”的POD列表。我在POD中有2个容器。我注意到getPods()方法返回POD为Running,即使2个容器中的一个仍未处于READY状态。为什么当pod中的所有容器都未处于READY状态时会发生这种情况?
vxf3dgd41#
Running是Pod * 状态 * 状态,定义为:Pod已绑定到节点,并且已创建所有container。至少有一个container仍在运行,或者正在启动或重新启动。只需启动或运行一个Pod的容器,即可将整个Pod标记为Running。可能的状态为Pending, Running, Succeeded, Failed, Unknown。可以将这些状态视为Pod状态的最高级别描述。每个状态都有一个Pod condition 数组以及其他元数据,这些元数据提供了有关内部容器的更多详细信息。Ready是Pod * 条件 *,它是Pod status(status.condition)的子状态。简单地说,当Pod标记为Ready时,它已完全启动并能够接受 * 流量 *。有时这取决于Pod规范的设置方式;例如,如果Pod具有readinessProbe,则仅当readinessProbe成功时,它才会到达Ready。示例:kubectl get po
Running
Pending, Running, Succeeded, Failed, Unknown
Ready
status
status.condition
readinessProbe
kubectl get po
NAME READY STATUS RESTARTS AGE nani-play-8b6b89455-9g674 1/1 Running 0 13s
如果我通过kubectl describe po nani-play-8b6b89455-9g674更深入地探索Pod,其他信息包括
kubectl describe po nani-play-8b6b89455-9g674
Conditions: Type Status Initialized True Ready True <---- 👀 ContainersReady True PodScheduled True
1条答案
按热度按时间vxf3dgd41#
Running
是Pod * 状态 * 状态,定义为:Pod已绑定到节点,并且已创建所有container。至少有一个container仍在运行,或者正在启动或重新启动。
只需启动或运行一个Pod的容器,即可将整个Pod标记为
Running
。可能的状态为Pending, Running, Succeeded, Failed, Unknown
。可以将这些状态视为Pod状态的最高级别描述。每个状态都有一个Pod condition 数组以及其他元数据,这些元数据提供了有关内部容器的更多详细信息。Ready
是Pod * 条件 *,它是Podstatus
(status.condition
)的子状态。简单地说,当Pod标记为Ready
时,它已完全启动并能够接受 * 流量 *。有时这取决于Pod规范的设置方式;例如,如果Pod具有readinessProbe
,则仅当readinessProbe
成功时,它才会到达Ready
。示例:
kubectl get po
如果我通过
kubectl describe po nani-play-8b6b89455-9g674
更深入地探索Pod,其他信息包括