You need to enable JavaScript to run this app.
文档中心
容器服务

容器服务

复制全文
下载 pdf
检查自愈
配置节点检查自愈
复制全文
下载 pdf
配置节点检查自愈
节点作为集群的基础设施,其工作状态对用户来说至关重要。容器服务团队自研节点检查和自愈功能,面向节点进行常见故障检测和故障自愈。本文为您介绍如何配置节点检查自愈功能。​
说明​
本功能仅对企业用户开放,如果您无法查看对应的控制台页面,请确认已完成账号的企业认证。​
前提条件​
  • (可选)如需使用自定义故障功能,请首先配置自定义故障检查项。详情请参见 自定义节点检查项。​
操作步骤​
步骤一:配置检查自愈规则​
  1. 单击左侧导航栏中的 集群。​
  1. 在集群列表页面,单击目标集群,进入集群管理页面。​
  1. 在集群管理页面的左侧导航栏中选择 检查自愈,单击 创建检查和自愈规则,创建检查自愈规则。​
说明​
配置检查和自愈规则时,如果同时勾选了多个检查项,当不同检查项的自愈规则不同时,系统会自动将其拆分成多个规则。​
  • ​​​
  • ​
    配置项​
    说明​
    规则名称​
    配置检查自愈规则的名称。同一个集群下,规则名称必须唯一。​
    检测自愈规则​
    ​
    故障类型​
    选择需要进行检测的故障类型,支持:GPU 故障、XID 异常、节点故障、系统与组件故障 和 自定义故障。​
    检查项​
    在指定故障类型下,选择需要进行检测的项目。不同类型的故障支持不同的检查项。详情请参见 检查自愈概述。​
    事件监听​
    当 故障类型 为 节点故障,且 检查项 为 ECS 故障 时,支持选择监听的具体事件。包括:​
    • 全部事件:监听所有事件。​
    • 指定事件:监听指定的事件,允许多选。支持事件详情,请参见 检查自愈概述。​
    故障处理方式​
    选择故障自动处理方式,包括:​
    • 提示异常:仅包含 提示异常 流程。​
    • 封锁节点:包含 提示异常、(可选)流程干预 和 封锁节点 流程。​
    • 排干节点:包含 提示异常、(可选)流程干预、封锁节点 和 排干节点 流程。​
    • 自动修复:包含 提示异常、(可选)流程干预、封锁节点、排干节点、自动恢复 和 (可选)解除封锁 流程。​
    说明​
    当 故障类型 选择 自定义故障 时,仅支持 自动修复 故障处理方式。​
    ​
  1. 配置故障处理流程。​
  • 提示异常:节点发生故障时,系统会将故障信息转化为监控指标,您可以使用云原生观测功能获取指标信息,并在托管 Prometheus 产品中查看对应的指标。​
  • 流程干预:开启该功能后,系统会在前置步骤完成后,为节点添加指定的标签,用于标识发生故障的节点。您可以基于标签筛选指定的节点,进行人工干预和故障处理。​
  • ​alt​​
  • 封锁节点:节点发生故障时,为节点添加 NoSchedule 污点,禁止调度新的 Pod 到该节点。​
  • 排干节点:节点发生故障时,为节点添加 NoExecute 污点,并驱逐节点上的所有 Pod。​
  • ​
    配置项​
    说明​
    禁止调度​
    配置从节点被封锁到开始进行 Pod 驱逐的时间。支持多种时间段选择,包括:立刻、15 分钟、30 分钟、1 小时、2 小时、3 小时、6 小时、12 小时、24 小时、36 小时、2 天、3 天、4 天、5 天、6 天、7 天等。​
    注意​
    节点排干前会检查节点是否运行了以下工作负载,您需要确保节点上不存在这些工作负载,否则将不会进行节点排干的操作:​
    • ingress-controller Pod。​
    • 强绑定节点的工作负载。​
    • 单副本的工作负载。​
    • Static Pod。​
    节点排干不能完全保证终止/驱离节点上的工作负载,如果有工作负载无法被驱离,在不进行人工干预的前提下,将不会执行下一步自愈操作直至强制重启(若配置强制重启时间)。​
    ​
  • 自动恢复:当开启该功能时,系统在节点排干后会尝试修复节点故障,完成自愈。​
  • ​
    配置项​
    说明​
    必要时重启 ECS​
    不同故障的自动修复操作不同。勾选该配置时,除自动修复操作外,会自动重启节点。​
    配置从节点排干到重启节点的等待时间,包括:立即、30 分钟、1 小时、2 小时、3 小时、6 小时等。​
    ​
  • 解除封锁:节点重启并修复故障后,是否自动解除封锁。当开启该功能时,节点重启后系统会再次进行健康检查,当所有检测项均无异常时,将解除节点封锁。​
注意​
系统仅能确保已有检测项无异常,若发生超出节点检测项范围的故障,仍有可能导致训练或推理任务运行异常,如果自愈流程完成后,仍然存在问题,请 提交工单 获取技术支持。​
  1. (可选)单击 添加检测自愈规则,允许添加多个规则。​
  1. 配置完成后,仔细阅读 注意事项,并勾选 我已知晓并同意,单击 确定,完成配置。​
步骤二:节点池绑定检查自愈规则​
您可以在创建节点池时绑定检查自愈规则,也可以为存量节点池绑定检查自愈规则。本文以创建节点池时绑定检查自愈规则为例。​
说明​
当前仅托管节点池支持绑定检查自愈规则,如果您的节点池为普通节点池,可以将其开启托管后,再绑定检查自愈规则。​
  1. 在集群管理页面的左侧导航栏,选择 节点管理 > 节点池,单击 创建节点池,创建新的节点池。 ​
  1. 在节点池配置详情页面中,开启 检查和自愈 功能,并绑定检查自愈规则。​
  • ​​​
  • ​
    配置项​
    说明​
    检查和自愈​
    配置是否开启节点检查自愈功能。​
    • 开启:(默认)通过配置节点自愈规则,系统会自动检查节点状态,当节点故障时及时进行处理和自愈。​
    • 关闭:不开启节点检查自愈功能。​
    检查和自愈规则​
    配置检查自愈规则:​
    • 推荐规则:使用系统默认的推荐规则,详情请参见 推荐规则。​
    • 自定义规则:使用用户的自定义规则,请在下拉菜单中选择已配置的检查自愈规则。​
    ​
说明​
节点池的其他配置详情,请参见 创建节点池。​
  1. 单击 确定,完成绑定。​
步骤三:(可选)开启云原生观测​
如果您需要使用节点故障指标获取节点的状态,需要开启云原生观测功能,操作步骤如下:​
  1. 为集群绑定托管 Prometheus 工作区,安装 Prometheus-agent 组件,并开启云原生观测。详情请参见 开启观测。​
  1. 开启检查自愈观测,详情请参见 检查自愈观测。​
结果验证​
查看检查自愈规则​
  1. 在集群管理页面的左侧导航栏中,单击 检查自愈。​
  1. 在自愈规则列表中,单击检查自愈规则名称,即可查看规则的详情。​
  • ​alt​​
查看自愈任务详情​
当节点发生故障,并完成自愈后,您可以在节点详情页面中查看自愈任务列表和自愈详情。​
  1. 在集群管理页面的左侧导航栏,选择 节点。​
  1. 单击目标节点名称,进入节点详情页面。​
  1. 选择 故障自愈 页签,即可查看当前节点的故障自愈任务列表。​
  • ​alt​​
  1. 单击自愈任务名称,支持查看当前节点的自愈详情。​
  • ​alt​​
查看检查自愈观测​
您可以在云原生观测大盘中查看检查自愈观测的监控信息,并配置相应的告警。详情请参见 检查自愈观测。​
查看告警规则详情​
配置检查自愈告警后,可以在 VMP 控制台查看对应的告警规则详情。​
  1. 登录 VMP 服务控制台。​
  1. 单击左侧导航栏的 告警中心 > 告警规则。在 告警规则组 页签中,查看配置的检查自愈告警规则组。​
  • ​alt​​
  1. 单击告警规则组名称,进入告警规则组详情页面,选择 告警规则列表 页签,查看告警规则详情。​
  • ​alt​​
其他操作​
终止检查自愈流程​
检查自愈任务执行过程中,您可以随时手动终止自愈流程。​
注意​
自愈任务流程被终止后,当前进行的步骤将继续执行结束,后续的步骤将不再执行,您必须手动解决遗留的问题。在节点解除封锁前,将不会对该节点再次执行故障处理操作。​
  1. 在集群管理页面的左侧导航栏,选择 节点。​
  1. 单击目标节点名称,进入节点详情页面。​
  1. 选择 故障自愈 页签,并在故障自愈任务列表中选择目标自愈任务。​
  1. 单击自愈任务名称,进入自愈详情页。单击 终止故障处理,即可终止当前自愈任务。​
  • ​alt​​
手动清除异常 Condition​
完成 GPU XID 相关故障处理后,如果本次故障是由您自行处理(而非由 VKE 检查自愈功能自动修复),节点status.conditions中可能仍保留故障期间产生的异常 Condition(例如 GPUXidError),需要手动清理,以避免残留状态影响后续运维判断。​
注意​
  • 删除 Condition 前,请先确认目标条目确为故障处理后残留的异常 Condition,避免误删正常状态信息。​
  • kubectl patch 命令中的/status/conditions/<condition-index> 表示待删除 Condition 在列表中的下标,需根据实际查询结果替换。​
  • 建议在删除完成后重新检查节点状态,确认节点已恢复正常。​
  1. 查看节点当前的 Condition 列表,确认需要删除的异常 Condition 及其下标。其中,<node-name>为节点名称。​
  • ​
    kubectl get node <node-name> -o json | jq '.status.conditions'​
    ​
  • 预期结果如下,系统会返回节点的 Condition 列表。列表中每条 Condition 从 0 开始依次编号,编号即为该条目的位置下标。请根据返回结果找到目标异常 Condition(通常可通过type字段识别,如示例中的GPUXidError),并记录其顺序(即 Condition 下标,本例中为 2)。​
  • ​
    [​
    {​
    "lastHeartbeatTime": "2026-08-28T03:00:00Z",​
    "lastTransitionTime": "2026-08-01T08:00:00Z",​
    "message": "kubelet has sufficient memory available",​
    "reason": "KubeletHasSufficientMemory",​
    "status": "False",​
    "type": "MemoryPressure"​
    },​
    {​
    "lastHeartbeatTime": "2026-08-28T03:00:00Z",​
    "lastTransitionTime": "2026-08-01T08:00:00Z",​
    "message": "kubelet is posting ready status",​
    "reason": "KubeletReady",​
    "status": "True",​
    "type": "Ready"​
    },​
    {​
    "lastHeartbeatTime": "2026-08-28T02:58:00Z",​
    "lastTransitionTime": "2026-08-28T02:58:00Z",​
    "message": "xid 79 detected on GPU 0",​
    "reason": "GPUXidError",​
    "status": "True",​
    "type": "GPUXidError"​
    }​
    ...​
    ]​
    ​
  1. 执行以下命令,删除目标异常 Condition。其中<node-name>为节点名称,<condition-index>为异常 Condition 的下标,本例中为 2。​
  • ​
    kubectl patch node <node-name> --subresource=status --type=json \​
    -p '[{"op":"remove","path":"/status/conditions/<condition-index>"}]'​
    ​
    ​
  • 实际命令示例如下:​
  • ​
    kubectl patch node 192.168.10.10 --subresource=status --type=json \​
    -p '[{"op":"remove","path":"/status/conditions/2"}]'​
    ​
  1. 再次查看节点 Condition 列表,确认目标异常 Condition 已删除。​
  • ​
    kubectl get node <node-name> -o json | jq '.status.conditions'​
    ​
​
​
​
​
最近更新时间:2026.08.31 15:13:06
这个页面对您有帮助吗?
有用
有用
无用
无用