阿里云容器计算服务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智能诊断两种诊断模式,进一步深入定位问题根因。发起诊断后,诊断会按照异常识别、数据采集、检查项评估以及根因分析四个阶段,完成后给出诊断结果。
异常识别:采集基本数据,例如Pod状态、集群Event事件流等,并快速分析当前的异常。
数据采集:根据异常识别结果采集和诊断上下文相关的数据。
检查项评估:根据采集到的数据,判断关键指标是否正常。
根因分析:根据采集的数据和检查项,部分问题可自动分析导致问题的原因。
诊断结果
诊断结果包括根因结果与检查项。根因诊断结果部分包括识别到的异常、异常根因和修复建议。检查项则按不同的类别对可能引起异常的点进行检查,覆盖根因未包括的部分,并对异常原因进一步补充。
根据集群配置,具体检查项可能稍有不同。实际结果请以诊断页面结果为准。
Pod诊断对应的检查项
诊断项分组 | 说明 |
检查Pod常见问题,检查项包括Pod状态和镜像拉取等。 | |
检查集群常见问题,检查项包括API Service可用性和DNS可用性等。 |
Pod
检查项名称 | 检查项说明 | 修复方案 |
Pod容器重启次数统计 | 统计Pod中容器重启次数。 | 请检查Pod状态及日志。更多信息,请参见Pod异常问题排查。 |
Pod容器镜像下载阻塞情况 | 检查Pod同节点是否有其他Pod的容器镜像下载被阻塞。 | 请检查Pod状态及日志。更多信息,请参见Pod异常问题排查。 |
Pod调度状态 | 检查Pod是否正常调度。 | 请检查Pod状态及日志。更多信息,请参见Pod异常问题排查。 |
ClusterComponent
检查项名称 | 检查项说明 | 修复方案 |
集群APIService可用状态 | 检查集群APIService是否可用。 | 请尝试通过命令 |
DNS服务后端服务端点 | 检查集群DNS服务Endpoints数。 | 请检查CoreDNS Pod运行状态和运行日志。 |
DNS服务ClusterIP | 检查集群DNS服务的Cluster IP是否正常分配,集群DNS服务异常会造成集群功能异常,影响业务。 | 请检查CoreDNS Pod运行状态和运行日志。 |