Conceitos · Observabilidade

Resource Metrics Pipeline

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.

// FLUXO COMPLETO DE MÉTRICAS
📦
cAdvisordentro de cada kubelet

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.

🔌
kubelet /metrics/resourceendpoint HTTP em cada node

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).

📊
metrics-serverDeployment no kube-system

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).

↔️
HPA / VPA / kubectl topconsumidores da Metrics API

Consultam a Metrics API para tomar decisões: HPA escala réplicas, VPA ajusta requests, kubectl top mostra uso em tempo real.

Instalando metrics-server no EKS

VIA HELM (recomendado)
helm repo add metrics-server \
  https://kubernetes-sigs.github.io/metrics-server/

helm install metrics-server \
  metrics-server/metrics-server \
  -n kube-system
VIA MANIFEST OFICIAL
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
💡 No EKS, você também pode instalar o metrics-server como Add-on gerenciado: aws eks create-addon --cluster-name <name> --addon-name metrics-server

Diagnóstico quando HPA mostra <unknown>

1.kubectl top pods -n <ns>Se falhar → metrics-server não está instalado ou com problema
2.kubectl get pods -n kube-system | grep metrics-serverVerificar se o pod está Running
3.kubectl logs -n kube-system deployment/metrics-serverVer erros de conexão com os kubelets
4.kubectl describe hpa <name> -n <ns>Ver mensagem de erro específica do HPA
5.kubectl get pod <pod> -o yaml | grep resources -A8Confirmar que o pod tem resources.requests definidos

Stack completa de Observabilidade no EKS

O metrics-server é apenas para scaling. Para monitoramento real, você precisa de uma stack completa:

Métricas

Prometheus + Grafana ou AWS ADOT + CloudWatch

Logs

Fluentbit → CloudWatch Logs ou OpenSearch

Tracing

AWS X-Ray ou Jaeger + OpenTelemetry

Alertas

Alertmanager → PagerDuty / Slack / OpsGenie

Dashboards

Grafana com datasources K8s + CloudWatch

Node Metrics

Node Exporter (DaemonSet) → Prometheus