Pod诊断

更新时间: 2023-10-27 17:23:39

容器智能运维平台提供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可用性、NAT网关状态等。

Pod

检查项名称

检查项说明

修复方案

Pod容器重启次数统计

统计Pod中容器重启次数。

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

Pod容器镜像下载阻塞情况

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

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

Pod容器镜像Secrets有效性检查

检查Pod拉取镜像的Secrets是否有效。

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

GPU Pod的环境变量是否合法

检查NVIDIA_VISIBLE_DEVICES是否位于Pod环境变量中,因为此变量可能与Kubelet冲突。

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

Pod到CoreDNS Pods的连通性

检查Pod到CoreDNS Pods连通性。

检查Pod到CoreDNS Pods的连通性。

Pod到CoreDNS Service的连通性

检查Pod到CoreDNS Service连通性。

检查Pod到CoreDNS Pods的连通性。

Pod到主机网络DNS服务器的连通性

检查Pod到主机网络DNS服务器的连通性。

检查Pod到主机网络DNS服务器的连通性。

Pod容器进程处于D状态检查

检查Pod的容器进程是否处于D状态。

Pod的部分容器进程处于D状态,通常为容器进程卡在磁盘IO中,您可以加入钉钉群 44325004118反馈处理。

Pod初始化状态

检查Pod是否正常初始化。

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

Pod申请的GPU资源

检查Pod是否申请GPU资源,排除因为未申请GPU资源导致的Pod无法使用GPU。

该Pod中没有声明GPU资源,如有需要,请检查Pod配置是否规范。

Pod调度状态

检查Pod是否正常调度。

该Pod中没有声明GPU资源,如有需要,请检查Pod配置是否规范。

ClusterComponent

检查项名称

检查项说明

修复方案

集群免密插件版本检查

检查集群免密插件版本是否过低。

集群免密插件版本检查过低,请尽快升级版本。具体操作,请参见使用免密组件拉取容器镜像

集群APIService可用状态

检查集群APIService是否可用。

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

集群Pod网段余量紧张

检查Flannel集群剩余可用PodCIDR网段是否少于5个。每个节点消耗一个PodCIDR网段,Pod网段耗尽后,新添加的节点将无法正常工作。

提交工单处理。

DNS 服务后端服务端点

检查集群DNS服务Endpoints数。

请检查CoreDNS Pod运行状态和运行日志。更多信息,请参见DNS解析异常问题排查

DNS 服务 ClusterIP

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

请检查CoreDNS Pod运行状态和运行日志。更多信息,请参见DNS解析异常问题排查

集群NAT网关状态

检查集群NAT网关状态。

请登录NAT网关管理控制台,检查集群的NAT网关是否因欠费而处于欠费锁定状态。

集群NAT网关并发超规格丢弃速率

检查NAT网关会话并发超规格丢弃速率是否过高。

集群NAT网关会话并发超规格丢弃速率过高,请尝试通过升级NAT网关的规格解决该问题。更多信息,请参见普通型公网NAT网关升级至增强型公网NAT网关FAQ