Autoskalning av kluster kan inte skalas med felet "det går inte att skala kluster autoskalningsaktiverad nodpool"

I den här artikeln beskrivs hur du löser felet "det går inte att skala kluster autoskalningsaktiverad nodpool" som visas när du skalar ett kluster med en autoskalningsaktiverad nodpool.

Symptom

Du får ett felmeddelande som liknar följande meddelande:

kubectl get nodes utdata "Inga resurser hittades"
Alla poddars tillstånd är Pending
Skalningsåtgärder misslyckas med felet "Det går inte att skala kluster autoskalningsaktiverad nodpool"

Checklista för felsökning

Azure Kubernetes Service (AKS) använder vm-skalningsuppsättningar baserade på agentpooler, som innehåller klusternoder och funktioner för automatisk skalning av kluster om de är aktiverade.

Kontrollera att vm-skalningsuppsättningen för kluster finns

  1. Logga in på Azure-portalen.

  2. Leta upp nodresursgruppen genom att söka efter följande namn:

    • Standardnamnet MC_{AksResourceGroupName}_{YourAksClusterName}_{AksResourceLocation}.
    • Det anpassade namnet (om det angavs när det skapades).

    Kommentar

    När du skapar ett nytt kluster skapar AKS automatiskt en andra resursgrupp för att lagra AKS-resurserna. Mer information finns i Varför skapas två resursgrupper med AKS?

  3. Kontrollera listan över resurser och säkerställ att det finns en virtuell maskin skaleringsuppsättning.

Orsak 1: Vm-skalningsuppsättningen för kluster togs bort

Om du tar bort den virtuella maskinskaleringsuppsättningen som är kopplad till klustret misslyckas klusterautoskalaren. Det orsakar också problem när du tillhandahåller resurser som noder och poddar.

Kommentar

Att ändra en resurs under nodresursgruppen i AKS-klustret är en åtgärd som inte stöds och orsakar klusteråtgärdsfel. Du kan förhindra att ändringar görs i nodresursgruppen genom att blockera användare från att ändra resurser som hanteras av AKS-klustret.

Stämma av nodpool

Om den virtuella kluster skalningsuppsättningen tas bort av misstag kan du återställa nodpoolen med hjälp av 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>

Övervaka nodpoolen för att se till att den fungerar som förväntat och att alla noder fungerar.

Orsak 2: Taggar eller andra egenskaper har ändrats från nodresursgruppen

Du kan få skalningsfel om du ändrar eller tar bort Azure-skapade taggar och andra resursegenskaper i nodresursgruppen. Mer information finns i Kan jag ändra taggar och andra egenskaper för AKS-resurserna i nodresursgruppen?

Stämma av nodresursgrupptaggar

Använd Azure CLI för att se till att nodresursgruppen har rätt taggar för AKS-namnet och AKS-gruppnamnet:

# 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"

Övervaka resursgruppen för att se till att taggarna tillämpas korrekt och att resursgruppen fungerar som förväntat.

Orsak 3: Resursgruppen för klusternoden har tagits bort

Om du tar bort klusternodresursgruppen uppstår problem när du tilldelar de infrastrukturresurser som krävs för klustret, vilket gör att klustrets autoskalning misslyckas.

Lösning: Uppdatera klustret till måltillståndet utan att ändra konfigurationen

Du kan lösa problemet genom att köra följande kommando för att återställa den borttagna virtuella maskinskaleringsuppsättningen eller eventuella taggar (borttagna eller modifierade):

Kommentar

Det kan ta några minuter innan åtgärden har slutförts.

Ange miljövariablerna för AKS-klusterresursgruppen och klusternamnet innan du kör kommandot. Ett slumpmässigt suffix ingår för att förhindra namnkollisioner under upprepade körningar, men du måste se till att resursgruppen och klustret finns.

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

Kontakta oss för att få hjälp

Om du har frågor kan du ställa support för Azure-communityn. Du kan också skicka produktfeedback till Azure-feedbackcommunityn.