AI训练任务的运行过程中,当GPU节点发生故障时,会导致任务卡住甚至异常终止,影响任务的运行效率。ACS集群提供了对GPU-HPN节点的故障监控能力,当节点出现异常时,ACS会标记节点,并通过Kubernetes事件(Event)、状态(Condition)等方式上报。本文介绍GPU-HPN节点的故障监控项、数据获取方式以及修复流程。
节点故障处理流程
ACS会持续对GPU-HPN节点进行健康检查,当节点出现故障时,建议您参考以下流程,配合ACS的自愈机制,完成对故障节点的修复。
ACS会通过事件(Event)、Node状态(Condition)上报故障原因,并在节点上增加污点(Taint),避免后续Pod调度到该故障节点。
清空故障节点
收到故障通知后,建议您及时驱逐故障节点上的Pod。
修复故障节点
故障节点被清空后,ACS将进行自动修复。
节点自愈恢复
ACS完成节点修复后,Node中的相关污点、状态会被自动恢复为正常状态,新创建的Pod可以正常使用。
故障通知
对于故障的GPU-HPN节点,ACS将在Node以及对应的Pod中,以Condition和Event等形式提供故障信息,具体如下。
Node
在Node的Label上标记节点异常,用于筛选查看。
metadata: labels: alibabacloud.com/node-anomaly: "true"
在Node上增加名称为
alibabacloud.com/node-anomaly
的污点,新提交的Pod默认不会调度到该节点。spec: taints: - effect: NoSchedule key: alibabacloud.com/node-anomaly timeAdded: "2024-10-16T06:09:27Z"
在Node的
conditions
(NodeAnomaly类型)中记录详细的故障信息。status: conditions: - lastHeartbeatTime: "2024-10-16T06:09:31Z" lastTransitionTime: "2024-10-16T06:09:31Z" message: The node has encountered an anomaly. reason: NodeBroken status: "True" type: NodeAnomaly
conditions
中各字段的说明如下:字段
说明
更新时机
type
NodeAnomaly,表示节点异常。
固定值,Node生命周期内不会变化。
status
当前是否有故障。
True
:有故障。False
:无故障。
节点故障状态发生变化时更新。
reason
故障类型。包括以下两种:
NodeBroken
:GPU-HPN整机故障。GPUCardBroken
:GPU卡级别的故障。
节点故障状态发生变化时更新。
message
记录了故障的详细信息。
节点故障状态发生变化时更新。
lastTransitionTime
故障状态发生变化的时间点。
节点故障状态发生变化时更新。
lastHeartbeatTime
定时更新的心跳时间。
节点故障状态发生变化时,或者距上次更新超过5分钟时更新。
在Node的
conditions
(FaultHealing类型)中记录详细的自愈修复情况。当节点自愈进度发生变化时会更新。status: conditions: - lastHeartbeatTime: "2025-03-24T11:14:48Z" lastTransitionTime: "2025-03-24T11:14:48Z" message: node fault healing success reason: Success status: "False" type: FaultHealing
conditions
中各字段的说明如下:字段
说明
type
FaultHealing,表示节点自愈中。
status
当前是否处于节点自愈中。
True
:正常自愈中。False
:已完成自愈。
reason
节点自愈状态。
Success、Finished:自愈完成。
InProgress:正在自愈中。
Failed:自愈失败。
message
记录了自愈进度的详细信息。
lastTransitionTime
自愈进度发生变化时会更新。
lastHeartbeatTime
自愈进度发生变化时会更新。
Pod Event
已经调度到故障节点的Pod会收到Warning事件。
建议您在收到故障信息后,将故障节点的Pod尽快驱逐,ACS将在所有Pod驱逐完成后,自动开始节点修复自愈。
reason: NodeBroken
type: Warning
message: 'The pod is proposed to be evicted at 2024-10-16 07:21:54 +0000 UTC, reason: xxx'
Event中各字段的说明如下:
字段 | 说明 |
| 固定值,为Warning。 |
| 故障类型。包括以下两种:
|
| 记录了自愈进度的详细信息。 |