Azure Kubernetes Service (AKS) 節點自動修復

AKS 會持續監視背景工作節點的健全狀態,並在狀況不良時,自動執行節點修復。 Azure 虛擬機器 (VM) 平台會在發生問題的 VM 上進行維護

AKS 和 Azure VM 一起運作,以將叢集的服務中斷降至最低。

在本文件中,您將了解自動節點修復功能對於 Windows 和 Linux 節點的運作方式。

AKS 如何檢查狀況不良的節點

AKS 會使用下列規則來判斷節點是否狀況不良,並需要修復:

  • 節點會在 10 分鐘時間範圍內的連續檢查時,報告 NotReady 狀態。
  • 節點不會在 10 分鐘內報告任何狀態。

您可以使用 kubectl 手動檢查節點的健全狀態。

kubectl get nodes

自動修復的運作方式

注意

AKS 會使用使用者帳戶 aks-remediator 起始修復作業。

如果 AKS 發現狀況不良的節點維持狀況不良達 10 分鐘,AKS 會採取下列動作:

  1. 重新啟動節點。
  2. 如果重新啟動失敗,請為節點重新安裝映像。
  3. 如果重新安裝映像失敗,則請重新部署節點。

如果自動修復失敗,AKS 工程師會調查替代的補救措施。

如果 AKS 在健康情況檢查期間發現多個狀況不良的節點,則會在另一次修復開始之前,個別修復每個節點。

節點自動清空

排程的事件可以發生在任何節點集區的基礎虛擬機器 (VM) 上。 針對現成節點集區,排程的事件可能會導致節點的「先占」節點事件。 特定節點事件 (例如「先占」) 會導致 AKS 節點自動清空嘗試隔離和清空受影響的節點,以允許適當地重新排程該節點上的任何受影響工作負載。 發生這種情況時,您可能會注意到節點因 "kubernetes.azure.com/scalesetpriority: spot" 而收到含有 "remediator.aks.microsoft.com/unschedulable" 的污染。

下表顯示節點事件,以及其針對 AKS 節點自動清空所造成的動作。

事件 描述 動作
凍結 VM 會排定暫停幾秒鐘的時間。 CPU 和網路連線可能會暫止,但不會影響記憶體或已開啟的檔案 沒有動作
重新啟動 VM 會排定重新開機。 VM 的非持續性記憶體會遺失。 沒有動作
重新部署 VM 已排定移到其他節點。 VM 的暫時性磁碟會遺失。 隔離和清空
Preempt 正在刪除現成 VM。 VM 的暫時性磁碟會遺失。 隔離和清空
Terminate VM 已排定要刪除。 隔離和清空

限制

在許多情況下,AKS 可以判斷節點是否狀況不良,並嘗試修復問題,但在某些情況下,AKS 無法修復問題,或無法偵測到發生問題。 例如,AKS 無法偵測因網路設定錯誤而未回報節點狀態的問題,或一開始無法註冊為狀況良好的節點。

後續步驟

使用可用性區域提高 AKS 叢集工作負載的高可用性。