CKA [Logging] – Pod的生命周期

Pod的创建声明周期如果这图列出来的。
✅ Pending
Pod已经被要求创建,有可能正在拉着image, 或者在scheduling着,但是还没创建成功。如果你K8s的scheduler出问题,或是WorkerNode Kubelet出问题的话,也会卡着Pending的状态。有可能当前没有可用的WorkerNode那么也一样会卡在Pending的状态。
✅ Runing
Pod已经被安排在WorkerNode当中运行着。如果Pod是重启的话也是在Running的状态。
✅ Succeeded
如果你开启一个Pod 运行完毕了之后就会是Completed的状态。比如你创建一个Busybox 当pod执行完毕了之后就关闭了状态也会更新成completed。如果你开启的pod是nginx,那么就会无限的运行下去,状态也是一直维持在Running中。
1.创建Pod
apiVersion: v1
kind: Pod
metadata:
  labels:
    run: test
  name: test
spec:
  containers:
  - args:
    - echo
    - Hello Kubernetes
    image: busybox
    name: test-pod-5
  restartPolicy: Never
2. 查看Pod是completed的
kubectl get pod -n default
3. 查看Pod log,就能看到Hello Kubernetes, 当这个命令一执行完毕之后Pod就变成了Completed了
kubectl logs test -n default

4. 从get pod命令行输出yaml 看到succeeded的phase
kubectl get pod test -n default -o yaml

✅ Failed
Pod内全部的Container被terminated或是其中一个container是错误的terminate。
✅ Unknown
WorkerNode之间有可能是通信问题造成了Pod无法知道是什么状态。

有时我们从get pod 看到的状态不一定的这5个的,也有可能是ContainerCreating,那么这个也被归纳到Pending的范畴当中。
 ![]()
		Facebook评论