Advanced Horizontal Pod Autoscaler (AHPA) es una función de escalado automático predictivo en Container Service for Kubernetes (ACK). Analiza datos históricos de métricas para pronosticar la demanda de la carga de trabajo y aprovisiona pods antes de que ocurran los picos de tráfico. De esta forma, elimina el retraso reactivo inherente al escalado automático estándar de Kubernetes.
Contexto
Cada enfoque de escalado automático estándar de Kubernetes implica ciertas desventajas:
|
Método |
Limitación |
|
Cantidad fija de pods |
Los pods inactivos desperdician recursos durante las horas de menor actividad. |
|
Horizontal Pod Autoscaler (HPA) |
Escala solo después de que el uso de recursos supera un umbral, por lo que los pods no están listos hasta que la demanda ya aumentó. |
|
CronHPA |
Requiere definir manualmente la cantidad de pods para cada intervalo de tiempo. Esto implica 1,440 programaciones distintas para cubrir un día completo con granularidad de un minuto. Además, se debe actualizar cada vez que cambian los patrones de tráfico. |
AHPA resuelve estas limitaciones porque aprende de los datos históricos. En lugar de reaccionar ante la demanda cuando ya llegó, identifica las fluctuaciones de la carga de trabajo a partir de los valores históricos de métricas específicas. También toma en cuenta el tiempo que transcurre antes de que el estado de un pod cambie a Ready. Esto le permite preaprovisionar la cantidad exacta de pods por minuto para las siguientes 24 horas, de modo que la capacidad ya está available cuando llega el tráfico.
Funcionamiento
Métricas compatibles
AHPA escala las cargas de trabajo con base en CPU, GPU, memoria, consultas por segundo (QPS), tiempo de respuesta (RT) y métricas externas.
Mecanismos de predicción
AHPA utiliza dos mecanismos de predicción complementarios:
Predicción proactiva: analiza los datos históricos de métricas para detectar patrones periódicos y pronosticar la demanda futura. Es adecuada para cargas de trabajo con ciclos de tráfico regulares y recurrentes.
Predicción pasiva: supervisa las métricas en tiempo real y ajusta la capacidad de forma dinámica conforme cambian las condiciones.
En conjunto, estos mecanismos logran una precisión superior al 95 % en la identificación de fluctuaciones de la carga de trabajo.
Degradación del servicio
Cuando las cargas de trabajo presentan un comportamiento inesperado, AHPA le permite definir cantidades mínimas y máximas de pods para periodos específicos, incluso con granularidad de un minuto. Estos valores funcionan como límites inferiores y superiores de seguridad.
Objetivos de escalado
AHPA se integra con tres mecanismos de escalado:
|
Objetivo de escalado |
Uso que le da AHPA |
|
Knative |
Resuelve la latencia de arranque en frío en escenarios serverless mediante el escalado basado en concurrencia, QPS o RT. |
|
HPA |
Envuelve el HPA estándar con lógica predictiva. Esto simplifica la configuración de políticas y elimina el retraso reactivo. |
|
Deployment |
Escala los Deployments directamente sin requerir HPA como intermediario. |
Capacidades clave
|
Capacidad |
Detalle |
|
Velocidad de predicción |
Pronostica las fluctuaciones de la carga de trabajo en milisegundos. |
|
Velocidad de escalado |
Aprovisiona pods en segundos. |
|
Precisión |
Identifica las fluctuaciones de la carga de trabajo con una precisión superior al 95 %. |
|
Granularidad temporal |
Admite límites en la cantidad de pods con precisión de un minuto. |
Casos de uso
Cargas de trabajo periódicas: aplicaciones con ciclos de tráfico predecibles, como plataformas de streaming en vivo, educación en línea y videojuegos.
Gestión de tráfico repentino: despliegues que combinan una cantidad fija de pods base con escalado automático para absorber picos de tráfico inesperados en escenarios de negocio habituales.
Integración con la planificación de capacidad: sistemas que requieren recomendaciones de aprovisionamiento de pods. AHPA expone una API estándar de Kubernetes para que usted recupere los resultados de la predicción y los integre en sus propios sistemas.