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

- Create a Pod: 使用者透過
Kubectl run或kubectl 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