Service Configuration Question #019e3a4f
Quais ferramentas permitem que os HorizontalPodAutoscalers do Kubernetes usem métricas personalizadas geradas por aplicativos para acionar eventos de escalonamento?
Prometheus e o prometheus-adapter.
Graylog e graylog-autoscaler metrics.
Graylog e o kubernetes-adapter.
Grafana e Prometheus.
Official Explanation / Community Explanations
A combinação correta de ferramentas é Prometheus e o prometheus-adapter. O HorizontalPodAutoscaler (HPA) no Kubernetes pode escalar pods com base em métricas personalizadas, não apenas CPU/memória. Para usar métricas geradas por aplicativos, você precisa de um adaptador de métricas que implemente a API custom.metrics.k8s.io. O Prometheus coleta métricas dos aplicativos, e o prometheus-adapter (também conhecido como k8s-prometheus-adapter) expõe essas métricas para o servidor de API do Kubernetes, permitindo que o HPA as consulte.
Como funciona:
- O Prometheus coleta métricas personalizadas de endpoints de aplicativos (ex.: /metrics).
- O prometheus-adapter é configurado com regras para mapear métricas do Prometheus para métricas personalizadas do Kubernetes.
- O HPA referencia essas métricas personalizadas em sua configuração (ex.:
type: Objectoutype: Podscom um nome de métrica). - O HPA consulta a API custom.metrics.k8s.io, que o adaptador serve, e escala os pods de acordo.
Por que as opções incorretas estão erradas:
- Graylog é um sistema de gerenciamento de logs, não um coletor de métricas. Ele não fornece uma API de métricas para HPA. O graylog-autoscaler metrics e o kubernetes-adapter não são componentes padrão do Kubernetes.
- Grafana é uma ferramenta de visualização; ela não expõe métricas para a API do Kubernetes. Embora o Prometheus esteja correto, o Grafana sozinho não pode servir métricas personalizadas para o HPA.
Apenas o Prometheus com o prometheus-adapter permite que o HPA use métricas personalizadas de aplicativos para escalonamento.