Cuando el tráfico aumenta de forma inesperada o sigue un patrón conocido, ajustar manualmente los recursos de los pods resulta lento y propenso a errores. ACK Serverless ofrece cuatro soluciones de Auto Scaling que ajustan dinámicamente las réplicas de pods o la asignación de recursos para satisfacer la demanda de la carga de trabajo. De este modo, sus aplicaciones mantienen su capacidad de respuesta sin necesidad de aprovisionar recursos en exceso. Este servicio es adecuado para cargas de trabajo en línea, tareas de cómputo y entrenamiento a gran escala, tareas de aprendizaje profundo aceleradas por GPU, así como para tareas de inference y entrenamiento de modelos que utilizan GPUs compartidas.
Antes de elegir una solución, es útil comprender dos dimensiones del escalado:
Horizontal frente a vertical: El escalado horizontal ajusta el número de réplicas de pods. El escalado vertical modifica la CPU y la memoria asignadas a cada pod sin cambiar la cantidad de réplicas.
Reactivo frente a predictivo: El escalado reactivo responde a las métricas actuales. El escalado predictivo utiliza datos históricos para escalar antes de que se presente la demanda anticipada.
A continuación se presenta un resumen de las cuatro soluciones.
|
Solución |
Funcionamiento |
Métricas de escalado |
Caso de uso |
Recursos compatibles |
Documentación |
|
HPA (Horizontal Pod Autoscaler) |
Solución estándar de Kubernetes para el escalado horizontal. Aumenta las réplicas de pods cuando la demanda se incrementa y las reduce cuando disminuye. |
Uso de CPU y memoria; métricas personalizadas |
Servicios con picos de tráfico impredecibles, como comercio electrónico, educación en línea y servicios financieros |
Deployments y StatefulSets (cualquier recurso que implemente la interfaz |
|
|
CronHPA (Cron Horizontal Pod Autoscaler) |
Escala los pods según una programación similar a crontab. Admite zonas horarias, fechas de ejecución específicas y fechas de exclusión como días festivos. Funciona en conjunto con HPA. |
Basado en programación |
Aplicaciones con períodos pico predecibles o que necesitan ejecutar tareas en momentos específicos |
Deployments y StatefulSets |
|
|
VPA (Vertical Pod Autoscaler) |
Supervisa el consumo de recursos de los pods y ajusta automáticamente las solicitudes y los límites de CPU y memoria al valor óptimo, sin modificar la cantidad de réplicas. |
VPA recomienda y ajusta automáticamente las solicitudes y los límites de recursos de CPU y memoria en los contenedores del pod |
Aplicaciones monolíticas o con estado que requieren un suministro estable de recursos; también es útil para recuperar pods tras anomalías |
Deployments, DaemonSets y StatefulSets |
|
|
AHPA (Advanced Horizontal Pod Autoscaler) |
Extiende HPA con escalado predictivo. Analiza patrones históricos de métricas para pronosticar la demanda y escala los pods antes de que llegue el tráfico. |
Uso de CPU, memoria y GPU; consultas por segundo (QPS); tiempo de respuesta (RT); métricas personalizadas |
Aplicaciones con patrones de tráfico periódicos, como streaming en vivo, educación en línea y videojuegos |
Deployments y Knative Services |