为满足一定的业务需求,用户往往需要对容器服务集群进行一系列复杂的自定义配置。而当集群中的 Pod 出现某种异常时,可能一时无法直接通过异常状态准确定位异常原因。
基于以上现象,您可参考 Pod 异常问题 系列文档进行问题排查、定位及解决。

常用命令

排查过程的常用命名如下:
查看 Pod 状态:
kubectl get pod <pod-name> -o wide
查看 Pod 的 yaml 配置:
kubectl get pod <pod-name> -o yaml
查看 Pod 事件:
kubectl describe pod <pod-name>
查看容器日志:
kubectl logs <pod-name> [-c <container-name>]

Pod 状态

下表中列举了 Pod 的状态信息:
状态
描述
Error
Pod 启动过程中发生错误。
NodeLost
Pod 所在节点失联。
Unkown
Pod 所在节点失联或其他未知异常。
Waiting
Pod 等待启动。
Pending
Pod 等待被调度。
ContainerCreating
Pod 容器正在被创建。
Terminating
Pod 正在被销毁。
CrashLoopBackOff
容器退出,Kubelet 正在将它重启。
InvalidImageName
无法解析镜像名称。
ImageInspectError
无法校验镜像。
ErrImageNeverPull
策略禁止拉取镜像。
ImagePullBackOff
正在重试拉取。
RegistryUnavailable
连接不到镜像中心。
ErrImagePull
通用的拉取镜像出错。
CreateContainerConfigError
不能创建 Kubelet 使用的容器配置。
CreateContainerError
创建容器失败。
RunContainerError
启动容器失败。
PreStartHookError
执行 preStart hook 报错。
PostStartHookError
执行 postStart hook 报错。
ContainersNotInitialized
容器没有初始化完毕。
ContainersNotReady
容器没有准备完毕。
ContainerCreating
容器创建中。
PodInitializing
Pod 初始化中。
DockerDaemonNotReady
Docker 还没有完全启动。
NetworkPluginNotReady
网络插件还没有完全启动。

问题定位

您可根据 Pod 的异常状态,选择对应参考文档进一步定位异常原因: