Pod 的生命周期

Pod狀態(tài)

  • Kubernetes pod 的階段


  • Pod狀態(tài)表
狀態(tài)值 描述
Pending 創(chuàng)建 Pod 對象后,在 pod 被調度到一個節(jié)點并且它的容器的鏡像被拉取和啟動之前,它一直處于這個階段。
Running Pod內所有容器均已創(chuàng)建,且至少有一個容器處于運行狀態(tài),正在啟動狀態(tài)或正在重啟狀態(tài)
Succeeded Pod內所有容器均成功執(zhí)行后退出,且不會再重啟
Failed Pod內所有容器均以退出,但至少有一個容器為退出失敗狀態(tài)
Unknown 由于某種原因無法獲取該Pod的狀態(tài),可能由于網絡通信不暢導致
  • 顯示pod的狀態(tài)
    $ kubectl get pod <pod-name> -o yaml | grep phase
    phase: Running
    

Pod狀況(Condition)

  • 簡介
    可以通過查看PodCondition列表了解更多信息,podCondition指示pod是否已達到某個狀態(tài),以及為什么會這樣,與狀態(tài)相反,一個Pod同時具有多個Conditions
  • Pod條件表
Pod Condition 描述
PodScheduled 表示pod是否已調度到節(jié)點
Initialized Pod的 init容器都已成功完成
ContainersReady Pod 中所有容器都已就緒
Ready Pod 可以為請求提供服務,并且應該被添加到對應服務的負載均衡池中
  • 顯示pod的狀況
    $ kubectl describe po <pod-name> | grep Conditions: -A5
    

容器狀態(tài)

  • 容器狀態(tài)最重要的部分是它的 state,容器可以處于下圖所示的狀態(tài)之一

  • 容器狀態(tài)表

Container State 描述
Waiting 容器正在等待啟動
Running 容器已創(chuàng)建并且進程正在其中運行,startAt字段指示此容器啟動的時間
Terminated 已在容器中運行的進程已終止,finishedAt 字段指示容器何時終止,主進程終止的退出代碼位于exitCode字段中
Unknown 無法確定容器的狀態(tài)
  • 顯示pod的容器狀態(tài)
    $ 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 的常規(guī)容器在其中運行
  • termination-終止階段
    在該階段終止 pod 的容器
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容