節點池開啟託管能力後,支援啟用節點自愈功能,即由ACK自動監控節點狀態,並在節點發生異常時自動執行自愈任務,以簡化節點營運工作。但由於故障的複雜性,自愈任務無法修複所有的故障情境,部分複雜故障可能仍需人工修複。
靈駿節點池的節點自愈,請參見開啟節點自愈。
自愈機制說明
節點自愈的完整運作過程可從以下維度理解:
執行流程:從故障發現到自愈完成的端到端流程概覽,包含每個步驟的觸發條件與執行細節。
觸發自愈的Node Condition:ACK支援自動修複的故障類型、風險等級、觸發閾值及對應的自愈行為。
自愈過程中的節點狀態:自愈任務執行過程中及完成後,節點的狀態流轉情況。
執行流程
一個完整的故障發現、故障通知與節點自愈流程如下。
| ACK通過NPD組件檢查節點的異常情況。節點運行狀態發生變化並持續一段時間後,ACK判定該節點存在故障。 |
| 發現故障後,ACK會產生Node Condition和Kubernetes Event。可通過事件中心警示配置接收通知。 |
| 檢測到GPU異常後,ACK對故障GPU卡進行隔離。 關於GPU卡故障檢測和自動隔離的詳細資料請參見GPU異常檢測與自動隔離。 |
| ACK會根據節點的運行狀態 檢測到系統與K8s組件異常,且異常期間超過閾值時間(即故障發生多長時間後會觸發節點自愈)時,ACK將自動執行自愈任務。一個完整的節點自愈流程如下。
|
自愈任務執行說明:如果叢集中存在多個節點池,各節點池的自愈任務將串列執行。
觸發自愈的Node Condition
Node Condition | 描述 | 風險等級 | 閾值時間 | 自愈行為 |
KubeletNotReady(KubeletHung) | kubelet意外停止工作,導致節點NotReady。 | 高 | 180s |
|
KubeletNotReady(PLEG) | PLEG健全狀態檢查失敗,導致節點NotReady。 | 中 | 180s |
|
KubeletNotReady(SandboxError) | PodSandbox not found,導致kubelet無法正常啟動。 | 高 | 180s |
|
RuntimeOffline | containerd或Docker停止工作,節點不可用。 | 高 | 90s |
|
NTPProblem | 時間同步服務(ntpd或chronyd)異常。 | 高 | 10s | 重啟ntpd或chronyd。 |
SystemdOffline | Systemd狀態異常,無法啟動、銷毀容器。 | 高 | 90s | 如果選擇僅開啟系統與節點群組件自愈(允許異常時重啟節點),則重啟ECS執行個體。 |
ReadonlyFilesystem | 節點檔案系統變為唯讀。 | 高 | 90s | 如果選擇僅開啟系統與節點群組件自愈(允許異常時重啟節點),則重啟ECS執行個體。 |
自愈過程中的節點狀態
自愈任務執行中,節點狀態為修複中。
自愈任務完成後,故障狀態解除,節點恢複正常狀態。
自愈任務完成後,故障狀態依然存在,節點會被置為恢複失敗狀態。
節點處於自愈失敗狀態時,不會再觸發自愈操作。相應的故障解除後,該節點才能再次進行自愈操作。
使用說明
本功能需搭配事件中心使用,以接收節點池的警示事件,並安裝ack-node-problem-detector(NPD),以檢測節點的異常情況。詳情請參見事件監控。
僅支援在ACK託管叢集中使用,支援開啟了託管配置的節點池。
以下處於灰階發布中的功能,灰階進度可能不同。如需使用,請提交工單一併申請。
節點執行個體異常的自愈:白名單功能。
警示規則集:開啟節點自愈後,推薦開啟警示管理功能,啟用叢集節點自愈警示規則集和叢集GPU監控警示規則集,在異常情況發生時自動接收警示通知。相應規則集處於灰階發布中。
規則集啟用操作,請參見Container Service警示管理。
NPD版本:節點執行個體異常的自愈依賴NPD組件為1.2.26及以上。1.2.26版本處於灰階中。
啟用節點自愈
支援在新增或存量節點池中通過託管配置開啟節點自愈功能並定義其行為。
建立節點池時開啟
存量節點池中開啟
查看節點自愈事件
常見問題
節點自愈失敗怎麼辦?
由於故障的複雜性,自愈任務無法修複所有的故障情境。當節點自愈任務執行失敗,或者自愈執行完畢後故障並未解除,ACK會將節點標記為自愈失敗狀態。
如果某個節點自愈失敗,在損毀修復前,該節點池不會再觸發自愈操作。可提交工單聯絡支援人員。
相關文檔
推薦啟用NPD,基於事件中心監控叢集事件,請參見事件監控。
關於GPU故障檢測的更多資訊,請參見GPU異常檢測與自動隔離、自助診斷GPU節點問題。
如需通過移除故障節點並重新添加的方式解決節點問題,請在Container Service管理主控台執行標準化流程,避免出現預期外行為,詳見移除節點、添加已有節點。

> 開啟託管(節點池)或託管配置(託管節點池),選擇託管配置模式為託管節點池,按照頁面提示開啟節點自愈功能。