容器智能运维平台提供一键故障诊断能力,包括节点诊断、Pod诊断、Service诊断、Ingress诊断、内存诊断、网络诊断,可以辅助您定位集群中出现的问题。本文介绍如何在ACK集群中使用集群诊断功能。
前提条件
已创建Kubernetes托管版集群。具体操作,请参见创建Kubernetes托管版集群。
确保Kubernetes集群运行状态处于运行中。
说明您可以登录容器服务管理控制台,在集群列表页面的集群状态列,确认集群状态为运行中。
诊断功能介绍
容器智能运维平台提供的诊断功能如下表所示。
诊断项 | 说明 |
诊断节点相关的问题,例如K8s节点NotReady等。 | |
诊断K8s Pod状态异常相关的问题,例如Pod启动失败,Pod频繁重启等 。 | |
诊断Service相关的问题,例如Service配置、资源配额、异常事件信息等。 | |
诊断Ingress相关的流量配置等问题。 | |
诊断节点内存相关问题,例如内存泄漏、cgroup泄漏、OOM等,诊断结果以可视化图表展示内存整体使用情况。 | |
诊断网络常见问题,例如Pod之间不通、集群到公网访问不通、公网到LoadBalancer不通等。 |
配置故障诊断
使用故障诊断功能时,系统将在您的集群节点上执行数据采集程序并收集检查结果。采集的信息包括系统版本、负载、Docker、kubelet等运行状态以及系统日志中的关键错误信息。数据采集程序不会采集您的业务信息及敏感数据。
配置节点诊断和配置Pod、Service、Ingress等诊断操作类似。下文以配置节点诊断为例,介绍如何配置故障诊断功能。
登录容器服务管理控制台,在左侧导航栏选择集群。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择
。在故障诊断页面,单击节点诊断,然后在节点诊断页面的左上角,单击诊断。
在选择节点面板,选择节点名称,仔细阅读注意事项后选中我已知晓并同意,然后单击发起诊断。
您可以根据页面提示查看诊断进展。诊断完成后,诊断页面将显示诊断结果和诊断项,供您查看异常原因并修复问题。
查看诊断结果
在故障诊断页面诊断列表的操作列,单击目标诊断报告对应的诊断详情,在诊断详情页面查看详细诊断结果。
根据集群配置,具体检查项可能稍有不同。实际结果请以诊断页面结果为准。
诊断项 | 对应的检查项状态 | 说明 |
节点诊断 |
| 节点诊断包括Node、NodeComponent、ClusterComponent、ECSControllerManager、GPUNode检查项,通过节点状态、节点组件状态、集群组件状态和ECS状态综合判定节点异常原因。在诊断详情页面,可以看到节点的诊断结果、修复建议及具体的诊断项列表。 鼠标悬浮在检查项右侧图标上,即可查看检查项说明。 如果有异常或警告类的检查项,会显示在待处理页签中。 检查项状态为异常时,可以在目标检查项右侧状态中的查看详情的Tips中查看异常。 |
Pod诊断 | Pod诊断包括Pod、ClusterComponent、Node、NodeComponent、ECSControllerManager检查项。通过Pod状态、集群组件状态、节点状态、节点组件状态和ECS状态综合判定Pod异常原因。在诊断详情页面,可以看到Pod的诊断结果、修复建议及具体的诊断项列表。 鼠标悬浮在检查项右侧图标上,即可查看检查项说明。 如果有异常或警告类的检查项,会显示在待处理页签中。 检查项状态为异常时,可以在目标检查项右侧状态中的查看详情的Tips中查看异常。 | |
Service诊断 | Service诊断包括Service和ResourceQuotas检查项。通过检查CLB计费类型、证书、配额、异常Event等检查项判定Service异常原因。 鼠标悬浮在检查项右侧图标上,即可查看检查项说明。 如果有异常或警告类的检查项,会显示在待处理页签中。 检查项状态为异常时,可以在目标检查项右侧状态中的查看详情的Tips中查看异常。 | |
Ingress诊断 | Ingress诊断包括Ingress、Addon、SLB检查项。通过Ingress状态、Ingress插件状态和SLB状态综合判定Ingress异常原因。 鼠标悬浮在检查项右侧图标上,即可查看检查项说明。 如果有异常或警告类的检查项,会显示在待处理页签中。 检查项状态为异常时,可以在目标检查项右侧状态中的查看详情的Tips中查看异常。 | |
内存诊断 | 无。 | 在诊断详情页面,您可以查看内存总览、内存分析和OOM分析,包括内存泄漏状态、内存利用率、各个进程所占的内存等内容。 |
网络诊断 |
| 在诊断结果页面,能够查看网络诊断结果,并且在访问全图区域,会呈现出本次诊断访问链路的全景图。异常节点会使用不同于正常节点的颜色标出。 |