共用方式為


叢集自動調整程式無法調整,並出現「無法調整叢集自動調整程式已啟用節點集區」錯誤

本文討論如何解決「無法調整啟用了自動調整功能的節點池」錯誤,該錯誤出現在調整啟用了自動調整功能之節點池的叢集時。

徵兆

您收到類似下列訊息的錯誤訊息:

kubectl get nodes 輸出「找不到資源」
所有 Pod 狀態為 Pending
調整作業失敗,並出現「無法調整叢集自動調整程式啟用節點集區」錯誤

疑難排解檢查清單

Azure Kubernetes Service(AKS)使用以虛擬機器擴展集為基礎的代理節點池,其中包含叢集節點和叢集自動調整功能(如果已啟用)。

檢查叢集虛擬機擴展集是否存在

  1. 登入 Azure 入口網站

  2. 藉由搜尋下列名稱來尋找節點資源群組:

    • 預設名稱 MC_{AksResourceGroupName}_{YourAksClusterName}_{AksResourceLocation}
    • 自訂名稱(如果在建立時提供的話)。

    注意

    建立新叢集時,AKS 會自動建立第二個資源群組來儲存 AKS 資源。 如需詳細資訊,請參閱為何會使用 AKS 建立兩個資源群組?

  3. 檢查資源清單,並確定有虛擬機器規模組合。

原因 1:已刪除叢集虛擬機擴展集

刪除連接到叢集的虛擬機擴展集會導致叢集自動調整器失敗。 它也會在配置資源(例如節點和Pod)時造成問題。

注意

修改 AKS 叢集中節點資源群組下的任何資源是不支援的動作,而且會導致叢集作業失敗。 您可以藉由封鎖使用者修改 AKS 叢集所管理的資源,以防止節點資源群組遭變更。

調整節點池

如果叢集虛擬機比例設定被意外刪除,您可以使用 az aks nodepool update 來重新配置節點池。

# Update Node Pool Configuration
az aks nodepool update --resource-group <resource-group-name> --cluster-name <cluster-name> --name <nodepool-name> --tags <tags> --node-taints <taints> --labels <labels>

# Verify the Update
az aks nodepool show --resource-group <resource-group-name> --cluster-name <cluster-name> --name <nodepool-name>

監視節點集區,以確定它如預期般運作,且所有節點都正常運作。

原因 2:標籤或任何其他屬性已從節點資源群組修改

如果您在節點資源群組中修改或刪除 Azure 建立的標籤和其他資源屬性,您可能會收到調整錯誤。 如需詳細資訊,請參閱 是否可以修改節點資源群組中 AKS 資源的標記和其他屬性?

協調節點資源群組標籤

使用 Azure CLI 確定節點資源群組具有 AKS 名稱和 AKS 組名的正確標籤:

# Add or update tags for AKS name and AKS group name
az group update --name <node-resource-group-name> --set tags.AKS-Managed-Cluster-Name=<aks-managed-cluster-name> tags.AKS-Managed-Cluster-RG=<aks-managed-cluster-rg>

# Verify the tags
az group show --name <node-resource-group-name> --query "tags"

監視資源群組,以確定已正確套用標籤,且資源群組如預期般運作。

原因3:叢集節點資源群組已刪除

刪除叢集節點資源群組會導致布建叢集所需的基礎結構資源時發生問題,這會導致叢集自動調整程序失敗。

解決方案:將叢集更新為目標狀態,而不需變更設定

若要解決此問題,您可以執行下列命令來復原已刪除的虛擬機擴展集或任何標籤(遺失或修改):

注意

作業完成可能需要幾分鐘的時間。

在執行 命令之前,請先設定 AKS 叢集資源群組和叢集名稱的環境變數。 包含隨機後綴以防止重複執行期間發生名稱衝突,但您必須確定資源群組和叢集存在。

export RANDOM_SUFFIX=$(head -c 3 /dev/urandom | xxd -p)
export AKS_RG_NAME="MyAksResourceGroup$RANDOM_SUFFIX"
export AKS_CLUSTER_NAME="MyAksCluster$RANDOM_SUFFIX"
az aks update --resource-group $AKS_RG_NAME --name $AKS_CLUSTER_NAME --no-wait

與我們連絡,以取得說明

如果您有疑問,可以詢問 Azure 社群支援。 您也可以向 Azure 意見反應社群提交產品意見反應。