El escalador automático del clúster no se puede escalar con el error "no se puede escalar el grupo de nodos habilitado para el escalador automático de clústeres".

Resumen

En este artículo se describe cómo resolver el error "no se puede escalar el grupo de nodos habilitado para el escalado automático del clúster" que aparece al escalar un clúster con un grupo de nodos habilitado para el escalador automático.

Síntomas

Recibe un mensaje de error similar al siguiente:

kubectl get nodes genera "No se encontraron recursos"
El estado de todos los pods es Pending
Error de operaciones de escalado con el error "No se puede escalar el grupo de nodos habilitado para el escalado automático del clúster".

Lista de comprobación de solución de problemas

Azure Kubernetes Service (AKS) usa grupos de agentes basados en conjuntos de escalado de máquinas virtuales, que contienen nodos de clúster y funcionalidades de escalado automático del clúster si están habilitadas.

Compruebe que el conjunto de escalado de máquinas virtuales del clúster existe

  1. Inicie sesión en Azure Portal.

  2. Busque el grupo de recursos del nodo mediante la búsqueda de los nombres siguientes:

    • Nombre predeterminado MC_{AksResourceGroupName}_{YourAksClusterName}_{AksResourceLocation}.
    • Nombre personalizado (si se proporcionó en la creación).

    Nota:

    Al crear un nuevo clúster, AKS crea automáticamente un segundo grupo de recursos para almacenar los recursos de AKS. Para más información, consulte ¿Por qué se crean dos grupos de recursos con AKS?

  3. Compruebe la lista de recursos y asegúrese de que hay un conjunto de escalado de máquinas virtuales.

Causa 1: Se eliminó el conjunto de escalamiento de máquinas virtuales del clúster

Al eliminar el conjunto de escalado de máquinas virtuales conectado al clúster, se produce un error en el escalador automático del clúster. También provoca problemas al aprovisionar recursos como nodos y contenedores.

Nota:

Modificar cualquier recurso bajo el grupo de recursos del nodo en el clúster AKS es una acción no admitida y causará fallos en la operación del clúster. Puede evitar que se hagan cambios en el grupo de recursos del nodo al bloquear usuarios para que no modifiquen recursos administrados por el clúster AKS.

Conciliación del grupo de nodos

Si se elimina accidentalmente el conjunto de escalado de máquinas virtuales del clúster, puede reconciliar el grupo de nodos usando 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>

Supervise el grupo de nodos para asegurarse de que funciona según lo previsto y de que todos los nodos están operativos.

Causa 2: Las etiquetas o cualquier otra propiedad se modificaron desde el grupo de recursos del nodo

Es posible que reciba errores de escalado si modifica o elimina etiquetas creadas por Azure y otras propiedades de recursos en el grupo de recursos del nodo. Para obtener más información, consulte ¿Puedo modificar etiquetas y otras propiedades de los recursos de AKS en el grupo de recursos del nodo?

Reconciliar etiquetas del grupo de recursos de nodo

Use la CLI de Azure para asegurarse de que el grupo de recursos del nodo tiene las etiquetas correctas para el nombre de AKS y el nombre del grupo de 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"

Supervise el grupo de recursos para asegurarse de que las etiquetas se aplican correctamente y de que el grupo de recursos funciona según lo previsto.

Causa 3: Se eliminó el grupo de recursos del nodo de clúster

Al eliminar el grupo de recursos del nodo de clúster, se producen problemas al aprovisionar los recursos de infraestructura requeridos por el clúster, lo que hace que se produzca un error en el escalador automático del clúster.

Solución: actualización del clúster al estado objetivo sin cambiar la configuración

Para resolver este problema, puede ejecutar el siguiente comando para recuperar el conjunto de escalado de máquinas virtuales eliminado o cualquier etiqueta (falta o modificado):

Nota:

La operación puede tardar unos minutos.

Establezca las variables de entorno para el grupo de recursos del clúster de AKS y el nombre del clúster antes de ejecutar el comando. Se incluye un sufijo aleatorio para evitar colisiones de nombres durante ejecuciones repetibles, pero debe asegurarse de que el grupo de recursos y el clúster existen.

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