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)
- 簡介
可以通過查看Pod的Condition列表了解更多信息,pod的Condition指示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 的容器

