Esta página descreve as formas como pode aumentar ou diminuir automaticamente o número de réplicas de uma determinada carga de trabalho através de métricas personalizadas, externas ou do Prometheus.
Por que motivo deve usar a escala automática com base em métricas
Considere uma aplicação que extrai tarefas de uma fila e as conclui. A aplicação pode ter um objetivo ao nível do serviço (SLO) para o tempo de processamento de uma tarefa ou para o número de tarefas pendentes. Se a fila estiver a aumentar, mais réplicas da carga de trabalho podem cumprir o SLO das cargas de trabalho. Se a fila estiver vazia ou diminuir mais rapidamente do que o esperado, pode poupar dinheiro executando menos réplicas, ao mesmo tempo que cumpre o SLO das cargas de trabalho.
Acerca das métricas personalizadas, do Prometheus e externas
Pode dimensionar cargas de trabalho com base em métricas personalizadas, do Prometheus ou externas.
É comunicada uma métrica personalizada a partir da sua aplicação em execução no Kubernetes. Para saber mais, consulte o artigo Métricas personalizadas e do Prometheus.
As métricas provenientes do Managed Service for Prometheus são consideradas um tipo de métrica personalizada.
Uma métrica externa é comunicada a partir de uma aplicação ou um serviço que não está a ser executado no seu cluster, mas cujo desempenho afeta a sua aplicação Kubernetes. Por exemplo, pode ajustar automaticamente a escala com base em qualquer métrica no Cloud Monitoring, incluindo o Pub/Sub ou o Dataflow. As métricas do Prometheus contêm dados emitidos a partir do seu cluster que pode usar para o dimensionamento automático. Para saber mais, consulte o artigo Métricas externas.
Métricas personalizadas e do Prometheus
Recomendamos que use o serviço gerido para Prometheus para criar e gerir métricas personalizadas. Pode usar a linguagem de consulta Prometheus (PromQL) para consultar todas as métricas no Monitoring. Para mais informações, consulte o artigo Ajuste de escala automático de pods horizontal para o Managed Service for Prometheus.
A sua aplicação pode comunicar uma métrica personalizada ao Monitoring. Pode configurar o Kubernetes para responder a estas métricas e dimensionar a sua carga de trabalho automaticamente. Por exemplo, pode dimensionar a sua aplicação com base em métricas como consultas por segundo, gravações por segundo, desempenho da rede, latência ao comunicar com uma aplicação diferente ou outras métricas adequadas para a sua carga de trabalho. Para mais informações, consulte o artigo Otimize o dimensionamento automático de agrupamentos com base em métricas.
Métricas externas
Se precisar de dimensionar a sua carga de trabalho com base no desempenho de uma aplicação ou um serviço fora do Kubernetes, pode configurar uma métrica externa. Por exemplo, pode ter de aumentar a capacidade da sua aplicação para carregar mensagens do Pub/Sub se o número de mensagens não entregues estiver a aumentar. A aplicação externa tem de exportar a métrica para uma instância de monitorização à qual o cluster possa aceder. A tendência de cada métrica ao longo do tempo faz com que o redimensionador automático horizontal de pods altere automaticamente o número de réplicas na carga de trabalho. Para mais informações, consulte o artigo Otimize o dimensionamento automático de agrupamentos com base em métricas.
Importe métricas para a monitorização
Para importar métricas para a Monitorização, pode:
- Configure o Managed Service for Prometheus (recomendado) ou
- Exporte métricas da aplicação através da API Cloud Monitoring.
O que se segue?
- Saiba como ativar o dimensionamento automático de pods horizontal para o Managed Service for Prometheus.
- Saiba mais sobre o redimensionamento automático horizontal de pods.
- Saiba mais acerca do dimensionamento automático vertical de pods.