十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
此页显示如何核查与 Init 容器执行相关的问题。 下面的示例命令行将 Pod 称为 

你必须拥有一个 Kubernetes 的集群,同时你的 Kubernetes 集群必须带有 kubectl 命令行工具。 建议在至少有两个节点的集群上运行本教程,且这些节点不作为控制平面主机。 如果你还没有集群,你可以通过 Minikube 构建一个你自己的集群,或者你可以使用下面任意一个 Kubernetes 工具构建:
要检查版本,请输入 kubectl version。
显示你的 Pod 的状态:
kubectl get pod 
 例如,状态 Init:1/2 表明两个 Init 容器中的一个已经成功完成:
NAME         READY     STATUS     RESTARTS   AGE
   0/1       Init:1/2   0          7s 查看 Init 容器运行的更多详情:
kubectl describe pod 
 例如,对于包含两个 Init 容器的 Pod 可能显示如下信息:
Init Containers:
  :
    Container ID:    ...
    ...
    State:           Terminated
      Reason:        Completed
      Exit Code:     0
      Started:       ...
      Finished:      ...
    Ready:           True
    Restart Count:   0
    ...
  :
    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 容器的状态:
kubectl get pod nginx --template '{{.status.initContainerStatuses}}'
此命令将返回与原始 JSON 中相同的信息.
与 Pod 名称一起传递 Init 容器名称,以访问容器的日志。
kubectl logs  -c 
  运行 Shell 脚本的 Init 容器在执行 Shell 脚本时输出命令本身。 例如,你可以在 Bash 中通过在脚本的开头运行 set -x 来实现。
以 Init: 开头的 Pod 状态汇总了 Init 容器执行的状态。 下表介绍调试 Init 容器时可能看到的一些状态值示例。
| 状态 | 含义 | 
|---|---|
| Init:N/M | Pod 包含 M个 Init 容器,其中N个已经运行完成。 | 
| Init:Error | Init 容器已执行失败。 | 
| Init:CrashLoopBackOff | Init 容器执行总是失败。 | 
| Pending | Pod 还没有开始执行 Init 容器。 | 
| PodInitializingorRunning | Pod 已经完成执行 Init 容器。 |