節點未就緒失敗的基本疑難解答

本文提供在失敗后復原 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 物件。

如果下列其中一個條件成立,Nodekubelet 會更新 .status 檔案:

  • 狀態發生變更。

  • 在設定的時間間隔之後,不會發生任何更新。

狀態更新 Node 的預設間隔為5分鐘。 這個間隔比無法連線節點的 40 秒預設逾時還要長。 kubelet 會建立對象,然後每隔十秒更新一次, Lease (預設更新間隔) 。 Lease匯報 與狀態的Node更新分開發生。 Lease如果更新失敗,kubelet 會使用指數輪詢來重試,此輪詢會從 200 毫秒開始,且上限為 7 秒。

您無法在狀態為或 UnknownNotReadyNode排程 Pod 。 您只能在處於 狀態的Ready節點上排程 Pod

如果您的節點處於 MemoryPressureDiskPressurePIDPressure 狀態,您必須管理資源,才能在節點上排程額外的 Pod。 如果您的節點處於 NetworkUnavailable 模式,您必須在節點上正確設定網路。 請確定符合下列條件:

  • 您的叢集處於成功 (執行) 狀態。 若要檢查 Azure 入口網站 上的叢集狀態,請搜尋並選取 [Kubernetes 服務],然後選取 AKS 叢集的名稱。 然後,在叢集的 [概觀] 頁面上,查看 Essentials 以尋找 [狀態]。 或者,在 Azure CLI 中輸入 az aks show 命令。

    Azure 入口網站 Azure Kubernetes Service (A K S) 叢集 [概觀] 頁面的螢幕快照。在 [Essentials] 區段中,[狀態] 是 [成功 (執行中) ]。

  • 您的節點集區具有 [已成功] 的布建狀態和 [執行中] 的電源狀態。 若要檢查 Azure 入口網站 上的節點集區狀態,請返回 AKS 叢集的頁面,然後選取 [節點集區]。 或者,在 Azure CLI 中輸入 az aks nodepool show 命令。

    Azure 入口網站 Azure Kubernetes Service (A K S) 叢集節點集區的螢幕快照。布建狀態為 Succeeded。電源狀態為 Running。

  • 必要的輸出埠會在網路安全組中開啟, (NSG) 和防火牆,以便連線到 API 伺服器的 IP 位址。 如需詳細資訊,請參閱 AKS 叢集所需的輸出網路規則和 FQDN

  • 您的節點 已部署最新的節點映像

  • 您的節點處於 狀態, Running 而不是 StoppedDeallocated

  • 您的叢集正在執行 AKS 支援的 Kubernetes 版本

協力廠商連絡資訊免責聲明

Microsoft 提供第三方連絡資訊,協助您尋找有關本主題的其他資訊。 此連絡資訊如有變更,恕不另行通知。 Microsoft 不保證第三方聯繫人信息的正確性。