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