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 responden las preguntas más frecuentes sobre los problemas comunes que pueden producirse al ejecutar o escalar clústeres grandes en Microsoft Azure Kubernetes Service (AKS). Un clúster grande es cualquier clúster que se ejecute a más de 500 nodos.
Obtengo un error de "superación de cuota" durante la creación, el escalado o la actualización.
Para resolver este problema, cree una solicitud de soporte técnico en la suscripción en la que intenta crear, escalar o actualizar y solicitar una cuota para el tipo de recurso correspondiente. Para más información, consulte cuotas de cálculo regionales.
Recibo un error "insufficientSubnetSize" al implementar un clúster de AKS que utiliza networking avanzado.
Este error indica que una subred que está en uso para un clúster ya no tiene direcciones IP disponibles en su CIDR para la asignación correcta de recursos. Este problema puede producirse durante las actualizaciones, las ampliaciones de escala o la creación del grupo de nodos. Este problema se produce porque el número de direcciones IP gratuitas de la subred es menor que el resultado de la fórmula siguiente:
número de nodos solicitados * valor del grupo de nodos
--max-pod
Requisitos previos
Para escalar más allá de 400 nodos, debe usar el plug-in de red de Azure CNI.
Para ayudar a planear la red virtual y las subredes para dar cabida al número de nodos y pods que va a implementar, consulte Planeamiento de direcciones IP para el clúster. Para reducir la sobrecarga de planeación de subredes o recreación de clústeres que haría debido al agotamiento de IP, consulte Asignación dinámica de IP.
Solución
Dado que no se puede actualizar el intervalo CIDR de una subred existente, debe tener permiso para crear una nueva subred para resolver este problema. Siga estos pasos:
Recompile una nueva subred que tenga un intervalo CIDR mayor que sea suficiente para los objetivos de operación.
Cree una nueva subred que tenga un nuevo intervalo no superpuesto.
Cree un nuevo grupo de nodos en la nueva subred.
Drene los pods del antiguo grupo de nodos que reside en la antigua subred que será reemplazada.
Elimine la antigua subred y el antiguo grupo de nodos.
Tengo errores de conectividad de salida esporádicos debido al agotamiento de puertos SNAT
Para los clústeres que se ejecutan a una escala relativamente grande (más de 500 nodos), se recomienda usar la puerta de enlace de traducción de direcciones de red administrada (NAT) de AKS para mayor escalabilidad. Azure NAT Gateway permite hasta 64 512 flujos de tráfico UDP y TCP salientes por dirección IP y un máximo de 16 direcciones IP.
Si no usa NAT administrado, consulte Solución de problemas de agotamiento de direcciones de red de origen (SNAT) y tiempos de espera de conexión para comprender y resolver problemas de agotamiento de puertos SNAT.
No puedo escalar verticalmente hasta 5000 nodos mediante Azure Portal
Use la CLI de Azure para escalar verticalmente hasta un máximo de 5000 nodos siguiendo estos pasos:
Cree un número mínimo de grupos de nodos en el clúster (ya que el límite máximo de nodos del grupo de nodos es 1000) mediante la ejecución del comando siguiente:
az aks nodepool add --resource-group MyResourceGroup --name nodepool1 --cluster-name MyManagedClusterAmplíe los grupos de nodos uno por uno. Idealmente, establezca cinco minutos de tiempo de inactividad entre escalados consecutivos de 1,000. Ejecute el siguiente comando:
az aks nodepool scale --resource-group MyResourceGroup --name nodepool1 --cluster-name MyManagedCluster
Mi actualización se está ejecutando, pero es lenta.
En su configuración predeterminada, AKS aumenta durante una actualización mediante las siguientes acciones:
- Creación de un nuevo nodo.
- Ampliación del grupo de nodos, excediendo el número deseado de nodos por un nodo.
Para la configuración de sobrecarga máxima, un valor predeterminado de un nodo significa que AKS crea un nuevo nodo antes de purgar las aplicaciones existentes y reemplaza un nodo con versiones anteriores. Este nodo adicional permite a AKS minimizar la interrupción de la carga de trabajo.
Al actualizar clústeres que tienen muchos nodos, puede tardar varias horas en actualizar todo el clúster si usa el valor predeterminado de max-surge. Puede personalizar la max-surge propiedad por grupo de nodos para habilitar un equilibrio entre la velocidad de actualización y la interrupción de la actualización. Al aumentar el valor máximo de sobrecarga, se habilita el proceso de actualización para que finalice antes. Sin embargo, un valor grande para el aumento máximo también podría provocar interrupciones durante el proceso de actualización.
Ejecute el siguiente comando para aumentar o personalizar el aumento máximo de un grupo de nodos existente:
az aks nodepool update --resource-group MyResourceGroup --name mynodepool --cluster-name MyManagedCluster --max-surge 5
También es importante tener en cuenta cómo la configuración de implementación podría retrasar la finalización de la operación de actualización o escalado:
- AKS no admite máquinas virtuales de la serie B de la familia de SKU en el grupo de nodos del sistema y puede experimentar un bajo rendimiento durante y después de las actualizaciones.
- Compruebe la configuración de recursos de PDB de la implementación para asegurarse de que son precisas para una actualización correcta. Para más información, consulte Procedimientos recomendados para cargas de trabajo de AKS.
Sugerencia
Para obtener más información sobre este comportamiento, puede ver los detalles del error en la página Registro de actividad de Azure Portal o revisar los registros de recursos del clúster.
Mi actualización alcanza el límite de cuota (5000 clústeres).
Para resolver este problema, consulte Aumento de las cuotas regionales de vCPU.
Mi creación de servicio interno en más de 750 nodos es lenta o está fallando debido a un error de tiempo de espera
Las actualizaciones del grupo de back-end estándar de Load Balancer (SLB) son un conocido cuello de botella de rendimiento. Estamos trabajando en una nueva funcionalidad que permitirá la creación más rápida de servicios y SLB a escala. Para enviarnos sus comentarios sobre este problema, consulte Compatibilidad de Azure Kubernetes con el equilibrador de carga con piscina de back-end basada en IP.
Solución
Se recomienda reducir verticalmente el clúster a menos de 750 nodos y, a continuación, crear un equilibrador de carga interno para el clúster. Para crear un equilibrador de carga interno, cree un tipo de servicio LoadBalancer y una anotación azure-load-balancer-internal, según el procedimiento de ejemplo siguiente.
Paso 1: Crear un equilibrador de carga interno
Para crear un equilibrador de carga interno, cree un manifiesto de servicio denominado internal-lb.yaml y que contenga el LoadBalancer tipo de servicio y la azure-load-balancer-internal anotación, como se muestra en el ejemplo siguiente:
apiVersion: v1
kind: Service
metadata:
name: internal-app
annotations:
service.beta.kubernetes.io/azure-load-balancer-internal: "true"
spec:
type: LoadBalancer
ports:
- port: 80
selector:
app: internal-app
Paso 2: Implementación del equilibrador de carga interno
Implemente el equilibrador de carga interno mediante el kubectl apply comando y especifique el nombre del manifiesto YAML, como se muestra en el ejemplo siguiente:
kubectl apply -f internal-lb.yaml
Una vez creado el clúster, también puede aprovisionar un equilibrador de carga interno (por este procedimiento) y mantener en ejecución un servicio interno con equilibrio de carga. Esto le permite agregar más servicios al equilibrador de carga a escala.
La creación del servicio SLB a escala tarda horas en ejecutarse
Las actualizaciones del pool de back-end de SLB son un cuello de botella de rendimiento bien conocido. Estamos trabajando en una nueva funcionalidad que le permitirá ejecutar servicios con equilibrio de carga a escala con un rendimiento considerablemente más rápido para las operaciones de creación, actualización y eliminación. Para enviarnos sus comentarios, consulte Compatibilidad de Azure Kubernetes con el balanceador de carga con un grupo de back-end basado en IP.
Aviso de declinación de responsabilidades sobre la información de terceros
Los productos de otros fabricantes que se mencionan en este artículo han sido creados por compañías independientes de Microsoft. Microsoft no ofrece ninguna garantía, ya sea implícita o de otro tipo, sobre la confiabilidad o el rendimiento de dichos productos.