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可以正常使用。
故障通知
建議您搭配kube-eventer配置警示條件以便及時處理,詳見kube-eventer。
對於故障的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: NodeAnomalyconditions中各欄位的說明如下:欄位
說明
更新時機
typeNodeAnomaly,表示節點異常。
固定值,Node生命週期內不會變化。
status當前是否有故障。
True:有故障。False:無故障。
節點故障狀態發生變化時更新。
reason故障類型。包括以下兩種:
NodeBroken:GPU-HPN整機故障。GPUCardBroken:GPU卡層級的故障。NodeMaintenance:GPU-HPN節點系統升級與營運。
節點故障狀態發生變化時更新。
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: FaultHealingconditions中各欄位的說明如下:欄位
說明
typeFaultHealing,表示節點自愈中。
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。 |
| 故障類型。包括以下兩種:
|
| 記錄了自愈進度的詳細資料。 |