Skip to content

antony@notes:~/misc$ cat "Pod-LifeCycle.md"

Pod LifeCycle

2024-08-03· misc

Pod LifeCycle

圖片1

  • Create a Pod: 使用者透過 Kubectl runkubectl apply -f abc.yaml 來建立 Pod。
  • Pending: Pod 已被 Kubernetes 叢集接受,但其中一個或多個容器尚未設定並準備好執行。這包括 Pod 等待排程的時間,以及透過網路下載 Container Images 的時間。
  • Running: Pod 已經綁定到節點,而且所有 Container 都已建立,至少有一個 Container 仍在執行,或正在啟動或重新啟動。
  • Succeeded: Pod 中的所有 Containers 都已成功終止,不會重新啟動。
  • Failed: Pod 中的所有 Containers 都已終止,且至少有一個 Container 終止失敗。也就是說,Container 不是以非零狀態退出,就是被系統終止。
  • Unknown: 由於某些原因,無法取得 Pod 的狀態。這個階段通常是因為與 Pod 應該執行的節點 (與 Node 失連) 通訊時發生錯誤。
  • CrashLoopBackoff: 這表示 Kubernetes 已經重複嘗試重新啟動您的 Pod,導致 Container 進入當機與重新啟動的循環,容器無法啟動。

Pod Lifecycle - Succeeded

$ echo $'apiVersion: v1
kind: Pod
metadata:
  name: myapp-pod
spec:
  containers:
  - name: myapp-container
    image: quay.io/cloudwalker/alp.base
    command: [\'sh\', \'-c\', \'echo The Pod is running && sleep 10\']
  restartPolicy: Never' > ~/wulin/yaml/myLifecyclePod-1.yaml
  
$ ka -f ~/wulin/yaml/myLifecyclePod-1.yaml

$ kubectl get pods
NAME        READY   STATUS      RESTARTS   AGE
myapp-pod   0/1     Completed   0          25m