Consideraciones de escalabilidad para entornos de Azure Kubernetes Service
AKS se puede reducir y escalar horizontalmente en función de las necesidades de la infraestructura (que requiere más o menos capacidad), agregando grupos de nodos con funcionalidades especiales como GPU, o en función de las necesidades de la aplicación; en este caso, debe tener en cuenta diversos factores, como el número y la velocidad de las conexiones simultáneas, el número de solicitudes y las latencias de back-end en las aplicaciones de AKS.
Las opciones de escalabilidad más comunes para AKS son el escalador automático de clústeres y el escalador automático horizontal de pods. El escalador automático de clústeres ajusta el número de nodos según los recursos de proceso solicitados en el grupo de nodos. El escalador automático horizontal de pods (HPA) ajusta el número de pods en una implementación en función del uso de la CPU o de otras métricas configuradas.
Consideraciones de diseño
Estos son algunos factores esenciales que se deben tener en cuenta:
¿La aplicación necesita una escalabilidad rápida (sin tiempo de espera)?
- Para contar con un aprovisionamiento rápido de pods use nodos virtuales; esta opción solo se admite con nodos o pods de Linux.
¿No es importante el factor del tiempo en la carga de trabajo y esta admite interrupciones? Considere la posibilidad de usar VM de acceso puntual.
¿La infraestructura subyacente (complemento de red, intervalos IP, límites de suscripción, cuotas, etc.) se puede escalar horizontalmente?
Considere la posibilidad de automatizar la escalabilidad.
- Puede habilitar la escalabilidad automática del clúster para escalar el número de nodos. Considere la posibilidad de usar la escalabilidad automática del clúster y el escalado a cero.
- El escalador automático horizontal de pods escala automáticamente el número de pods.
Considere la escalabilidad con varias zonas y grupos de nodos.
- Si crea grupos de nodos, considere la posibilidad de establecer zonas de disponibilidad con AKS.
- Considere la posibilidad de usar varios grupos de nodos para cubrir aplicaciones con requisitos diferentes.
- Escale los grupos de nodos con el escalador automático del clúster.
- Puede escalar a cero los grupos de nodos de usuario. Consulte las limitaciones.
Recomendaciones de diseño
Siga estos procedimientos recomendados en su diseño:
- Use conjuntos de escalado de máquinas virtuales (VMSS), necesarios para escenarios como la escalabilidad automática, varios grupos de nodos y compatibilidad con grupos de nodos de Windows.
- No habilite ni edite manualmente la configuración de la escalabilidad DE VMSS en Azure Portal ni mediante la CLI de Azure. En su lugar, use el escalador automático de clústeres.
- Si necesita una expansión rápida de la escalabilidad automática, hágalo desde el clúster de AKS mediante Azure Container Instances y nodos virtuales para conseguir una escalabilidad rápida e infinita con facturación por segundo.
- Use el escalador automático del clúster y el escalado a cero para conseguir una escalabilidad predecible mediante nodos de trabajo basados en máquinas virtuales.
- Habilite el escalador automático del clúster para satisfacer las demandas de la aplicación.
- Puede habilitar el escalado automático para los grupos de varios nodos.
- Habilite el escalador automático horizontal de pods (HPA) para reducir las horas punta de la aplicación.
- Todos los contenedores y pods deben tener definidos límites y solicitudes de recursos.
- HPA escala automáticamente el número de pods en función de los límites de recursos observados en la CPU o la memoria, o de métricas personalizadas.
- Habilite Azure Monitor para contenedores y la supervisión en directo para supervisar el uso del clúster y la carga de trabajo.
- Use varios grupos de nodos cuando las aplicaciones tengan diferentes requisitos de recursos.
- No olvide que puede especificar un tamaño de máquina virtual para un grupo de nodos.
- Considere la posibilidad de usar grupos de nodos basados en máquinas virtuales de acceso puntual con cargas de trabajo que no dependan del tiempo y en las que puedan producirse interrupciones y expulsiones.