阿里云容器服务ACK提供一键故障诊断能力,包括节点诊断、Pod诊断、Service诊断、Ingress诊断和内存诊断,可以辅助您定位集群中出现的问题。本文介绍如何在ACK集群中使用集群诊断功能。

前提条件

诊断功能介绍

容器服务ACK提供的诊断功能如下表所示。

诊断项说明
节点诊断诊断节点相关的问题。例如K8s节点NotReady等。
Pod诊断诊断K8s Pod状态异常相关的问题。例如Pod启动失败,Pod频繁重启等 。
Service诊断诊断Service相关的问题。例如Service配置、资源配额、异常事件信息等。
Ingress诊断诊断Ingress相关的流量配置等问题。
内存诊断诊断节点内存相关问题。例如内存泄漏、cgroup泄漏、OOM等,诊断结果以可视化图表展示内存整体使用情况。

配置故障诊断

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

配置节点诊断和配置Pod诊断、配置Service诊断、配置Ingress诊断、配置内存诊断操作类似,下文以配置节点诊断为例,介绍如何配置故障诊断功能。

  1. 登录容器服务管理控制台,在左侧导航栏选择集群
  2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择巡检和诊断 > 故障诊断
  3. 故障诊断页面,单击节点诊断
  4. 选择节点面板,选择节点名称,仔细检查后选中我已知晓并同意,然后单击发起诊断
    等待一段时间后,在故障诊断页面诊断报告状态列显示成功,表示诊断完成。

查看诊断结果

故障诊断页面右侧的操作列,单击目标诊断报告右侧的诊断详情,在诊断详情页面查看详细诊断结果。
诊断项对应的检查项状态说明
节点诊断
  • 正常正常:无需处理。
  • 警告警告:需要确认,引起集群异常的情况需要处理。
  • 异常异常:尽快处理,避免集群无法正常工作。
  • 未知未知:未正常完成检查或结果未知。
节点诊断包括NodeNodeComponentClusterComponentECSControllerManagerGPUNode检查项,通过节点状态、节点组件状态、集群组件状态和ECS状态综合判定节点异常原因。在诊断详情页面,可以看到节点的诊断结果、修复建议及具体的诊断项列表。

鼠标悬浮在检查项右侧详情图标.png图标上,即可查看检查项说明。

如果有异常或警告类的检查项,会显示在待处理页签中。

检查项状态为异常时,可以在目标检查项右侧状态中的查看详情的Tips中查看异常。

Pod诊断

Pod诊断包括PodClusterComponentNodeNodeComponentECSControllerManager检查项。通过Pod状态、集群组件状态、节点状态、节点组件状态和ECS状态综合判定Pod异常原因。在诊断详情页面,可以看到Pod的诊断结果、修复建议及具体的诊断项列表。

鼠标悬浮在检查项右侧详情图标.png图标上,即可查看检查项说明。

如果有异常或警告类的检查项,会显示在待处理页签中。

检查项状态为异常时,可以在目标检查项右侧状态中的查看详情的Tips中查看异常。

Service诊断Service诊断包括ServiceResourceQuotas检查项。通过检查CLB计费类型、证书、配额、异常Event等检查项判定Service异常原因。

鼠标悬浮在检查项右侧详情图标.png图标上,即可查看检查项说明。

如果有异常或警告类的检查项,会显示在待处理页签中。

检查项状态为异常时,可以在目标检查项右侧状态中的查看详情的Tips中查看异常。

Ingress诊断

Ingress诊断包括IngressAddonSLB检查项。通过Ingress状态、Ingress插件状态和SLB状态综合判定Ingress异常原因。

鼠标悬浮在检查项右侧详情图标.png图标上,即可查看检查项说明。

如果有异常或警告类的检查项,会显示在待处理页签中。

检查项状态为异常时,可以在目标检查项右侧状态中的查看详情的Tips中查看异常。

内存诊断无。在诊断详情页面,您可以查看内存总览内存分析OOM分析,包括内存泄漏状态、内存利用率、各个进程所占的内存等内容。