工作负载状态异常定位方法
工作负载状态异常时,建议先查看Pod的事件以便于确定导致异常的初步原因,再针对性解决问题。
定位流程
工作负载状态异常定位步骤如下:
- 查看Pod状态是否正常
- 集群内部是否可以正常访问
您可以在CCE控制台界面或者使用kubectl命令查找Pod的IP,然后登录到集群内的节点或容器中,使用curl命令等方法手动调用接口,查看结果是否符合预期。
如果容器IP+端口不能访问,建议登录到业务容器内使用“127.0.0.1+端口”进行排查。
登录容器的操作步骤请参见登录容器的方法。
- 访问结果是否符合预期
如果集群内可以正常访问工作负载,但访问结果不符合预期,则需要进一步排查工作负载配置问题,例如镜像版本、环境变量是否正确。详情请参见工作负载状态正常但未正常工作。
Pod常见异常问题
实例状态 |
问题描述 |
处理措施 |
---|---|---|
Pending |
实例调度失败 |
|
Pending |
实例挂卷失败 |
|
Pending |
添加存储失败 |
|
FailedPullImage ImagePullBackOff |
拉取镜像失败 重新拉取镜像失败 |
|
CreateContainerError CrashLoopBackOff |
启动容器失败 重新启动容器失败 |
|
Evicted |
实例状态为“Evicted”,pod不断被驱逐 |
|
Creating |
实例状态一直为“创建中” |
|
Terminating |
实例状态一直为“结束中” |
|
Stopped |
实例状态为“已停止” |
请参考工作负载异常:已停止 |
Running |
实例状态为“运行中” |
Pod运行正常则无需处理。如果未正常工作,请参考工作负载状态正常但未正常工作 |
Init:N/M |
Init容器启动失败 |
|
Init:Error |
Init容器启动失败 |
|
Init:CrashLoopBackOff |
Init容器不断重启失败 |
Pod事件查看方法
方式一
在CCE控制台中单击工作负载名称,前往“工作负载详情”页面,找到处于异常状态的实例,单击操作栏中的“事件”进行查看。
方式二
Pod的事件可以使用kubectl describe pod {pod-name}命令查看,
$ kubectl describe pod prepare-58bd7bdf9-fthrp ... Events: Type Reason Age From Message ---- ------ ---- ---- ------- Warning FailedScheduling 49s default-scheduler 0/2 nodes are available: 2 Insufficient cpu. Warning FailedScheduling 49s default-scheduler 0/2 nodes are available: 2 Insufficient cpu.