Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Resumen
En este artículo se describe cómo identificar y resolver los ZonalAllocationFailederrores , AllocationFailedo OverconstrainedAllocationRequest que pueden producirse al intentar crear, implementar o actualizar un clúster de Azure Kubernetes Service (AKS).
Prerrequisitos
Para solucionar estos errores, se recomienda que tenga los siguientes requisitos previos:
-
CLI de Azure (opcional), versión 2.86.0 o una versión posterior. Si CLI de Azure ya está instalado, use
az --versionpara comprobar el número de versión. - Azure PowerShell (opcional).
Síntomas
Al intentar crear, actualizar o escalar verticalmente un clúster, recibirá uno de los siguientes mensajes de error:
Código: ZonalAllocationFailed
Mensaje: Allocation failed. We do not have sufficient capacity for the requested VM size in this zone. Read more about improving likelihood of allocation success at https://aka.ms/allocation-guidance. Please note that allocation failures can also arise if a proximity placement group is associated with this VMSS. See https://learn.microsoft.com/troubleshoot/azure/azure-kubernetes/error-code-zonalallocationfailed-allocationfailed for more details. This is not AKS controlled behavior, please ask help to VMSS team for allocation failure. If the error is due to capacity constrain, consider upgrade with maxUnavailable instead of maxSurge, details: aka.ms/aks/maxUnavailable.
Código: AllocationFailed
Mensaje: The VM allocation failed due to an internal error. Please retry later or try deploying to a different location. Please note that allocation failures can also arise if a proximity placement group is associated with this VMSS. See https://learn.microsoft.com/troubleshoot/azure/azure-kubernetes/error-code-zonalallocationfailed-allocationfailed for more details. This is not AKS controlled behavior, please ask help to VMSS team for allocation failure.
Código: OverconstrainedAllocationRequest
Mensaje: Create or update VMSS failed. Allocation failed. VM(s) with the following constraints cannot be allocated, because the condition is too restrictive. Please remove some constraints and try again. Constraints applied are: - Differencing (Ephemeral) Disks - Networking Constraints (such as Accelerated Networking or IPv6) - VM Size
Causa 1: Disponibilidad limitada de zona en una SKU
Está intentando implementar, actualizar o ampliar un clúster en una zona que tiene disponibilidad limitada para la SKU específica.
Solución 1: Usar una SKU, una zona o una región diferentes
Pruebe uno o varios de los métodos siguientes:
- Vuelva a implementar el clúster en la misma región mediante una SKU diferente.
- Vuelva a implementar el clúster en una zona diferente de esa región.
- Vuelva a implementar el clúster en otra región.
- Cree un nuevo grupo de nodos en una zona diferente o use una SKU diferente.
Para obtener más información sobre cómo corregir este error, consulte Resolución de errores de SKU no disponible.
Solución 2: Cambiar el tamaño de un grupo de nodos existente cuando la creación o el escalado se bloquean debido a la disponibilidad del tamaño de máquina virtual requerido
Si otro tamaño de máquina virtual compatible tiene capacidad, cambie el tamaño del grupo de nodos de Virtual Machine Scale Sets (VMSS) o máquina virtual (VM) existente para usar ese tamaño. AKS reemplaza los nodos a través de una operación gradual, por lo que no tiene que crear un nuevo grupo de nodos y migrar las cargas de trabajo manualmente. Esta característica está actualmente en versión preliminar y requiere capacidad de sobrecarga para el tamaño de máquina virtual de destino. Para conocer los requisitos previos, las limitaciones y las instrucciones, consulte Cambio de tamaño de un grupo de nodos de VMSS en su lugar (versión preliminar).
Solución 3: Usar la colocación automática de zona cuando la creación o el escalado están bloqueados por una limitación zonal específica
Para las cargas de trabajo que abarcan varias zonas, cree o actualice el grupo de nodos con asignación automática de zonas. AKS selecciona zonas de disponibilidad que tienen capacidad para la SKU de máquina virtual solicitada y vuelve a evaluar la disponibilidad de la zona durante las operaciones de escalabilidad horizontal posteriores. Esta característica se encuentra actualmente en versión preliminar y se puede producir un error en una asignación si Azure no puede asignar los nodos solicitados mientras respeta el límite por zona. Para conocer los requisitos previos, las limitaciones y las instrucciones, consulte Selección automática de ubicación de zona en Azure Kubernetes Service (versión preliminar).
Solución 4: Escalado dinámico mediante el aprovisionamiento automático de nodos
El aprovisionamiento automático de node permite aprovisionar automáticamente las SKU de máquina virtual en función de las necesidades de la carga de trabajo. Si una SKU no está disponible debido a restricciones de capacidad, Node Auto Provisioning (NAP) selecciona otro tipo de SKU en función de las especificaciones proporcionadas en las definiciones de recursos del cliente (CRD) como NodePool y AKSNodeClass. Esto puede resultar útil para los escenarios de escalado cuando cierta capacidad de SKU se limita. Para más información sobre cómo configurar el clúster NAP, consulte Configuración de grupos de nodos para el aprovisionamiento automático de nodos (NAP) en Azure Kubernetes Service (AKS) y Configuración de recursos de AKSNodeClass para el aprovisionamiento automático de nodos (NAP) en Azure Kubernetes Service (AKS).
Solución 5: Actualizar localmente mediante MaxUnavailable
Si no necesita nodos de sobrecarga durante las actualizaciones, consulte Personalización de nodos no disponibles para obtener información sobre cómo actualizar con la capacidad existente. Establezca MaxUnavailable en un valor mayor que cero y establezca en MaxSurge cero. El proceso de actualización acordona y purga los nodos existentes de uno en uno y expulsa los pods a los nodos restantes. El proceso no crea un nodo de búfer.
Solución 6: Uso del recomendador de implementación en el portal para crear un nuevo clúster
Durante la creación de un clúster de AKS en Azure Portal, si la SKU del grupo de nodos seleccionado no está disponible en la región y zonas elegidas, el recomendador de implementación recomienda una combinación alternativa de SKU, zonas y regiones que tenga disponibilidad.
Solución 7: Usar expansores de prioridad con cluster-autoscaler
El expansador de prioridad de escalado automático de clúster permite definir una lista ordenada de grupos de nodos para intentar escalar en secuencia. Por ejemplo: primero los grupos puntuales (optimización de costos) y luego los grupos bajo demanda (alternativa de disponibilidad). El acceso condicional intenta implementar primero el grupo de prioridad más alta. Si se produce un error en el escalado (por ejemplo, debido a un error de asignación), intenta el siguiente grupo.
Limitations
Las siguientes limitaciones se aplican al expansador de prioridad:
- El acceso condicional no crea nuevos grupos de nodos. Solo funciona con grupos existentes. Si quiere aprovisionar SKU dinámica, use NAP, que puede crear grupos en función de la disponibilidad de la SKU.
- El expansador de prioridad funciona en el nivel de grupo de nodos, no en el nivel de SKU. Debe crear previamente grupos para cada familia de SKU que quiera usar.
Causa 2: Demasiadas restricciones para que una máquina virtual admita
Si recibe un OverconstrainedAllocationRequest código de error, la plataforma de proceso de Azure no puede asignar una nueva máquina virtual para dar cabida a las restricciones necesarias. Estas restricciones suelen incluir (pero no siempre) los siguientes elementos:
- Tamaño de VM
- SKU de VM
- Redes aceleradas
- Zona de disponibilidad
- Disco efímero
- Grupo de colocación de proximidad (PPG)
Solución: no asocie un grupo de selección de ubicación de proximidad al grupo de nodos
Si recibe un OverconstrainedAllocationRequest código de error, intente crear un nuevo grupo de nodos que no esté asociado a un grupo de selección de ubicación de proximidad.
Causa 3: No hay suficientes hosts dedicados o dominios de error
Está intentando implementar un grupo de nodos en un grupo host dedicado que tenga una capacidad limitada o que no cumpla la restricción de dominio de error.
Solución: asegúrese de que tiene suficientes hosts dedicados para los nodos o VMSS de AKS
Según Planificación de la capacidad de ADH en AKS, usted es responsable de planificar suficientes hosts dedicados para abordar tantos dominios de error como requiera el VMSS de AKS. Por ejemplo, si el VMSS de AKS se crea con FaultDomainCount=2, necesita al menos dos hosts dedicados en dominios de error diferentes (FaultDomain 0 y FaultDomain 1).
Más información
Garantizar la capacidad de los usuarios es una prioridad máxima para Microsoft. La creciente popularidad de los servicios de Azure hace hincapié en la necesidad de escalar verticalmente nuestra infraestructura aún más rápidamente. Teniendo en cuenta ese objetivo, estamos acelerando las expansiones y mejorando nuestro proceso de implementación de recursos para responder a una demanda fuerte de los clientes. También estamos agregando una gran cantidad de infraestructura informática mensualmente.
Hemos identificado varios métodos para mejorar el equilibrio de carga en una situación de uso elevado de recursos y cómo desencadenar la implementación oportuna de los recursos necesarios. Además, estamos aumentando significativamente nuestra capacidad y seguimos planeando una demanda fuerte en todas las regiones. Para obtener más información sobre las mejoras que estamos realizando para ofrecer una cadena de suministro de nube resistente, consulte Avance de la confiabilidad a través de una cadena de suministro de nube resistente.
Referencias
- Solución general de problemas de creación de clústeres de AKS
- Conjuntos de escalado de máquinas virtuales: qué esperar al usar grupos de selección de ubicación de proximidad
- Corrección de un error AllocationFailed o ZonalAllocationFailed al crear, reiniciar o cambiar el tamaño de los conjuntos de escalado de máquinas virtuales en Azure