節點未就緒失敗的基本疑難解答
本文提供在失敗后復原 Microsoft Azure Kubernetes Service (AKS) 叢集節點的疑難解答步驟。 本文特別說明節點未就緒失敗時所產生的最常見錯誤訊息,並說明如何針對 Windows 和 Linux 節點完成節點修復功能。
開始之前
閱讀 針對 Kubernetes 叢集進行疑難解答的官方指南。 此外,請閱讀 Microsoft 工程師的 Kubernetes 疑難解答指南。 本指南包含針對 Pod、節點、叢集和其他功能進行疑難解答的命令。
必要條件
- Azure CLI 2.31 版或更新版本。 如果已安裝 Azure CLI,您可以執行 來尋找版本號碼
az --version
。
基本疑難解答
AKS 會持續監視背景工作節點的健康情況狀態,並在節點變成狀況不良時自動修復節點。 Azure 虛擬機 (VM) 平台 會維護遇到問題的 VM 。 AKS 和 Azure VM 會一起運作,以減少叢集的服務中斷。
針對節點,活動訊號有兩種形式:
匯報 物件的
Node
.status 檔案。kube-node-lease 命名空間內的租用物件。 每個都有
Node
相關聯Lease
的物件。
相較於 的 .status 檔案 Node
更新, Lease
是輕量型資源。 針對活動訊號使用 Lease
對象可減少這些更新對大型叢集的效能影響。
kubelet 負責建立和更新 物件的 .status 檔案Node
。 它也負責更新 Lease
與對象相關的 Node
物件。
如果下列其中一個條件成立,Node
kubelet 會更新 .status 檔案:
狀態發生變更。
在設定的時間間隔之後,不會發生任何更新。
狀態更新 Node
的預設間隔為5分鐘。 這個間隔比無法連線節點的 40 秒預設逾時還要長。 kubelet 會建立對象,然後每隔十秒更新一次, Lease
(預設更新間隔) 。 Lease
匯報 與狀態的Node
更新分開發生。 Lease
如果更新失敗,kubelet 會使用指數輪詢來重試,此輪詢會從 200 毫秒開始,且上限為 7 秒。
您無法在狀態為或 Unknown
的 NotReady
上Node
排程 Pod
。 您只能在處於 狀態的Ready
節點上排程 Pod
。
如果您的節點處於 MemoryPressure
、 DiskPressure
或 PIDPressure
狀態,您必須管理資源,才能在節點上排程額外的 Pod。 如果您的節點處於 NetworkUnavailable
模式,您必須在節點上正確設定網路。 請確定符合下列條件:
您的叢集處於成功 (執行) 狀態。 若要檢查 Azure 入口網站 上的叢集狀態,請搜尋並選取 [Kubernetes 服務],然後選取 AKS 叢集的名稱。 然後,在叢集的 [概觀] 頁面上,查看 Essentials 以尋找 [狀態]。 或者,在 Azure CLI 中輸入 az aks show 命令。
您的節點集區具有 [已成功] 的布建狀態和 [執行中] 的電源狀態。 若要檢查 Azure 入口網站 上的節點集區狀態,請返回 AKS 叢集的頁面,然後選取 [節點集區]。 或者,在 Azure CLI 中輸入 az aks nodepool show 命令。
必要的輸出埠會在網路安全組中開啟, (NSG) 和防火牆,以便連線到 API 伺服器的 IP 位址。 如需詳細資訊,請參閱 AKS 叢集所需的輸出網路規則和 FQDN。
您的節點 已部署最新的節點映像。
您的節點處於 狀態,
Running
而不是Stopped
或Deallocated
。您的叢集正在執行 AKS 支援的 Kubernetes 版本。
協力廠商連絡資訊免責聲明
Microsoft 提供第三方連絡資訊,協助您尋找有關本主題的其他資訊。 此連絡資訊如有變更,恕不另行通知。 Microsoft 不保證第三方聯繫人信息的正確性。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應