共用方式為


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

Azure Kubernetes Service (AKS) 會持續監視背景工作節點的健全狀態,並在狀況不良時,自動執行節點修復。 Azure 虛擬機器 (VM) 平台會在發生問題的 VM 上進行維護。 AKS 和 Azure VM 一起運作,以將叢集的服務中斷降至最低。

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

AKS 如何檢查 NotReady 節點

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

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

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

自動修復的運作方式

注意

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

如果 AKS 識別狀況不良的節點至少五分鐘,AKS 會執行下列動作:

  1. AKS 會重新啟動節點。
  2. 如果節點在重新啟動后仍然狀況不良,AKS 會重新映像節點。
  3. 如果節點在重新映射之後保持狀況不良,而且它是Linux節點,AKS 會重新部署節點。

如果節點保持狀況不良,AKS 會重試重新啟動、重新映像和重新部署順序最多三次。 整個自動修復程序最多可能需要一小時才能完成。

限制

AKS節點自動修復是最佳服務,我們不保證節點會還原回狀況良好的狀態。 如果您的節點持續處於狀況不良狀態,強烈建議您執行節點的手動調查。 深入了解針對 節點 NotReady 狀態進行疑難解答。

在某些情況下,AKS 不會執行自動修復。 無法自動修復節點,可能是由設計或 Azure 無法偵測到有問題的情況。 未執行自動修復時的範例包括:

  • 因為網路組態發生錯誤,所以不會報告節點狀態。
  • 一個節點一開始無法註冊為狀況良好的節點。
  • 如果節點上有下列任一個污點:、node.cloudprovider.kubernetes.io/shutdownToBeDeletedByClusterAutoscaler

使用 Kubernetes 事件監視節點自動修復

當 AKS 在您的叢集上執行節點自動修復時,AKS 會從 aks-auto-repair 來源發出 Kubernetes 事件,以取得可見度。 當自動修復發生時,下列事件會出現在節點物件上。

若要深入瞭解在 Kubernetes 事件上存取、儲存和設定警示,請參閱 在 Azure Kubernetes Service 中使用 Kubernetes 事件進行疑難解答。

原因 事件訊息 描述
NodeRebootStart 節點自動修復正起始重新啟動動作,因為 NotReady 狀態持續超過 5 分鐘。 當重新啟動即將在您的節點上執行時,就會發出此事件通知您。 此動作是整體節點自動修復順序中的第一個動作。
NodeRebootEnd 從節點自動修復重新啟動動作已完成。 在節點上完成重新啟動之後發出。 此事件不會指出執行重新啟動之後節點的健康情況狀態(狀況良好或狀況不良)。
NodeReimageStart 節點自動修復會起始重新映像動作,因為 NotReady 狀態持續超過 5 分鐘。 當重新映像即將在您的節點上執行時,就會發出此事件來通知您。
NodeReimageEnd 節點自動修復的重新映像動作已完成。 在節點上完成重新映像之後發出。 執行重新映像之後,此事件不會指出節點的健康情況狀態(狀況良好或狀況不良)。
NodeRedeployStart 節點自動修復會起始重新部署動作,因為 NotReady 狀態持續超過 5 分鐘。 當重新部署即將在您的節點上執行時,就會發出此事件通知您。 重新部署是節點自動修復順序中的最後一個動作。
NodeRedeployEnd 從節點自動修復重新部署動作已完成。 在節點上完成重新部署之後發出。 執行重新部署之後,此事件不會指出節點的健康情況狀態(狀況良好或狀況不良)。

如果節點自動修復程式期間發生任何錯誤,就會發出下列事件,並顯示逐字錯誤訊息。 深入瞭解針對 常見節點自動修復錯誤進行疑難解答。

注意

下列事件訊息中的錯誤碼 會根據回報的錯誤而有所不同。

原因 事件訊息 描述
NodeRebootError 節點自動修復重新啟動動作因作業失敗而失敗。 請參閱這裡的錯誤詳細數據: 錯誤碼 當重新啟動動作發生錯誤時發出。
NodeReimageError 節點自動修復重新映像動作因作業失敗而失敗。 請參閱這裡的錯誤詳細數據: 錯誤碼 當重新映像動作發生錯誤時發出。
NodeRedeployError 節點自動修復重新部署動作因作業失敗而失敗。 請參閱這裡的錯誤詳細數據: 錯誤碼 重新部署動作發生錯誤時發出。

下一步

根據預設,您可以從過去 1 小時存取 AKS 叢集上的 Kubernetes 事件和記錄。 若要儲存及查詢過去 90 天內的事件和記錄,請啟用 Container Insights ,以更深入地針對 AKS 叢集進行疑難解答。