ACK叢集針對GPU節點的壞卡情境,提供了多維度監控、診斷、警示與恢複機制。本文將介紹GPU節點故障的具體排查步驟及恢複方案。
背景資訊
日常監測與警示配置:您可以根據實際需求,對GPU相關的Metrics(ACK GPU監控2.0)和Events(ACK Node Problem Detector)進行警示配置。當GPU發生故障時,系統將及時觸發警示通知,從而加快問題響應速度。
CIS智能診斷與分析:在GPU出現故障時,僅依賴警示事件可能不足以全面掌握GPU節點的狀態和具體問題。此時,可以通過容器智能營運(CIS)對受影響的GPU節點或GPU Pod應用進行全面診斷。擷取詳細診斷報告後,您可以根據報告中的故障細節確定故障類型,並採取相應的解決措施。
故障隔離與修複:對於需要隔離處理的特定故障,ACK提供了節點層級和GPU卡層級的隔離功能。在完成損毀修復後,可解除隔離,恢複正常運行。
步驟一:日常監測與警示配置
利用NPD組件可以實現對GPU卡做定期巡檢,監測GPU卡是否異常,並通過設定連絡人來接收相關警示通知。
登入Container Service管理主控台,在左側導覽列選擇叢集。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇。
在組件管理頁面,搜尋ack-node-problem-detector組件並進行安裝。
說明若您之前已安裝該組件,請確保組件版本不低於1.2.20。更多詳細資料,請參見ack-node-problem-detector。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇。
在警示配置頁面,單擊進入連絡人管理頁簽,單擊建立,根據控制台指引完成連絡人資訊配置。
進入警示規則管理頁簽,找到叢集GPU監控警示規則集,單擊右側對應啟動狀態,然後單擊編輯通知對象選擇相應的通知對象。
步驟二:CIS智能診斷與分析
當叢集管理員通過手機簡訊、郵箱或DingTalk聊天機器人等方式獲知叢集中的GPU節點出現故障時,可以登入Container Service控制台,使用CIS智能診斷工具對有問題的GPU節點進行進一步故障定位和分析。
登入Container Service管理主控台,在左側導覽列選擇叢集。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇。
在故障診斷頁面,單擊節點診斷,然後在節點診斷頁面的左上方,單擊診斷。
在選擇節點面板,選擇對應節點名稱,仔細閱讀注意事項後選中我已知曉並同意,單擊發起診斷。
診斷完成後,會顯示各個診斷項的結果。關於檢查項詳細資料,請參見節點診斷。
如果節點上的GPU出現了
XID Error,那麼在診斷結果中的GPUXIDErrors中會出現{"GPU-326dc0ce-XXXX-77b6-XXXX-9a2eeXXXX":["43"]}錯誤,說明在GPU UUID為GPU-xxx的GPU裝置上出現了Number為43的XID。更多診斷結果說明,請參見NPD中GPU壞卡事件。
步驟三:隔離節點上的GPU裝置
手動隔離
當發現了GPU上的故障之後,需要將這張GPU卡進行隔離,避免後續的GPU應用Pod被分配到這張GPU裝置上。詳細操作,請參見GPU Device-Plugin相關操作。
如果您需要隔離目標節點上index為1或UUID為GPU-xxx-xxx-xxx的GPU卡,需要在目標節點的 /etc/nvidia-device-plugin/ 目錄下編輯或建立 unhealthyDevices.json 檔案,並在其中寫入以下內容,任選一種即可。
// 按照 Index 寫入
{
"index": ["1"]
}
// 按照 UUID 寫入
{
"uuid": ["GPU-xxx-xxx-xxx"]
}儲存後即生效,後續在修複完成後將檔案中寫入的隔離的GPU Item去除即可恢複。
自動隔離
如果期望自動對節點的GPU卡進行隔離操作,請登入故障節點,並修改
/etc/kubernetes//manifests/nvidia-device-plugin.yml檔案,刪除以下環境變數。說明如果該環境變數不存在,則無需進行額外操作,自動隔離GPU功能已經啟用。
env: - name: DP_DISABLE_HEALTHCHECKS value: all刪除環境變數後,需執行以下命令,重啟Device Plugin。
mv /etc/kubernetes/manifests/nvidia-device-plugin.yml /etc/kubernetes/ # 等待幾秒,舊Pod被清理的過程。 mv /etc/kubernetes/nvidia-device-plugin.yml /etc/kubernetes/manifests/
NPD中GPU壞卡事件
事件原因 | 事件訊息 | 含義 | 處理建議 |
|
| 該GPU節點存在掉卡現象。 | 嘗試重啟節點,如果重啟節點後仍出現掉卡情況,則需提交工單聯絡阿里雲工程師。 |
|
| 該節點上的GPU存在XID錯誤,並上報相關XID資訊。 | 嘗試重啟節點,如果重啟節點後仍未恢複,則需提交工單聯絡阿里雲工程師。 |
|
| 檢查節點上執行 | 嘗試重啟節點,如果重啟節點後仍未恢複,則需提交工單聯絡阿里雲工程師。 |
|
| 檢查節點上是否存在 | 嘗試重啟節點,如果重啟節點後仍未恢複,則需提交工單聯絡阿里雲工程師。 |
|
| 檢查節點GPU卡的溫度狀況,如果超過89攝氏度則認為過熱,上報溫度高的卡的資訊。 | 該事件僅為警告事件,只作提示。 |