Pod诊断

阿里云容器计算服务ACS使用容器智能运维平台提供了Pod诊断功能,帮助您诊断异常的Pod信息。本文介绍Pod诊断的检查项以及对应的修复方案。

容器智能运维平台构建了基于专家经验的故障诊断系统,并基于海量数据训练了AI智能故障诊断模型。Pod诊断融合了基于专家经验和AI智能诊断两种诊断模式,进一步深入定位问题根因。Pod诊断包括诊断检查项和诊断根因。

  • 诊断检查项:包括Pod检查、ClusterComponent检查。

  • 诊断根因:包括定位到的根因以及修复建议。Pod诊断会收集部分集群信息并识别其中的异常,然后根据识别到的异常进行深入的异常诊断。

重要

使用故障诊断功能时,系统将在您的集群执行数据采集程序并收集检查结果。采集的信息包括系统版本,以及负载、容器组件等运行状态及系统日志中关键错误信息。数据采集程序不会采集您的业务信息及敏感数据。

诊断支持的异常场景

Pod诊断覆盖的典型异常场景和AI智能诊断支持场景如下表所示。

类别

支持的异常场景

Pod诊断

Pod未被调度器处理。

Pod不满足调度约束无法被调度。

Pod已调度但未被kubelet处理。

Pod等待存储卷就绪。

Pod被驱逐。

Pod的Sandbox容器创建失败。

Pod长期处于terminating状态。

Pod中容器发生OOM异常。

Pod中容器异常退出。

Pod中容器处于CrashLoopBackOff状态。

Pod中容器NotReady。

Pod拉取镜像出错。

Pod拉取镜像超时。

AI智能诊断

Pod状态异常。

Pod发生OOM异常。

Pod容器异常退出。

Pod ConfigMap或Secret配置异常。

Pod健康检查失败。

Pod PVC配置异常。

Pod镜像拉取异常。

诊断流程

集群诊断收集部分集群信息并识别其中的异常,然后根据识别到的异常进行深入的异常诊断。诊断融合了基于专家经验和AI智能诊断两种诊断模式,进一步深入定位问题根因。发起诊断后,诊断会按照异常识别、数据采集、检查项评估以及根因分析四个阶段,完成后给出诊断结果。

image.png

  • 异常识别:采集基本数据,例如Pod状态、集群Event事件流等,并快速分析当前的异常。

  • 数据采集:根据异常识别结果采集和诊断上下文相关的数据。

  • 检查项评估:根据采集到的数据,判断关键指标是否正常。

  • 根因分析:根据采集的数据和检查项,部分问题可自动分析导致问题的原因。

诊断结果

诊断结果包括根因结果与检查项。根因诊断结果部分包括识别到的异常异常根因修复建议。检查项则按不同的类别对可能引起异常的点进行检查,覆盖根因未包括的部分,并对异常原因进一步补充。

说明

根据集群配置,具体检查项可能稍有不同。实际结果请以诊断页面结果为准。

Pod诊断对应的检查项

诊断项分组

说明

Pod

检查Pod常见问题,检查项包括Pod状态和镜像拉取等。

ClusterComponent

检查集群常见问题,检查项包括API Service可用性和DNS可用性等。

Pod

检查项名称

检查项说明

修复方案

Pod容器重启次数统计

统计Pod中容器重启次数。

请检查Pod状态及日志。更多信息,请参见Pod异常问题排查

Pod容器镜像下载阻塞情况

检查Pod同节点是否有其他Pod的容器镜像下载被阻塞。

请检查Pod状态及日志。更多信息,请参见Pod异常问题排查

Pod调度状态

检查Pod是否正常调度。

请检查Pod状态及日志。更多信息,请参见Pod异常问题排查

ClusterComponent

检查项名称

检查项说明

修复方案

集群APIService可用状态

检查集群APIService是否可用。

请尝试通过命令kubectl get apiservice,检查集群中的APIService的可用状态,并通过kubectl describe apiservice命令,查看状态异常的APIService并分析原因。

DNS服务后端服务端点

检查集群DNS服务Endpoints数。

请检查CoreDNS Pod运行状态和运行日志。

DNS服务ClusterIP

检查集群DNS服务的Cluster IP是否正常分配,集群DNS服务异常会造成集群功能异常,影响业务。

请检查CoreDNS Pod运行状态和运行日志。