更新时间:2024-11-13 GMT+08:00

工作负载状态异常定位方法

工作负载状态异常时,建议先查看Pod的事件以便于确定导致异常的初步原因,再针对性解决问题。

定位流程

工作负载状态异常定位步骤如下:

  1. 查看Pod状态是否正常

    1. 登录CCE控制台。
    2. 单击集群名称进入集群,在左侧选择“工作负载”
    3. 在页面左上角选择命名空间,找到对应的工作负载,查看其状态。
      • 如果工作负载状态为“未就绪”,可通过查看Pod的事件等信息确定异常原因,详情请参见Pod事件查看方法。根据事件,参考Pod常见异常问题查找异常的解决方案。
      • 如果工作负载状态为“处理中”,一般为过程中的状态,请耐心等待。
      • 如果工作负载状态为“运行中”,一般无需处理。如果出现状态正常但无法访问的情况,则需要进一步排查集群内访问是否正常。

  2. 集群内部是否可以正常访问

    您可以在CCE控制台界面或者使用kubectl命令查找Pod的IP,然后登录到集群内的节点或容器中,使用curl命令等方法手动调用接口,查看结果是否符合预期。

    如果容器IP+端口不能访问,建议登录到业务容器内使用“127.0.0.1+端口”进行排查。

  3. 访问结果是否符合预期

    如果集群内可以正常访问工作负载,但访问结果不符合预期,则需要进一步排查工作负载配置问题,例如镜像版本、环境变量是否正确。

Pod常见异常问题

实例状态

问题描述

处理措施

Pending

实例调度失败

请参考工作负载异常:实例调度失败

Pending

实例挂卷失败

请参考工作负载异常:存储卷无法挂载或挂载超时

Pending

添加存储失败

请参考工作负载异常:添加存储失败

FailedPullImage

ImagePullBackOff

拉取镜像失败

重新拉取镜像失败

请参考工作负载异常:实例拉取镜像失败

CreateContainerError

CrashLoopBackOff

启动容器失败

重新启动容器失败

请参考工作负载异常:启动容器失败

Evicted

实例状态为“Evicted”,pod不断被驱逐

请参考工作负载异常:实例驱逐异常(Evicted)

Creating

实例状态一直为“创建中”

请参考工作负载异常:一直处于创建中

Terminating

实例状态一直为“结束中”

请参考工作负载异常:Pod一直处于Terminating状态

Stopped

实例状态为“已停止”

请参考工作负载异常:已停止

Pod事件查看方法

方式一

在CCE控制台中单击工作负载名称,前往“工作负载详情”页面,找到处于异常状态的实例,单击操作栏中的“事件”进行查看。

图1 查看Pod事件

方式二

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.