Ir al contenido

Horizontal Pod Autoscaler

El Horizontal Pod Autoscaler (HPA) escala automáticamente el número de pods en Kubernetes según CPU, memoria o métricas personalizadas.

¿Qué es el Horizontal Pod Autoscaler?

El Horizontal Pod Autoscaler (HPA) es un controlador de Kubernetes que ajusta automáticamente el número de pods en un Deployment, ReplicaSet o StatefulSet según la carga actual. Cuando la utilización de CPU aumenta, se inician nuevos pods; cuando la carga disminuye, se eliminan los pods sobrantes. Así solo pagas por la capacidad que realmente necesitas.

¿Cómo funciona el HPA?

El HPA verifica las métricas actuales a intervalos regulares (cada 15 segundos por defecto) y las compara con los valores objetivo definidos. Basándose en la relación entre valores reales y objetivo, calcula el número óptimo de pods y escala en consecuencia.

Métricas soportadas

  • Utilización de CPU (la más utilizada)
  • Consumo de memoria
  • Métricas personalizadas (por ejemplo, solicitudes por segundo, longitud de cola)
  • Métricas externas (por ejemplo, de Prometheus o Datadog)

Configurar el HPA

La configuración del HPA se realiza mediante manifiestos de Kubernetes o comandos kubectl. Defines el recuento mínimo y máximo de pods junto con las métricas objetivo. Para el escalado basado en CPU, tus pods necesitan resource requests definidos para que el HPA pueda calcular la utilización relativa.

Estrategias de escalado

  • API de comportamiento: desde Kubernetes 1.18, puedes configurar políticas de scale-up y scale-down por separado
  • Ventana de estabilización: previene el escalado constante arriba y abajo (flapping)
  • Retraso de scale-down: 5 minutos por defecto para evitar reducciones prematuras

HPA y Cluster Autoscaler

El HPA escala pods dentro de los nodos existentes. Cuando no queda capacidad de nodos disponible, el Cluster Autoscaler interviene y añade nuevos nodos. Juntos forman un sistema de autoescalado de dos niveles: HPA para la capa de aplicación, Cluster Autoscaler para la capa de infraestructura.

Mejores prácticas

  • Siempre define resource requests y limits para CPU y memoria
  • Comienza con límites de escalado conservadores y optimiza iterativamente
  • Usa métricas de Prometheus para escalado específico de aplicación
  • Combina HPA con Pod Disruption Budgets para alta disponibilidad
  • Monitorea los eventos de escalado mediante eventos de Kubernetes y monitorización

¿Por qué devRocks?

Configuramos tu HPA para que tus aplicaciones respondan de forma fiable a picos de carga y liberen recursos en períodos tranquilos. Nuestros expertos en Kubernetes definen las métricas y umbrales adecuados para un rendimiento óptimo con costes mínimos.

Preguntas frecuentes sobre Horizontal Pod Autoscaler

El HPA ya es útil a partir de dos pods. El número mínimo (minReplicas) debe cubrir la carga base, mientras que maxReplicas define el límite superior para picos de carga.

Sí, mediante la Custom Metrics API y External Metrics API puedes usar cualquier métrica, como solicitudes por segundo de Prometheus o longitudes de cola de RabbitMQ.

El HPA escala horizontalmente añadiendo o eliminando pods. El Vertical Pod Autoscaler (VPA) escala verticalmente ajustando las solicitudes de recursos de pods individuales.

Usa la API de comportamiento para configurar ventanas de estabilización y tasas de escalado. Una ventana de estabilización de scale-down de 5 minutos previene reducciones prematuras.

¿Te interesa?

Hablemos de tu proyecto. Te asesoramos sin compromiso.

Contactar

Última actualización: abril 2026