You need to enable JavaScript to run this app.
导航
节点诊断
最近更新时间:2024.07.08 14:09:59首次发布时间:2023.08.11 10:50:27

集群诊断可以帮助用户发现容器服务集群中各类资源可能存在的潜在风险,包括:节点池、节点、容器组等。本文为您介绍如何配置节点诊断。

前提条件

  • 已创建集群,操作说明参见 创建集群
  • 已安装 node-problem-detector 组件,并升级至 v0.8.19-vke.1 及以上版本。详情请参见 安装组件

配置诊断

  1. 登录 容器服务控制台
  2. 单击左侧导航栏中的 集群
  3. 在集群列表页面,单击需要配置的目标集群。
  4. 在集群管理页面的左侧导航栏中,单击 故障诊断
  5. 单击 创建诊断任务,配置节点诊断任务。
    alt
    配置项说明

    诊断类型

    配置需要进行诊断的资源类型,本示例中选择 节点

    说明

    当选择诊断资源为 节点 时,既支持对 ECS 节点进行诊断,也支持对 VCI 虚拟节点进行诊断。

    节点在左侧 全部节点 列表中,单击勾选需要进行诊断的节点,将其加入到右侧的 已选择节点 列表中。
  6. 单击 确定,完成配置,系统开始进行诊断,并生成诊断报告。

查看诊断结果

诊断任务执行完成后,如果当前诊断任务的状态为 异常,则说明节点中存在风险项。您可以单击诊断任务列表 操作 列中对应的 查看详情,查看诊断报告。
alt

诊断结果中会展示所有的诊断项、成功诊断项、未通过诊断项和警告诊断项,您需要查看 待处理 下的诊断项,并完成问题修复。
alt

下载诊断报告

诊断任务完成后,您可以下载 PDF 格式的诊断报告。

  1. 诊断完成后,单击诊断任务列表 操作 列中对应的 查看详情,查看诊断结果。
  2. 单击右上角 下载报告,即可下载 PDF 格式的诊断报告。

alt

诊断项说明和修复建议

说明

不同类型节点(ECS 节点、VCI 节点)的检查项略有不同,请以控制台为准。

节点状态

诊断项检查内容修复建议参考文档
节点状态检查检查节点状态是否为 Running 状态。如果节点状态异常,会导致 Pod 无法被调度到该节点上。请参考节点状态进行问题排查。节点状态
节点是否可调度检查节点是否可以调度。节点不可调度将导致集群实际资源和可用资源不一致。查看节点调度配置(被封锁、置为不可调度等),排除故障。管理节点
节点运行时和集群运行时是否一致检查节点运行时与集群是否一致。

节点负载

诊断项检查内容修复建议参考文档
节点 CPU 负载检查节点 CPU 最近一小时的平均使用率是否 ≥ 90%。
节点 Memory 负载检查节点内存最近一小时的平均使用率是否 ≥ 90%。
节点 MaxPod 检查检查节点可容纳新 Pod 的数量是否 < 2。达到上限后,将无法调度新的 Pod 到该节点。
节点 Swap 分区是否开启检查节点内存交换区 (Memory Swap) 是否开启。
容器目录所在磁盘容量检查检查节点磁盘的使用率 > 80%(仅针对系统盘 + 容器数据盘)。登录节点,尝试清理磁盘,释放磁盘空间。

节点网络

诊断项检查内容修复建议参考文档
节点是否存在 unregister_netdevice检查节点内核是否出现 unregister_netdevice。可能存在网络设备无法正确注销,从而导致网络连接问题,影响到集群的整体运行。提交工单 处理。
节点访问公网情况检查节点是否可以访问公网。节点无法访问公网可能造成业务访问失败。开启集群公网访问功能。开启集群公网访问
节点 DNS 地址解析检查节点的 DNS 地址解析功能是否正常。DNS 解析异常会导致节点无法通过域名访问公网。检查节点 DNS 服务是否正常。

节点系统基础

诊断项检查内容修复建议参考文档
节点 CNI 组件状态检查检查节点网络组件(VPC-CNI、Fannel)的运行状态。该组件异常会会导致节点容器网络不可用,无法执行创建删除容器操作。提交工单 处理。
节点 CSI 组件状态检查检查节点 CSI 组件运行状态。该组件异常会导致集群存储服务异常,无法使用存储服务。提交工单 处理。
节点 Containerd 状态检查节点 Containerd 服务状态是否为Active

节点 Cgroup 泄露检查

检查节点是否出现 cgroup 泄漏情况。节点出现 cgroup 泄漏可能导致监控采集出错,甚至容器无法启动。

  • 建议通常情况下,泄漏数量小于节点 Pod 总数 10倍时,可以暂时忽略。
  • 如果泄漏数量过多,造成 kubelet 等组件产生异常时,需要重启节点。

节点 Kubelet 状态检查节点 Kubelet 状态。
Kube-Proxy 组件运行状态检查检查节点 Kube-Proxy 组件运行状态。
节点 Systemd Hung 情况检查节点是否出现 Systemd Hung 情况。登录节点,通过systemctl daemon-reexec重启节点 Systemd。登录节点
节点 Systemd 版本检查节点的 Systemd 版本。Systemd 版本过低可能存在稳定性风险,导致组件无法正常运行。

节点系统内核

诊断项检查内容修复建议参考文档
内核 SoftLockupError检查节点内核是否出现 SoftLockupError 错误。通常表示 CPU 被某个进程长时间占用而无法执行其他任务,这可能导致整个系统或者某些关键服务变得不可响应。因此,出现该问题时,需要迅速定位并解决问题,以防止系统出现更严重的问题或者影响其他任务的正常运行。提交工单 处理。
内核 RCUStallError检查节点内核是否出现 RCUStallError 错误。RCUStall 是 Linux 内核中用于同步的一种机制,如果出现 RCUStallError,意味着这个机制出现了问题,可能导致系统问题,例如:系统调用失败,进程死锁等,从而影响到整个系统的稳定性。提交工单 处理。
内核 Oops检查节点内核是否出现 Oops。内核 Oops 表示操作系统内核遇到了无法处理的条件,或者严重的系统错误。通常会导致系统功能失效或者系统完全崩溃。因此,它直接关系到系统的稳定性和可用性,应被视为最高优先级。提交工单 处理。
内核 Ext4FsError检查节点内核是否出现 Ext4FsError 错误。Ext4 是 Linux 系统中常用的文件系统,如果出现 Ext4FsError,通常意味着文件系统存在严重问题,l数据损坏,文件丢失等,这会影响到系统的正常运行。更严重的是,文件系统问题可能会导致数据丢失,这是非常严重的问题提交工单 处理。

虚拟节点诊断

诊断项检查内容修复建议参考文档

检测 VCI 相关 AccountQuota,Quota 不足时提前预警

检查当前账户下 VCI 剩余资源配额是否少于 10%。资源过少可能导致业务使用时配额不足。

  • 尝试清理资源,释放资源配额。
  • 配额中心提交申请或 提交工单 处理。

使用限制

检查 VCI 虚拟节点对应的元集群 Pod 的运行状态检查 VCI 虚拟节点对应元集群 Pod 的运行状态,如果元集群 Pod 异常,可能导致虚拟节点上的工作负载运行异常。提交工单 处理。
通过主动创建和删除 Pod,测试 VCI 虚拟节点创建、删除 POD 是否正常在 VCI 虚拟节点上,执行 创建工作负载 巡检案例,确认此虚拟节点上的工作负载是否能正常创建。提交工单 处理。
检查 VCI 虚拟节点上的 Pod 状态是否均正常检查 VCI 虚拟节点上是否存在未就绪的 Pod。请检查 VCI 虚拟节点上的 Pod 状态,及时确认 Pod 未就绪的原因并处理。