Cuando su clúster de ACK no puede programar los pods pendientes, utilice el node scaling para agregar o quitar nodos automáticamente. ACK ofrece node auto scaling y node instant scaling. En comparación con node auto scaling, node instant scaling es más rápido y sencillo.
Antes de empezar
Lea este tema para comprender las soluciones de node scaling de ACK. Elija la que mejor se adapte a su carga de trabajo antes de habilitar el node scaling.
Familiarícese con el escalado manual, el autoescalado, el escalado horizontal y el escalado vertical en la documentación oficial de Kubernetes.
Cómo funciona el escalado de nodos
El escalado de nodos en Kubernetes difiere del modelo tradicional basado en umbrales de utilización de recursos. Es posible que deba considerar esta diferencia al migrar desde centros de datos u otros sistemas de orquestación hacia Kubernetes.
El modelo de escalado tradicional agrega nodos cuando la utilización de CPU o memoria supera un umbral. Sin embargo, este modelo presenta los siguientes problemas.
ACK utiliza el node scaling (capa de recursos) y el workload scaling (capa de programación) para resolver estos problemas. El node scaling activa el escalado según la utilización de recursos de los pods.
Soluciones de escalado: node auto scaling y node instant scaling
El node scaling es una función a nivel de recursos que ajusta automáticamente la cantidad de nodos del clúster. Cuando la capacidad existente no basta para programar los pods, el autoscaler aprovisiona nodos adicionales.
ACK ofrece dos soluciones para el node scaling.
Introducción
Solo un componente de escalado puede ejecutarse en un clúster. Las dos soluciones no pueden coexistir. Para habilitar el node scaling, consulte Enable node autoscaling y Enable node instant scaling.
Las estadísticas de escalado de este tema son valores teóricos basados en imágenes personalizadas. Los resultados reales en su entorno pueden variar. Consulte Optimize scaling with custom images.
Ambas soluciones de escalado aplican a los nodos dentro de los node pools con autoescalado.
|
Solución |
Componente |
Descripción |
|
Solución 1: node auto scaling |
cluster-autoscaler |
Comprueba el estado del clúster en un ciclo round-robin y escala los nodos cuando se cumplen las condiciones. |
|
Solución 2: node instant scaling |
ACK GOATScaler |
Autoscaler de nodos basado en eventos que garantiza una entrega eficiente de recursos en clústeres grandes y escenarios de escalado horizontal consecutivo. Un clúster se considera grande si un node pool con la función de autoescalado contiene más de 100 nodos, o si más de 20 node pools del clúster tienen habilitada esta función. Velocidad de escalado: 45 segundos; tasa de éxito: 99 %; reducción de fragmentación de recursos: 30 %. Admite políticas de escalado personalizadas para mayor extensibilidad. |
Comparación de soluciones
Para los node pools con autoescalado habilitado (sin modo rápido), la función de node instant scaling es compatible con la configuración existente del node pool y admite todos los tipos de pods. La siguiente tabla compara node instant scaling con node auto scaling.
|
Ventaja |
Node auto scaling |
Node instant scaling |
|
Velocidad y eficiencia de escalado |
60 segundos en modo estándar, 50 segundos en modo rápido. |
Con el escalado basado en eventos y Alibaba Cloud ContainerOS, cada actividad de escalado toma entre 35 y 55 segundos. |
|
El autoescalado alcanza un cuello de botella de rendimiento en 1 minuto. La eficiencia fluctúa según la cantidad de node pools y los escenarios de escalado: superar los 100 node pools aumenta la duración a entre 100 y 150 segundos. |
La duración del escalado se mantiene estable aunque aumente la cantidad de node pools o de pods. Por ello, resulta adecuado para escenarios de escalado rápido. |
|
|
Modo round-robin con actualizaciones del estado del clúster. Latencia mínima: 5 segundos. |
Basado en eventos. Latencia: de 1 a 3 segundos. |
|
|
Tasa de éxito del escalado de recursos |
Debido a las fluctuaciones en el inventario de recursos de la nube y a la variabilidad de los tipos de instancia, la tasa de éxito de node auto scaling es de aproximadamente el 97 %. |
Una política de selección automática de inventario filtra miles de tipos de instancia de Alibaba Cloud según condiciones y prioridades predefinidas. Selecciona automáticamente los tipos óptimos o alternativas de respaldo cuando los tipos especificados no están disponibles. Esto simplifica la operación y el mantenimiento, y eleva la tasa de éxito al 99 %. |
|
El escalado horizontal utiliza los tipos de instancia de la configuración del node pool. Cuando se especifican varios tipos, se prefiere el de menores especificaciones. |
Puede especificar varios tipos de instancia para las actividades de escalado horizontal. |
|
|
El autoscaler reintenta periódicamente cuando falla el escalado de recursos. |
El autoscaler puede generar alertas cuando los tipos de instancia especificados son insuficientes. |
|
|
Uso y operación y mantenimiento |
En comparación con node auto scaling, node instant scaling es más fácil de usar en los siguientes aspectos:
|
|
|
Política de programación |
Además de las funciones de programación de node auto scaling, node instant scaling también admite:
|
|
|
Node instant scaling reduce la tasa de fragmentación de recursos en un 30 % mediante las políticas Bin Packing y PreBind (función personalizada). |
||
Límites de node instant scaling
A continuación se describen los límites de node instant scaling. Revíselos antes de habilitar node instant scaling.
Node instant scaling no admite el modo rápido.
Un node pool puede contener hasta 180 nodos por lote de escalado horizontal.
-
No se puede deshabilitar la reducción horizontal para un clúster específico.
NotaPara deshabilitar la reducción horizontal de un nodo específico, consulte How to prevent a node from being scaled in by node instant scaling?.
La solución de node instant scaling no comprueba el inventario de preemptible instances. Si el Billing Method del node pool está configurado como preemptible instances y Use Pay-as-you-go Instances When Spot Instances Are Insufficient está habilitado, podrían agregarse instancias pay-as-you-go incluso si hay preemptible instances suficientes.
Seleccione una solución de escalado de nodos
Consulte Solution comparison y Limits of node instant scaling. Elija node auto scaling si su carga de trabajo tiene menores exigencias de velocidad de escalado y certeza de entrega, y los límites de node instant scaling resultan inaceptables.
Se recomienda utilizar node instant scaling si su carga de trabajo presenta alguno de los siguientes requisitos:
Los clústeres grandes degradan gravemente la eficiencia de node auto scaling. Elija node instant scaling, ya que el tamaño del clúster apenas afecta su eficiencia de escalado. Un clúster se considera grande si un node pool con la función de autoescalado contiene más de 100 nodos, o si más de 20 node pools del clúster tienen habilitada esta función.
Se requiere mayor velocidad de escalado. En modo estándar, node auto scaling tarda 60 segundos, mientras que node instant scaling tarda 45 segundos.
Los lotes consecutivos de escalado horizontal son frecuentes. En escenarios de escalado consecutivo, el rendimiento de node auto scaling se degrada y fluctúa, mientras que node instant scaling mantiene un tiempo de escalado constante de aproximadamente 45 segundos.
Notas de uso
Cuotas y límites
Una tabla de rutas de VPC admite hasta 200 entradas de ruta personalizadas. Para aumentar este límite, envíe una solicitud en la consola de Quota Center. Para conocer otras cuotas de recursos, consulte Underlying Cloud Product Quotas.
Configure con cuidado la cantidad máxima de nodos en un node pool con autoescalado. Asegúrese de que los recursos y las cuotas dependientes sean suficientes, como los bloques CIDR de VPC y los vSwitches; de lo contrario, las actividades de escalado horizontal podrían fallar. Para consultar los límites de los node pools, vea Enable node autoscaling. Para la planificación de red, vea ACK managed cluster network planning.
El node scaling no admite nodos de suscripción. No establezca el método de facturación como suscripción al crear un node pool con autoescalado. En los node pools existentes, asegúrese de que no haya nodos de suscripción antes de habilitar el autoescalado.
La función de node scaling no es compatible con SideCar Containers. Despliegue las cargas de trabajo de Sidecar Container en node pools con el autoescalado deshabilitado.
Mantenimiento de recursos dependientes
Si hay direcciones IP elásticas (EIP) asociadas a nodos de ECS agregados por el escalado de nodos, no elimine estos nodos directamente desde la consola de ECS. De hacerlo, las EIP no se liberarán automáticamente.
Referencias
Consulte Enable node autoscaling y Enable node instant scaling.
-
Consulte Node auto scaling FAQ.