概述
本博客主要研究Init Containers的执行相关的问题。 以下示例命令行将Pod称为,将Init Containers称为和。
检查Init Containers的状态
执行命令
kubectl get pod <pod-name>
如果出现类似一下情况,表明<init-container-1>
已经执行完成
NAME READY STATUS RESTARTS AGE
<pod-name> 0/1 Init:1/2 0 7s
获取有关Init容器的详细信息
kubectl describe pod <pod-name>
如果一个POD有两个init-container容器,那么将得到类似一下结果
Init Containers:
<init-container-1>:
Container ID: ...
...
State: Terminated
Reason: Completed
Exit Code: 0
Started: ...
Finished: ...
Ready: True
Restart Count: 0
...
<init-container-2>:
Container ID: ...
...
State: Waiting
Reason: CrashLoopBackOff
Last State: Terminated
Reason: Error
Exit Code: 1
Started: ...
Finished: ...
Ready: False
Restart Count: 3
...
您还可以通过阅读Pod Spec中的status.initContainerStatuses字段以编程方式访问Init Container状态:
例如
kubectl get pod nginx --template '{{.status.initContainerStatuses}}'
获取初始化容器日志
kubectl logs <pod-name> -c <init-container-2>
Pod status概括
Init:N/M --表示有M个init-container已经有N个init执行完成
Init:Error --init-container 执行失败
Init:CrashLoopBackOff --init-container重复初始化,但是没有已成功
Pending --init-container 处于等待执行的状态
PodInitializing or Running --Pod已经完成了Init Containers的执行或者执行中
END