k8s pod狀態有哪些

滴滴滴發表於2024-10-15

在 Kubernetes 中,Pod 的狀態(Pod phase)是對其生命週期的簡單宏觀概述,反映了 Pod 在其生命週期中的不同階段。以下是 Pod 的可能狀態及其描述:

  1. Pending(掛起):Pod 已被 Kubernetes 系統接受,但有一個或者多個容器尚未建立亦未執行。這包括等待 Pod 被排程的時間和透過網路下載映象的時間

  2. Running(執行中):Pod 已經繫結到了某個節點,Pod 中所有的容器都已被建立。至少有一個容器仍在執行,或者正處於啟動或重啟狀態

  3. Succeeded(成功):Pod 中的所有容器都已成功終止,並且不會再重啟

  4. Failed(失敗):Pod 中的所有容器都已終止,並且至少有一個容器是因為失敗終止。也就是說,容器以非 0 狀態退出或者被系統終止,且未被設定為自動重啟

  5. Unknown(未知):因為某些原因無法取得 Pod 的狀態。這種情況通常是因為與 Pod 所在主機通訊失敗

除了這些基本狀態,Pod 還有一些特殊的條件狀態,它們記錄了 Pod 的一些細節資訊,例如 Pod 是否處於排程中、容器映象是否拉取成功等。這些條件狀態包括但不限於:

  • PodScheduled:Pod 已經被排程到某節點。
  • ContainersReady:Pod 中所有容器都已就緒。
  • Initialized:所有的 Init 容器都已成功完成。
  • Ready:Pod 可以為請求提供服務,並且應該被新增到對應服務的負載均衡池中

此外,Pod 中的容器可以處於以下狀態:

  1. Waiting(等待):如果容器並不處在 Running 或 Terminated 狀態之一,它就處在 Waiting 狀態。處於 Waiting 狀態的容器仍在執行它完成啟動所需要的操作,例如從某個容器映象倉庫拉取容器映象

  2. Running(執行中):Running 狀態表明容器正在執行狀態並且沒有問題發生

  3. Terminated(已終止):處於 Terminated 狀態的容器開始執行後,或者執行至正常結束或者因為某些原因失敗

還有一些特殊狀態,如 CrashLoopBackOff,表示 Pod 不斷崩潰並重啟,進入了“崩潰迴圈”。這通常是由於容器啟動後立即崩潰,並且根據重啟策略不斷重啟

相關文章