En esta página se describen las formas en que puedes aumentar o disminuir automáticamente el número de réplicas de una carga de trabajo determinada mediante métricas personalizadas, externas o de Prometheus.
Por qué realizar un ajuste de escala automático según las métricas
Considera una aplicación que extrae tareas de una cola y las completa. Es posible que la aplicación tenga un objetivo de nivel de servicio (SLO) por tiempo para procesar una tarea o por la cantidad de tareas pendientes. Si la cola aumenta, más réplicas de la carga de trabajo podrían cumplir con el SLO de las cargas de trabajo. Si la cola está vacía o disminuye más rápido de lo esperado, podrías ahorrar dinero si ejecutas menos réplicas, a la vez que cumples con 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 informa una métrica personalizada de tu aplicación que se ejecuta en Kubernetes. Para obtener más información, consulta Métricas personalizadas y de Prometheus.
Las métricas que provienen de Managed Service para Prometheus se consideran un tipo de métrica personalizada.
Se informa una métrica externa de una aplicación o servicio que no se ejecuta en tu clúster, pero cuyo rendimiento afecta a tu aplicación de Kubernetes. Por ejemplo, puedes realizar un ajuste de escala automático en cualquier métrica de Cloud Monitoring, incluidos Pub/Sub o Dataflow. Las métricas de Prometheus contienen datos que se omiten de tu clúster y que puedes usar para realizar un ajuste de escala automático. Para obtener más información, consulta Métricas externas.
Métricas personalizadas y de Prometheus
Te recomendamos que uses el servicio administrado para Prometheus a fin de crear y administrar métricas personalizadas. Puedes usar el lenguaje de consulta de Prometheus (PromQL) para consultar todas las métricas en Monitoring. Si deseas obtener más información, consulta Ajuste de escala automático horizontal de Pod para Managed Service para Prometheus.
Tu aplicación puede informar una métrica personalizada a Monitoring. Puedes configurar Kubernetes para que responda a estas métricas y escale tu carga de trabajo de manera automática. Por ejemplo, puedes escalar tu aplicación en función de métricas como consultas por segundo, escrituras por segundo, rendimiento de la red, latencia cuando se comunica con una aplicación diferente y demás métricas que tengan sentido para tu carga de trabajo. Para obtener más información, consulta Expón métricas personalizadas para el ajuste de escala automático.
Como alternativa, puedes exponer métricas personalizadas (vista previa) y enviar las métricas de un pod o una carga de trabajo directamente a el escalador automático.
Métricas externas
Si necesitas escalar tu carga de trabajo en función del rendimiento de una aplicación o servicio fuera de Kubernetes, puedes configurar una métrica externa. Por ejemplo, es posible que debas aumentar la capacidad de tu aplicación para transferir mensajes de Pub/Sub si la cantidad de mensajes no entregados tiene una tendencia creciente. La aplicación externa debe exportar la métrica a una instancia de Monitoring a la que el clúster pueda acceder. La tendencia de cada métrica a lo largo del tiempo hace que Horizontal Pod Autoscaler cambie la cantidad de réplicas en la carga de trabajo automáticamente. Para obtener más información, consulta la muestra de HPA de Pub/Sub.
Importa métricas a Monitoring
Para importar métricas a Monitoring, puedes seguir estos pasos:
- Configura Managed Service para Prometheus (recomendado), o
- Exporta métricas desde la aplicación con la API de Cloud Monitoring.
¿Qué sigue?
- Obtén información para exponer métricas personalizadas para el ajuste de escala automático.
- Obtén más información sobre el escalador automático horizontal de Pods.
- Obtén información para configurar el escalado automático horizontal de Pods.
- Lee sobre el escalamiento de aplicaciones.
- Obtén más información sobre el escalador automático vertical de Pods.