我正在使用 Java Fabric k8s 客戶端獲取相位等于“正在運行”的 POD 串列。我在 POD 中有 2 個容器。我注意到 getPods() 方法正在回傳 POD,因為即使 2 個容器中的一個仍然沒有處于 READY 狀態,也正在運行。
當 pod 中的所有容器都未處于 READY 狀態時,為什么會發生這種情況?
uj5u.com熱心網友回復:
Running是一個 Pod狀態狀態,定義為:
“Pod已經系結了一個節點,并且所有的容器都已經創建好了。至少有一個容器還在運行,或者正在啟動或重啟程序中。”
只需啟動或運行 Pod 的容器之一,即可將整個 Pod 充分標記為Running. 可能的狀態是Pending, Running, Succeeded, Failed, Unknown。將這些視為對 Pod 狀態的最高級別描述。這些狀態中的每一個都有一個 Pod條件陣列以及其他元資料,這些元資料提供有關內部容器的更多詳細資訊。
Ready是 Pod條件,它是 Pod status( status.condition) 的子狀態。簡單來說,當一個 Pod 被標記為 時Ready,它就完全啟動并能夠接受流量。有時這確實取決于您的 Pod 規范是如何設定的;例如,如果你的 Pod 有一個readinessProbe,它Ready只有在readinessProbe成功時才會到達。
例子:kubectl get po
NAME READY STATUS RESTARTS AGE
nani-play-8b6b89455-9g674 1/1 Running 0 13s
如果我通過 深入探索 pod kubectl describe po nani-play-8b6b89455-9g674,其他資訊包括
Conditions:
Type Status
Initialized True
Ready True <---- ??
ContainersReady True
PodScheduled True
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/532342.html
上一篇:拒絕來自其他命名空間的所有流量
