En esta página se describen las formas en las que puedes aumentar o reducir automáticamente el número de réplicas de una carga de trabajo determinada mediante métricas personalizadas, externas o de Prometheus.
Por qué usar el autoescalado basado en métricas
Imagina una aplicación que extrae tareas de una cola y las completa. La aplicación puede tener un objetivo de nivel de servicio (SLO) para el tiempo de procesamiento de una tarea o para el número de tareas pendientes. Si la cola aumenta, es posible que más réplicas de la carga de trabajo cumplan el SLO de la carga de trabajo. Si la cola está vacía o disminuye más rápido de lo esperado, puedes ahorrar dinero ejecutando menos réplicas y, al mismo tiempo, cumplir el SLO de las cargas de trabajo.
Acerca de las métricas personalizadas, de Prometheus y externas
Puedes escalar cargas de trabajo en función de métricas personalizadas, de Prometheus o externas.
Se registra una métrica personalizada de tu aplicación que se ejecuta en Kubernetes. Para obtener más información, consulta el artículo Métricas personalizadas y de Prometheus.
Las métricas procedentes de Managed Service para Prometheus se consideran un tipo de métrica personalizada.
Una métrica externa se registra desde una aplicación o un servicio que no se ejecuta en tu clúster, pero cuyo rendimiento afecta a tu aplicación de Kubernetes. Por ejemplo, puedes autoescalar cualquier métrica de Cloud Monitoring, incluidas las de Pub/Sub o Dataflow. Las métricas de Prometheus contienen datos emitidos desde tu clúster que puedes usar para el escalado automático. Para obtener más información, consulta Métricas externas.
Métricas personalizadas y de Prometheus
Te recomendamos que uses Managed Service para Prometheus para crear y gestionar métricas personalizadas. Puedes usar el lenguaje de consulta de Prometheus (PromQL) para consultar todas las métricas de Monitoring. Para obtener más información, consulta Autoescalado horizontal de pods en Managed Service para Prometheus.
Tu aplicación puede registrar una métrica personalizada en Monitoring. Puedes configurar Kubernetes para que responda a estas métricas y escale tu carga de trabajo automáticamente. Por ejemplo, puedes escalar tu aplicación en función de métricas como las consultas por segundo, las escrituras por segundo, el rendimiento de la red, la latencia al comunicarse con otra aplicación u otras métricas que sean adecuadas para tu carga de trabajo. Para obtener más información, consulta Optimizar el autoescalado de pods en función de las métricas.
Métricas externas
Si necesitas escalar tu carga de trabajo en función del rendimiento de una aplicación o un servicio fuera de Kubernetes, puedes configurar una métrica externa. Por ejemplo, puede que tengas que aumentar la capacidad de tu aplicación para ingerir mensajes de Pub/Sub si el número de mensajes no entregados tiende a aumentar. La aplicación externa debe exportar la métrica a una instancia de Monitoring a la que pueda acceder el clúster. La tendencia de cada métrica a lo largo del tiempo hace que el autoescalador horizontal de pods cambie automáticamente el número de réplicas de la carga de trabajo. Para obtener más información, consulta Optimizar el autoescalado de pods en función de las métricas.
Importar métricas a Monitoring
Para importar métricas a Monitoring, puedes hacer lo siguiente:
- Configurar Managed Service para Prometheus (opción recomendada) o
- Exporta métricas de la aplicación mediante la API Cloud Monitoring.
Siguientes pasos
- Consulta cómo habilitar el autoescalado horizontal de pods en Managed Service para Prometheus.
- Consulta más información sobre el autoescalado de pods horizontal.
- Consulta más información sobre el autoescalado vertical de pods.