Como métricas de CPU e memória fluem de cada container até o HPA. Entender este pipeline explica por que o HPA "não funciona" em muitos clusters.
Coleta métricas brutas de CPU, memória, disco e rede de cada container via cgroups do Linux. Já vem embutido no kubelet — sem instalação extra.
Expõe as métricas do cAdvisor via HTTP. O metrics-server consulta este endpoint de cada node periodicamente (a cada 15s por padrão).
Agrega as métricas de todos os nodes e expõe via Kubernetes Metrics API. É a ponte entre os dados brutos e os consumidores (HPA, VPA, kubectl top).
Consultam a Metrics API para tomar decisões: HPA escala réplicas, VPA ajusta requests, kubectl top mostra uso em tempo real.
helm repo add metrics-server \ https://kubernetes-sigs.github.io/metrics-server/ helm install metrics-server \ metrics-server/metrics-server \ -n kube-system
kubectl apply -f https://github.com/kubernetes-sigs/\ metrics-server/releases/latest/download/components.yaml # Verificar se está funcionando: kubectl top nodes kubectl top pods -A
aws eks create-addon --cluster-name <name> --addon-name metrics-serverkubectl top pods -n <ns>Se falhar → metrics-server não está instalado ou com problemakubectl get pods -n kube-system | grep metrics-serverVerificar se o pod está Runningkubectl logs -n kube-system deployment/metrics-serverVer erros de conexão com os kubeletskubectl describe hpa <name> -n <ns>Ver mensagem de erro específica do HPAkubectl get pod <pod> -o yaml | grep resources -A8Confirmar que o pod tem resources.requests definidosO metrics-server é apenas para scaling. Para monitoramento real, você precisa de uma stack completa:
Prometheus + Grafana ou AWS ADOT + CloudWatch
Fluentbit → CloudWatch Logs ou OpenSearch
AWS X-Ray ou Jaeger + OpenTelemetry
Alertmanager → PagerDuty / Slack / OpsGenie
Grafana com datasources K8s + CloudWatch
Node Exporter (DaemonSet) → Prometheus