全部產品
Search
文件中心

Container Service for Kubernetes:自訂自愈流程

更新時間:Sep 11, 2026

ACK 節點池支援自訂故障自愈流程,在 ECS、靈駿(含超節點)上自動探索 GPU 故障與節點底層異常,按您定義的步驟修複,修複進度通過 Kubernetes Event 透出。

適用範圍

  • 節點池類型:ECS 節點池、靈駿節點池(含超節點)。

  • 故障類型:節點故障、GPU 故障、系統與組件故障。

  • 組件依賴:GPU 故障、系統與組件故障的檢測依賴 ack-node-problem-detector(NPD)組件版本 1.2.36 及以上。節點自愈流程由 node-lifecycle-controller 組件驅動,建議升級至最新版本以擷取新增的故障檢測項與修複能力,升級方式請參見升級自愈組件。

  • 地區限制:暫不支援專屬雲地區。

自愈機制說明

節點自愈持續監測節點上報的故障訊號(CloudMonitor底層事件、底層系統事件、NPD 檢測的 GPU 故障和系統與組件故障等),命中故障後統一轉換為 Kubernetes Event 和 Node Condition,再按自愈規則調用對應修複能力完成修複;修複進度通過 Kubernetes Event 透出。

自愈流程

  1. 故障發現:ACK 持續監測節點的底層事件與 NPD 上報的異常,命中故障後在節點上寫入對應的 Node Condition,並產生自愈計劃。

  2. 故障處理:按自愈規則依次執行修複流程。各步驟可按需啟用或跳過,啟用的步驟均可開啟人工介入,開啟後 ACK 在獲得授權確認後再執行。

    1. 節點隔離:將故障節點標記為不可調度,阻止新工作負載調度到該節點。

    2. 節點排水:驅逐節點上的工作負載。

    3. 自動修複:執行該故障類型對應的修複動作(如維修、重啟等)。

    4. 解除節點隔離:修複後將節點恢複為可調度。

故障按優先順序處理:高優先順序的維修類故障優先修複,低優先順序的重啟類故障延後執行,直至高優先順序故障處理完畢。

注意事項

  • 如果此前在叢集中安裝其他具有節點自愈功能的軟體,請詳細評估後再使用本能力,避免多套自愈邏輯衝突。

  • 自訂損毀修復流程中,任意步驟開啟人工介入後,請及時完成授權,否則 ACK 將暫停執行當前及後續流程,節點可能停留在受損狀態。

  • 靈駿節點發生節點類故障後,在修複階段,ACK 將調用靈駿節點審批營運操作進行修複。請密切關注靈駿節點自身的健全狀態及其在 ACK 叢集中的節點狀態,避免業務持續受損。

  • 若故障自愈流程執行失敗,請儘快登入叢集手動修複,並將節點恢複為可調度狀態。如需協助,請聯絡售後支援。

  • 開啟節點自愈後,請務必開啟警示管理功能,並啟用叢集GPU監控警示規則集、叢集節點池營運事件警示規則集和叢集節點自愈警示規則集。建議配置單獨的警示群或連絡人,以便在異常發生時及時接收警示通知。詳見配置警示。

自愈規則配置

使用流程

節點自愈開通後,通常包含以下配置與使用步驟:

  1. 配置自愈規則:在建立節點池時,或在存量節點池的託管配置中,建立自愈規則並選擇故障類型與修複流程,詳見自愈配置。

  2. 配置限流熔斷(可選):在託管配置中設定最大並行修複節點數和自愈熔斷閾值,避免大規模故障時自愈操作衝擊叢集,詳見自愈限流與熔斷保護。

  3. 開啟自動故障診斷(可選,僅支援ECS 節點池):在託管配置中勾選自動故障診斷,增強 GPU 硬體故障的深層診斷,詳見開啟自動故障診斷(ECS 深層診斷)。

  4. 開啟警示:開啟警示管理並啟用節點自愈相關的警示規則集,詳見配置警示。

  5. 觀察與處理:通過 Kubernetes Event 查看自愈進度(詳見節點自愈流程相關 Kubernetes 事件說明);需人工授權時及時授權,自愈失敗時手動介入。

自愈配置

ACK 支援在建立節點池或修改存量節點池時開啟節點自愈並定義自愈規則;啟用後,也可在自愈規則管理頁面集中新增與管理規則。

開啟入口

  • 方式一:建立節點池時配置。建立節點池時,在託管配置地區選取項目自訂託管,按頁面提示啟用節點自愈並完成自愈規則的建立。完整配置項說明,請參見建立和管理節點池。

  • 方式二:存量節點池中配置。在節點池列表中,單擊目標節點池操作列對應的image > 開啟託管或image > 託管配置,按頁面提示完成自愈規則的建立與節點自愈的啟用。

配置自愈規則

  1. 進入規則配置入口:通過節點池建立或配置介面,或在自愈規則頁面單擊建立自愈規則,進入建立自愈規則面板。

  2. 配置子規則:

    1. 選擇故障類型與修複行為:根據故障類型(節點故障/GPU 故障/系統與組件故障)選擇對應的修複動作(參見上文故障說明)。

    2. 配置修複流程:以下步驟均支援開啟人工介入,開啟後 ACK 在獲得授權後才執行,參考控制台人工介入說明。

      image

      配置項

      說明

      節點隔離

      將故障節點標記為不可調度(spec.unschedulable=true),阻止新負載調度。

      節點排水

      需先開啟節點隔離。逐個驅逐節點上的工作負載,預設逾時 300 秒(可調整),遵循 PDB;DaemonSet、OpenKruise Advanced DaemonSet 管理的 Pod 及帶 alibabacloud.com/evict-pod=skip 標籤的 Pod 不會被驅逐;逾時後自動進入後續流程。

      自動修複

      執行故障類型對應的修複動作(詳見上文故障說明)。

      解除節點隔離

      需先開啟節點隔離。將節點恢複為可調度(spec.unschedulable=false)。若節點在進入修複流程前已不可調度,則本步驟不會將其恢複為可調度。

自愈限流與熔斷保護

在託管配置頁面選擇自訂託管並開啟節點自愈後,自愈限流和熔斷策略按預設策略生效。如需更改,請單擊修改自愈限流和熔斷策略。

預設策略

預設情況下,當同時出現多個節點異常時,ACK 將逐個修複節點池內所有異常節點,即每次僅修複一個節點,且不觸發熔斷。

修改預設策略

如預設策略不滿足需求,單擊修改自愈限流和熔斷策略,配置以下參數:

配置項

說明

最大並行修複節點數

節點池中存在大量異常節點時,最多允許同時修複的節點數。

自愈熔斷條件

當發生故障的節點數大於該閾值時,自愈進入熔斷狀態,並停止新增自愈修複動作。

說明
  • 請確保自愈熔斷閾值大於等於最大並行修複節點數,避免 ACK 在故障節點數達到最大並行修複節點數前觸發自愈熔斷,停止自愈修複操作。

  • 當節點池中發生受超節點影響的維修或重啟類型故障時,ACK 需對該超節點下所有子節點同時進行修複。如果配置的最大並行修複節點數小於單個超節點中子節點數量,該類故障將無法修複,建議合理設定最大並行修複節點數。

開啟自動故障診斷(ECS 深層診斷)

開啟自動故障診斷後,ACK 通過節點側監控探針 ack-node-problem-detector(NPD)發現潛在異常,並主動發起 GPU 硬體裝置的深層診斷。確認存在異常時,ACK 會通過 Kubernetes Event、Node Condition 和 ECS 系統事件警示,您可結合節點自愈規則進行自動響應。

僅針對 ECS 節點池。
開啟方式
新節點池

建立節點池時,在託管配置地區選取項目自訂託管,並勾選自動故障診斷。

存量節點池

已開啟託管的節點池:單擊目標節點池對應操作列下的image > 託管配置,在託管配置視窗中勾選自動故障診斷。

未開啟託管的節點池:單擊目標節點池對應操作列下的image > 開啟託管,在開啟託管視窗中選擇自訂託管,並勾選自動故障診斷。

以下 NPD 錯誤項會觸發 ECS 深層診斷:

錯誤項

描述

NvidiaXID48Error

Double Bit ECC Error(DBE)。GPU 檢測到不可糾正的錯誤時記錄此事件。

NvidiaXID62Error

GPU 內部微控制器停機。

NvidiaXID74Error

NVLink Error(NVLink 鏈路錯誤)。

NvidiaXID79Error

GPU has fallen off the bus(GPU 從匯流排掉線)。

NvidiaXID109Error

Context Switch Timeout Error(環境切換逾時錯誤)。

NvidiaXID119Error

等待 GSP 核心響應 RPC 訊息時發生逾時。

NvidiaXID120Error

GPU 的 GSP 核心上啟動並執行代碼出錯。

NvidiaXID145Error

NVLink: RLW Error(NVLink RLW 錯誤)。

NvidiaXID154Error

GPU Recovery Action Changed(GPU 恢複動作已變更)。

NvidiaPowerCableErr

裝置的外部電源線串連不當。

配置警示

開啟節點自愈後,請務必開啟警示管理功能,並啟用叢集GPU監控警示規則集、叢集節點池營運事件警示規則集和叢集節點自愈警示規則集。建議配置單獨的警示群或連絡人,以便在異常發生時及時接收警示通知。關於規則集啟用操作,請參見Container Service警示管理。

警示項說明

上述規則集包含以下與節點自愈相關的警示項:

警示項

說明

底層事件轉換警示

節點底層事件(靈駿 CMS 事件、ECS 系統事件)轉換為 Node Condition 和 Kubernetes Event 時觸發,便於及時感知節點硬體與系統異常。完整映射關係,請參見底層事件與 Node Condition 轉換。

GPU 監控警示

NPD 檢測到 GPU 裝置異常時觸發。具體故障項與修複行為,請參見GPU 故障。

自愈整體進度警示

上報節點自愈流程的整體進度,包括隔離、排水、修複、解除隔離各階段的執行結果。各階段對應的事件,請參見節點自愈流程相關 Kubernetes 事件說明。

叢集節點池自愈匯總

每天當地時間 10:00 和 18:00 匯總叢集內各節點池的自愈情況,重點提示等待審批的節點和處於不可調度狀態的節點,並提供可直接執行的查詢命令,便於您及時處理。

升級自愈組件

節點自愈流程由叢集組件 node-lifecycle-controller 驅動。新增的故障類型、修複動作和警示項依賴較新的組件版本,建議將該組件升級至最新版本。

  1. 登入Container Service管理主控台,在左側導覽列選擇叢集列表,然後單擊目的地組群名稱。

  2. 在叢集管理頁左側導覽列,選擇組件管理。

  3. 搜尋並找到 node-lifecycle-controller 組件。若組件存在可用的新版本,單擊升級,並在提示對話方塊中確認。

組件的更多操作,請參見組件。

故障說明

下表按故障類型說明觸發自愈的 Node Condition、修複行為與故障恢複的判斷標準。

節點故障

適用於 ECS、靈駿(含超節點)節點的底層硬體異常與需重啟類故障。

靈駿

故障名稱

底層事件名稱

Kubernetes Node Condition

故障說明

修複行為

故障恢複判斷標準

因靈駿節點底層硬體異常需維修修複

Node.HardwareFault.HOST:Inquiring

resourceType: Node
  • Type: Node.HardwareFault.HOST

  • Reason: Node.HardwareFault.HOST:Inquiring

  • Status: True

靈駿節點發生硬體故障,需進行維修。維修可能會導致節點本機資料丟失。

維修靈駿節點

重要

靈駿節點維修可能會導致本地碟資料丟失,請提前備份資料。若您將容器運行時及 Kubelet 目錄掛載至本地碟,請在維修結束後將該節點從 ACK 叢集節點列表中移除再重新加入。

同時滿足以下條件:

  1. Kubernetes Node 狀態為 Ready。

  2. 觸發故障的 Node Condition 已消除,或其 Reason 滿足以下之一:

    • Node.HardwareFault.HOST:Executed

    • Node.HardwareFault.HOST:Terminated

因靈駿節點底層異常需重啟修複

Node.FaultNeedReboot.HOST:Inquiring

resourceType: Node
  • Type: Node.FaultNeedReboot.HOST

  • Reason: Node.FaultNeedReboot.HOST:Inquiring

  • Status: True

靈駿節點發生故障,建議儘快重啟節點以嘗試修複。

重啟節點

同時滿足以下條件:

  1. Kubernetes Node 狀態為 Ready。

  2. 觸發故障的 Node Condition 已消除,或其 Reason 滿足以下之一:

    • Node.FaultNeedReboot.HOST:Executed

    • Node.FaultNeedReboot.HOST:Terminated

因靈駿節點底層硬體異常需維修修複(受超節點影響)

Node.HardwareFault.HOST:Inquiring

resourceType: HyperNode
  • Type: HyperNode.Node.HardwareFault.HOST

  • Reason: HyperNode.Node.HardwareFault.HOST:Inquiring

  • Status: True

靈駿超節點發生硬體故障,需進行維修,建議儘快授權修複超節點。ACK 自愈處理過程中,會針對超節點中每個子節點發起自愈流程,當所有子節點自愈流程進入修複步驟時,ACK 會統一發起對超節點的授權修複操作。

維修靈駿節點

重要

靈駿節點維修可能會導致本地碟資料丟失,請提前備份資料。若您將容器運行時及 Kubelet 目錄掛載至本地碟,請在維修結束後將該節點從 ACK 叢集節點列表中移除再重新加入。

同時滿足以下條件:

  1. Kubernetes Node 狀態為 Ready。

  2. 觸發故障的 Node Condition 已消除,或其 Reason 滿足以下之一:

    • HyperNode.Node.HardwareFault.HOST:Executed

    • HyperNode.Node.HardwareFault.HOST:Terminated

因靈駿節點底層異常需重啟修複(受超節點影響)

Node.FaultNeedReboot.HOST:Inquiring

resourceType: HyperNode
  • Type: HyperNode.Node.FaultNeedReboot.HOST

  • Reason: HyperNode.Node.FaultNeedReboot.HOST:Inquiring

  • Status: True

靈駿超節點發生故障,建議儘快授權修複超節點。ACK 自愈處理過程中,會針對超節點中每個子節點發起自愈流程,當所有子節點自愈流程進入修複步驟時,ACK 會統一發起對超節點的授權修複操作。

重啟節點

同時滿足以下條件:

  1. Kubernetes Node 狀態為 Ready。

  2. 觸發故障的 Node Condition 已消除,或其 Reason 滿足以下之一:

    • HyperNode.Node.FaultNeedReboot.HOST:Executed

    • HyperNode.Node.FaultNeedReboot.HOST:Terminated

ECS

故障名稱

底層事件名稱

Kubernetes Node Condition

故障說明

修複行為

故障恢複的判斷標準

因系統維護執行個體需重新部署(計劃中)

SystemMaintenance.Redeploy:Scheduled

  • Type: SystemMaintenance.Redeploy

  • Reason: SystemMaintenance.Redeploy:Scheduled

  • Status: True

阿里雲檢測到 ECS 執行個體的底層宿主機存在潛在軟硬體故障風險,可能導致執行個體重新部署(尚未成為故障)。可立即重新部署以規避風險,否則 ECS 將在 24~48 小時後觸發重新部署。

詳情請參見ECS系統事件概述 。

重新部署節點

重要

重新部署節點過程中,本地碟資料可能丟失,請提前備份資料。

同時滿足以下條件:

  1. Kubernetes Node 狀態為 Ready。

  2. 觸發故障的 Node Condition 已消除,或其 Reason 滿足以下之一:

    • SystemMaintenance.Redeploy:Executed

    • SystemMaintenance.Redeploy:Avoided

    • SystemMaintenance.Redeploy:Canceled

因系統維護執行個體需重新部署(問詢中)

SystemMaintenance.Redeploy:Inquiring

  • Type: SystemMaintenance.Redeploy

  • Reason: SystemMaintenance.Redeploy:Inquiring

  • Status: True

阿里雲檢測到 ECS 執行個體的底層宿主機存在潛在軟硬體故障風險,可能導致執行個體重新部署(尚未成為故障)。可立即重新部署以規避風險。

詳情請參見ECS系統事件概述。

重新部署節點

重要

重新部署節點過程中,本地碟資料可能丟失,請提前備份資料。

同時滿足以下條件:

  1. Kubernetes Node 狀態為 Ready。

  2. 觸發故障的 Node Condition 已消除,或其 Reason 滿足以下之一:

    • SystemMaintenance.Redeploy:Executed

    • SystemMaintenance.Redeploy:Avoided

    • SystemMaintenance.Redeploy:Canceled

因系統維護執行個體需重啟(計劃中)

SystemMaintenance.Reboot:Scheduled

  • Type: SystemMaintenance.Reboot

  • Reason: SystemMaintenance.Reboot:Scheduled

  • Status: True

阿里雲檢測到 ECS 執行個體的底層宿主機存在潛在軟硬體故障風險,可能導致執行個體重啟(尚未成為故障)。可立即重啟以規避風險,否則 ECS 將在 24~48 小時後觸發重啟。

詳情請參見ECS系統事件概述。

重啟節點

同時滿足以下條件:

  1. Kubernetes Node 狀態為 Ready。

  2. 觸發故障的 Node Condition 已消除,或其 Reason 滿足以下之一:

    • SystemMaintenance.Reboot:Executed

    • SystemMaintenance.Reboot:Avoided

    • SystemMaintenance.Reboot:Canceled

因系統維護執行個體需重啟(問詢中)

SystemMaintenance.Reboot:Inquiring

  • Type: SystemMaintenance.Reboot

  • Reason: SystemMaintenance.Reboot:Inquiring

  • Status: True

阿里雲檢測到 ECS 執行個體的底層宿主機存在潛在軟硬體故障風險,可能導致執行個體重啟(尚未成為故障)。可立即重啟以規避風險。

詳情請參見ECS系統事件概述。

重啟節點

同時滿足以下條件:

  1. Kubernetes Node 狀態為 Ready。

  2. 觸發故障的 Node Condition 已消除,或其 Reason 滿足以下之一:

    • SystemMaintenance.Reboot:Executed

    • SystemMaintenance.Reboot:Avoided

    • SystemMaintenance.Reboot:Canceled

完整的底層事件、Node Condition 與 Kubernetes Event 映射,請參見下文底層事件與 Node Condition 轉換。

GPU 故障

依賴 NPD 組件檢測。本類所有 GPU 故障的故障恢複判斷標準一致:節點狀態為 Ready,且觸發故障的 Node Condition 已消除。

靈駿

故障名稱

Kubernetes Node Condition

故障說明

修複行為

NvidiaXID48Error

  • Type: NvidiaXID48Error

  • Reason: NodeHasNvidiaXID48Error

Double Bit ECC Error (DBE)。當 GPU 檢測到不可糾正的錯誤時,會記錄此事件。

重啟節點

NvidiaXID62Error

  • Type: NvidiaXID62Error

  • Reason: NodeHasNvidiaXID62Error

GPU 內部微控制器停機。

重啟節點

NvidiaXID140Error

  • Type: NvidiaXID140Error

  • Reason: NodeHasNvidiaXID140Error

GPU 驅動在 GPU 記憶體中檢測到不可糾正的錯誤。

重啟節點

NvidiaXID95Error

  • Type: NvidiaXID95Error

  • Reason: NodeHasNvidiaXID95Error

GPU 驅動在 GPU 記憶體中檢測到不可糾正的錯誤且抑制失敗。

重啟節點

NvidiaXID120Error

  • Type: NvidiaXID120Error

  • Reason: NodeHasNvidiaXID120Error

在 GPU 的 GSP 核心上啟動並執行代碼出錯。

重啟節點

NvidiaXID31Error

  • Type: NvidiaXID31Error

  • Reason: NodeHasNvidiaXID31Error

GPU 記憶體頁面訪問錯誤(Page Fault)。

重啟節點

NvidiaPendingRetiredPages

  • Type: NvidiaPendingRetiredPages

  • Reason: NodeHasNvidiaPendingRetiredPages

GPU 存在處於 Pending 狀態的 Retired Pages。

重啟節點

NvidiaRemappingRowsRequireReset

  • Type: NvidiaRemappingRowsRequireReset

  • Reason: GPUMemoryRemappingRowsFailed

行重新對應待處理,將在下一次 GPU 重設時執行。

重啟節點

NvidiaXID119Error

  • Type: NvidiaXID119Error

  • Reason: NodeHasNvidiaXID119Error

在等待 GSP 核心響應 RPC 訊息時發生逾時。

重啟節點

GPU 故障的修複行為均為重啟節點。當 GPU 故障與需維修的靈駿節點系統事件同時發生時,由於維修過程中重啟可能導致本機資料丟失,ACK 不會自動執行重啟修複,本次自愈流程將失敗。建議單獨配置維修類自愈規則以覆蓋此類情境,參見因靈駿節點底層硬體異常需維修修複。

ECS

故障名稱

Kubernetes Node Condition

故障說明

修複行為

NvidiaXID48Error

  • Type: NvidiaXID48Error

  • Reason: NodeHasNvidiaXID48Error

Double Bit ECC Error (DBE)。當 GPU 檢測到不可糾正的錯誤時,會記錄此事件。

重啟節點

NvidiaXID62Error

  • Type: NvidiaXID62Error

  • Reason: NodeHasNvidiaXID62Error

GPU 內部微控制器停機。

重啟節點

NvidiaXID140Error

  • Type: NvidiaXID140Error

  • Reason: NodeHasNvidiaXID140Error

GPU 驅動在 GPU 記憶體中檢測到不可糾正的錯誤。

重啟節點

NvidiaXID95Error

  • Type: NvidiaXID95Error

  • Reason: NodeHasNvidiaXID95Error

GPU 驅動在 GPU 記憶體中檢測到不可糾正的錯誤且抑制失敗。

重啟節點

NvidiaXID120Error

  • Type: NvidiaXID120Error

  • Reason: NodeHasNvidiaXID120Error

在 GPU 的 GSP 核心上啟動並執行代碼出錯。

重啟節點

NvidiaXID31Error

  • Type: NvidiaXID31Error

  • Reason: NodeHasNvidiaXID31Error

GPU 記憶體頁面訪問錯誤(Page Fault)。

重啟節點

NvidiaPendingRetiredPages

  • Type: NvidiaPendingRetiredPages

  • Reason: NodeHasNvidiaPendingRetiredPages

GPU 存在處於 Pending 狀態的 Retired Pages。

重啟節點

NvidiaRemappingRowsRequireReset

  • Type: NvidiaRemappingRowsRequireReset

  • Reason: GPUMemoryRemappingRowsFailed

行重新對應待處理,將在下一次 GPU 重設時執行。

重啟節點

NvidiaXID119Error

  • Type: NvidiaXID119Error

  • Reason: NodeHasNvidiaXID119Error

在等待 GSP 核心響應 RPC 訊息時發生逾時。

重啟節點

系統與組件故障

依賴 NPD 組件檢測。

故障名稱

Kubernetes Node Condition

故障說明

修複行為

判斷故障發生閾值

故障恢複判斷標準

節點時間同步服務異常

  • Type: NTPProblem

  • Status: True

時間同步服務(ntpd 或 chronyd)異常。

登入節點執行修複命令

說明

若在自動修複 階段開啟了允許重啟節點,當自動修複動作執行後異常仍未恢複時,ACK 將嘗試重啟節點以修複。

10s

節點狀態為 Ready 且觸發故障的 Node Condition 的 Status 為 False。

節點容器運行時不可用

  • Type: RuntimeOffline

  • Status: True

容器運行時(containerd 或 Docker Engine)已停止,節點不可用。

登入節點執行修複命令

說明

若在自動修複 階段開啟了允許重啟節點,當自動修複動作執行後異常仍未恢複時,ACK 將嘗試重啟節點以修複。

90s

節點狀態為 Ready 且觸發故障的 Node Condition 的 Status 為 False。

節點 Systemd 服務異常

  • Type: SystemdOffline

  • Status: True

Systemd 狀態異常,無法啟動、銷毀容器。

重啟節點

90s

節點狀態為 Ready 且觸發故障的 Node Condition 的 Status 為 False。

節點處於未就緒(NotReady)狀態

  • Type: Ready

  • Status: False

kubelet 停止或心跳異常,導致節點處於未就緒(NotReady)狀態。

登入節點執行修複命令

說明

若在自動修複 階段開啟了允許重啟節點,當自動修複動作執行後異常仍未恢複時,ACK 將嘗試重啟節點以修複。

180s

連續三次探測,節點狀態為 Ready 且觸發故障的 Node Condition 的 Status 為 True。

節點檔案系統進入唯讀狀態

  • Type: ReadonlyFilesystem

  • Status: True

節點檔案系統變為唯讀。

重啟節點

90s

節點狀態為 Ready 且觸發故障的 Node Condition 的 Status 為 False。

底層事件與 Node Condition 轉換

ACK 自愈組件自動將靈駿節點、靈駿超節點和 ECS 節點產生的底層事件轉換為對應的 Node Condition,並產生 Kubernetes Event。本節為完整的狀態映射參考,排查故障時可按需查閱。

底層事件通過以下欄位對應為 Node Condition:

  • Type:標識故障類型。

  • Reason:標識事件當前所處的階段。

靈駿 CMS 事件

靈駿裸金屬節點的硬體與系統異常由靈駿管控以CloudMonitor服務(CMS)事件的形式發布,生命週期在“問詢中 → 執行中 → 已完成 / 已終止”之間流轉。ACK 周期性拉取這些事件,識別事件類型(如需維修的 Node.HardwareFault.HOST、需重啟的 Node.FaultNeedReboot.HOST),並轉換為節點上對應的 Node Condition。

以靈駿節點硬體故障 Node.HardwareFault.HOST CMS 事件為例:

ECS 系統事件

ECS 節點複用 ECS 系統事件體系,生命週期涵蓋問詢中、計劃中、執行中、已完成、已規避、已取消、執行失敗等狀態。ACK 通過調用 ECS 系統事件介面拉取執行個體營運事件(如 SystemMaintenance.Reboot、SystemMaintenance.Redeploy),並映射為節點上對應的 Node Condition。

以下是初始狀態為 Inquiring 的 SystemMaintenance.Reboot 計劃重啟營運事件的狀態變化:

普通靈駿節點底層事件轉換

每個普通靈駿節時間點事件會轉換為該節點在叢集中的 Node Condition 和 Kubernetes Event。

底層事件狀態

狀態原因

Node Condition

Kubernetes Event

Node.HardwareFault.HOST:Inquiring

resourceType: Node

節點硬體機器故障問詢中

  • Type: Node.HardwareFault.HOST

  • Reason: Node.HardwareFault.HOST:Inquiring

  • Type: Warning

  • Reason: DetectedLingJunCMSEvent

Node.HardwareFault.HOST:Executing

resourceType: Node

節點硬體機器故障開始營運操作

  • Type: Node.HardwareFault.HOST

  • Reason: Node.HardwareFault.HOST:Executing

  • Type: Warning

  • Reason: DetectedLingJunCMSEvent

Node.HardwareFault.HOST:Executed

resourceType: Node

節點硬體機器故障營運操作結束

  • Type: Node.HardwareFault.HOST

  • Reason: Node.HardwareFault.HOST:Executed

  • Type: Warning

  • Reason: DetectedLingJunCMSEvent

Node.HardwareFault.HOST:Terminated

resourceType: Node

節點硬體機器故障維修終止

  • Type: Node.HardwareFault.HOST

  • Reason: Node.HardwareFault.HOST:Terminated

  • Type: Warning

  • Reason: DetectedLingJunCMSEvent

Node.FaultNeedReboot.HOST:Inquiring

resourceType: Node

節點需要重啟修複的故障問詢中

  • Type: Node.FaultNeedReboot.HOST

  • Reason: Node.FaultNeedReboot.HOST:Inquiring

  • Type: Warning

  • Reason: DetectedLingJunCMSEvent

Node.FaultNeedReboot.HOST:Executing

resourceType: Node

節點需要重啟修複的故障開始重啟

  • Type: Node.FaultNeedReboot.HOST

  • Reason: Node.FaultNeedReboot.HOST:Executing

  • Type: Warning

  • Reason: DetectedLingJunCMSEvent

Node.FaultNeedReboot.HOST:Executed

resourceType: Node

節點需要重啟修複的故障重啟結束

  • Type: Node.FaultNeedReboot.HOST

  • Reason: Node.FaultNeedReboot.HOST:Executed

  • Type: Warning

  • Reason: DetectedLingJunCMSEvent

Node.FaultNeedReboot.HOST:Terminated

resourceType: Node

節點需要重啟修複的故障營運終止

  • Type: Node.FaultNeedReboot.HOST

  • Reason: Node.FaultNeedReboot.HOST:Terminated

  • Type: Warning

  • Reason: DetectedLingJunCMSEvent

靈駿超節點底層事件轉換

每個靈駿超節時間點事件會轉換為該超節點下所有子節點對應的 Node Condition 和 Kubernetes Event。

底層事件狀態

狀態原因

Node Condition

Kubernetes Event

Node.HardwareFault.HOST:Inquiring

resourceType: HyperNode

節點硬體機器故障問詢中

  • Type: HyperNode.Node.HardwareFault.HOST

  • Reason: HyperNode.Node.HardwareFault.HOST:Inquiring

  • Type: Warning

  • Reason: DetectedLingJunHyperNodeCMSEvent

Node.HardwareFault.HOST:Executing

resourceType: HyperNode

節點硬體機器故障開始營運操作

  • Type: HyperNode.Node.HardwareFault.HOST

  • Reason: HyperNode.Node.HardwareFault.HOST:Executing

  • Type: Warning

  • Reason: DetectedLingJunHyperNodeCMSEvent

Node.HardwareFault.HOST:Executed

resourceType: HyperNode

節點硬體機器故障營運操作結束

  • Type: HyperNode.Node.HardwareFault.HOST

  • Reason: HyperNode.Node.HardwareFault.HOST:Executed

  • Type: Warning

  • Reason: DetectedLingJunHyperNodeCMSEvent

Node.HardwareFault.HOST:Terminated

resourceType: HyperNode

節點硬體機器故障維修終止

  • Type: HyperNode.Node.HardwareFault.HOST

  • Reason: HyperNode.Node.HardwareFault.HOST:Terminated

  • Type: Warning

  • Reason: DetectedLingJunHyperNodeCMSEvent

Node.FaultNeedReboot.HOST:Inquiring

resourceType: HyperNode

節點需要重啟修複的故障問詢中

  • Type: HyperNode.Node.FaultNeedReboot.HOST

  • Reason: HyperNode.Node.FaultNeedReboot.HOST:Inquiring

  • Type: Warning

  • Reason: DetectedLingJunHyperNodeCMSEvent

Node.FaultNeedReboot.HOST:Executing

resourceType: HyperNode

節點需要重啟修複的故障開始重啟

  • Type: HyperNode.Node.FaultNeedReboot.HOST

  • Reason: HyperNode.Node.FaultNeedReboot.HOST:Executing

  • Type: Warning

  • Reason: DetectedLingJunHyperNodeCMSEvent

Node.FaultNeedReboot.HOST:Executed

resourceType: HyperNode

節點需要重啟修複的故障重啟結束

  • Type: HyperNode.Node.FaultNeedReboot.HOST

  • Reason: HyperNode.Node.FaultNeedReboot.HOST:Executed

  • Type: Warning

  • Reason: DetectedLingJunHyperNodeCMSEvent

Node.FaultNeedReboot.HOST:Terminated

resourceType: HyperNode

節點需要重啟修複的故障營運終止

  • Type: HyperNode.Node.FaultNeedReboot.HOST

  • Reason: HyperNode.Node.FaultNeedReboot.HOST:Terminated

  • Type: Warning

  • Reason: DetectedLingJunHyperNodeCMSEvent

ECS 節點底層營運事件轉換

ECS 節點的系統維護事件會轉換為對應的 Node Condition 和 Kubernetes Event。

底層事件狀態

狀態原因

Node Condition

Kubernetes Event

SystemMaintenance.Reboot:Inquiring

因系統維護執行個體需重啟問詢中

  • Type: SystemMaintenance.Reboot

  • Reason: SystemMaintenance.Reboot:Inquiring

  • Type: Warning

  • Reason: EcsSystemEventDetected

SystemMaintenance.Reboot:Scheduled

因系統維護執行個體需重啟計劃中

  • Type: SystemMaintenance.Reboot

  • Reason: SystemMaintenance.Reboot:Scheduled

  • Type: Warning

  • Reason: EcsSystemEventDetected

SystemMaintenance.Reboot:Executing

因系統維護執行個體需重啟執行中

  • Type: SystemMaintenance.Reboot

  • Reason: SystemMaintenance.Reboot:Executing

  • Type: Warning

  • Reason: EcsSystemEventDetected

SystemMaintenance.Reboot:Executed

因系統維護執行個體需重啟已完成

  • Type: SystemMaintenance.Reboot

  • Reason: SystemMaintenance.Reboot:Executed

  • Type: Warning

  • Reason: EcsSystemEventDetected

SystemMaintenance.Reboot:Avoided

因系統維護執行個體需重啟已規避

  • Type: SystemMaintenance.Reboot

  • Reason: SystemMaintenance.Reboot:Avoided

  • Type: Warning

  • Reason: EcsSystemEventDetected

SystemMaintenance.Reboot:Failed

因系統維護執行個體需重啟失敗

  • Type: SystemMaintenance.Reboot

  • Reason: SystemMaintenance.Reboot:Failed

  • Type: Warning

  • Reason: EcsSystemEventDetected

SystemMaintenance.Reboot:Canceled

因系統維護執行個體需重啟已取消(風險已規避)

  • Type: SystemMaintenance.Reboot

  • Reason: SystemMaintenance.Reboot:Canceled

  • Type: Warning

  • Reason: EcsSystemEventDetected

SystemMaintenance.Redeploy:Inquiring

因系統維護執行個體需重新部署問詢中

  • Type: SystemMaintenance.Redeploy

  • Reason: SystemMaintenance.Redeploy:Inquiring

  • Type: Warning

  • Reason: EcsSystemEventDetected

SystemMaintenance.Redeploy:Scheduled

因系統維護執行個體需重新部署計劃中

  • Type: SystemMaintenance.Redeploy

  • Reason: SystemMaintenance.Redeploy:Scheduled

  • Type: Warning

  • Reason: EcsSystemEventDetected

SystemMaintenance.Redeploy:Executing

因系統維護執行個體需重新部署執行中

  • Type: SystemMaintenance.Redeploy

  • Reason: SystemMaintenance.Redeploy:Executing

  • Type: Warning

  • Reason: EcsSystemEventDetected

SystemMaintenance.Redeploy:Executed

因系統維護執行個體需重新部署已完成

  • Type: SystemMaintenance.Redeploy

  • Reason: SystemMaintenance.Redeploy:Executed

  • Type: Warning

  • Reason: EcsSystemEventDetected

SystemMaintenance.Redeploy:Avoided

因系統維護執行個體需重新部署已規避

  • Type: SystemMaintenance.Redeploy

  • Reason: SystemMaintenance.Redeploy:Avoided

  • Type: Warning

  • Reason: EcsSystemEventDetected

SystemMaintenance.Redeploy:Canceled

因系統維護執行個體需重新部署已取消

  • Type: SystemMaintenance.Redeploy

  • Reason: SystemMaintenance.Redeploy:Canceled

  • Type: Warning

  • Reason: EcsSystemEventDetected

節點自愈流程相關 Kubernetes 事件說明

節點池開啟託管並關聯自愈規則後,ACK 會將節點故障事件轉換為 Kubernetes Event 和 Node Condition,同時通過 Kubernetes Event 上報自愈計劃的進度。可通過 kubectl describe node <節點名稱> 或 kubectl get events 查看。

判斷自愈是否成功

當節點恢複 Ready、且觸發本次故障的 Node Condition 已消除(或滿足對應故障類型的自愈成功判斷條件),並出現 RepairPlanCompleted 事件、訊息顯示自愈成功時,表示本次自愈完成。若出現 NodeNotRecovery 或 RepairPlanFailed 事件,表示節點未恢複,需按注意事項登入叢集手動修複。

常見自愈流程事件

事件(Reason)

說明

DetectedLingJunCMSEvent

檢測到靈駿節點故障事件,或故障事件狀態有更新。

DetectedLingJunHyperNodeCMSEvent

檢測到靈駿超節點故障事件,或故障事件狀態有更新。

EcsSystemEventDetected

檢測到ECS節點故障事件,或故障事件狀態有更新。

RepairPlanCreated

自愈計劃已建立。

WaitingApproveProcedure

當前流程需要人工授權,事件訊息中包含需授權的操作及授權方式。

RepairPlanProcedureWaitingForApproval

授權標籤已添加到節點標籤中。

RepairPlanStatusUpdated

自愈計劃狀態更新,記錄當前執行的流程及執行結果。

ApproveLingjunOperation

已授權靈駿管控執行修複操作。

NodeNotRecovery

修複完成後每 30 分鐘檢測一次節點狀態;若節點未恢複,則觸發此事件。

RepairPlanCompleted

自愈計劃結束,事件訊息中顯示自愈成功或失敗。

WaitAllSubNodeRepair

超節時間點事件自愈,等待該超節點的所有子節點進入維修階段。

RepairPlanThrottledByMaxUnhealthyNodesThreshold

節點池發生故障的節點數大於熔斷閾值,自愈進入熔斷狀態,並停止新增自愈修複動作。

RepairPlanThrottledByMaxParallelRepairingNodes

節點池故障節點並發修複數已達上限。

NodeRecovered

節點故障恢複,自檢通過。

特殊情境事件

事件(Reason)

說明

NodeRecoveryNeedSilence

上一次自愈計劃執行成功,但當前故障類型與上次不同,系統等待 10 分鐘靜默期後再建立新的自愈計劃。

NodeRecoveryHasProcessed

當前故障已被最近一次自愈成功處理,但節點實際未恢複,需人工介入排查。

RepairPlanFailed

當前故障對應的自愈計劃執行失敗,節點未恢複,需人工介入排查。

RepairPlanStatusUpdateFailed

自愈計劃狀態更新失敗。

AddInquiringLabelFailed

授權標籤設定失敗,自愈流程中止。

RepairSkippedInstanceStateNotReady

當前執行個體狀態無法滿足修複動作, 暫時跳過自愈。