本文提供指南,以針對 Azure Kubernetes Service (AKS) 叢集中的節點未就緒」問題進行疑難解答和解決。 當節點進入「NotReady」狀態時,可能會中斷應用程式的功能,並導致它停止回應。 一般而言,節點會在短時間內自動復原。 不過,若要防止週期性問題和維護穩定的環境,請務必瞭解能夠實作有效解決的根本原因。
原因
有數種情況可能會導致「NotReady」狀態發生:
API 伺服器無法使用。 這會導致整備探查失敗。 這可防止 Pod 連結至服務,讓流量不再轉送至 Pod 實例。
虛擬機 (VM) 主機錯誤。 若要判斷是否發生 VM 主機錯誤,請檢查下列資訊來源:
解決方案
若要解決這個問題,請依照下列步驟執行:
- 執行
kubectl describe node <node-name>
以檢閱節點狀態的詳細資訊。 尋找可能表示問題根本原因的任何錯誤訊息或警告。 - 執行
kubectl get apiservices
命令來檢查 API 伺服器的可用性。 請確定部署 YAML 檔案中已正確設定整備探查。 - 確認節點的網路設定,以確定沒有連線問題。
- 檢查節點的資源使用量,例如CPU、記憶體和磁碟,以識別潛在的條件約束。 如需詳細資訊,請參閱 使用容器深入解析監視 Kubernetes 叢集效能
如需進一步步驟,請參閱 節點未就緒失敗的基本疑難解答。
預防
若要防止此問題在未來發生,請採取下列一或多個動作:
- 請確定您的服務層級已完全付費。
- 減少 API 伺服器的 和
get
要求數目watch
。