kubernetes k8s客户端:即使一些容器未处于就绪状态,pod阶段也显示为“正在运行”

aiazj4mn  于 2022-11-28  发布在  Kubernetes
关注(0)|答案(1)|浏览(339)

我正在使用Java Fabric k8s客户端获取阶段等于“Running”的POD列表。我在POD中有2个容器。我注意到getPods()方法返回POD为Running,即使2个容器中的一个仍未处于READY状态。
为什么当pod中的所有容器都未处于READY状态时会发生这种情况?

vxf3dgd4

vxf3dgd41#

Running是Pod * 状态 * 状态,定义为:
Pod已绑定到节点,并且已创建所有container。至少有一个container仍在运行,或者正在启动或重新启动。
只需启动或运行一个Pod的容器,即可将整个Pod标记为Running。可能的状态为Pending, Running, Succeeded, Failed, Unknown。可以将这些状态视为Pod状态的最高级别描述。每个状态都有一个Pod condition 数组以及其他元数据,这些元数据提供了有关内部容器的更多详细信息。
Ready是Pod * 条件 *,它是Pod statusstatus.condition)的子状态。简单地说,当Pod标记为Ready时,它已完全启动并能够接受 * 流量 *。有时这取决于Pod规范的设置方式;例如,如果Pod具有readinessProbe,则仅当readinessProbe成功时,它才会到达Ready
示例: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,其他信息包括

Conditions:
  Type              Status
  Initialized       True 
  Ready             True     <---- 👀
  ContainersReady   True 
  PodScheduled      True

相关问题