- Pod 排错
- 常用命令
- Pod 状态
- 问题导航
Pod 排错
本文是本书排查指南板块下问题排查章节的 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 一直处于 Pending 状态
- Pod 一直处于 ContainerCreating 或 Waiting 状态
- Pod 一直处于 CrashLoopBackOff 状态
- Pod 一直处于 Terminating 状态
- Pod 一直处于 Unknown 状态
- Pod 一直处于 Error 状态
- Pod 一直处于 ImagePullBackOff 状态
- Pod 一直处于 ImageInspectError 状态
- Pod Terminating 慢
- Pod 健康检查失败
- 容器进程主动退出
更多内容还在不断 Loading,如果发发现了更多奇怪现象或相同现象但不同的原因导致的,欢迎一起分享,也可以给本书提 PR,一起完善补充。
