18 de março de 20264 min de leitura

Dominando métricas no Kubernetes: Estratégias para uma observabilidade eficaz

Sam Suthar

Cloud Native Computing Foundation

As métricas do Kubernetes são o termômetro do seu cluster. Mais do que números em um dashboard, elas representam a saúde da sua infraestrutura e o comportamento das aplicações que sustentam o core business da sua empresa. Sem uma estratégia clara de monitoramento, você fica cego diante de gargalos de performance e riscos de indisponibilidade que podem impactar diretamente o seu SLA.

Neste artigo, analisamos quais métricas são fundamentais, como coletá-las e de que forma essa telemetria deve orientar a tomada de decisão técnica em ambientes produtivos.

O que são métricas no Kubernetes?

As métricas no Kubernetes não são meros logs; elas são indicadores de performance do seu ecossistema. Elas fornecem visibilidade sobre o control plane, os nós e as workloads. Identificar padrões de anomalias nessas métricas permite que equipes de engenharia atuem de forma proativa, evitando que problemas de latência ou exaustão de recursos virem incidentes de crise.

Tipos de métricas no Kubernetes

Podemos categorizar as métricas em camadas, cada uma entregando um contexto diferente para o sucesso da operação.

Métricas do Cluster

O cluster é o ambiente global. Analisar estas métricas é um exercício fundamental de capacidade e eficiência.

1. Node CPU resource usage

Monitorar a utilização de CPU permite identificar se o seu ambiente está superdimensionado (desperdiçando budget de cloud, o que é um ponto crítico em FinOps) ou sobrecarregado, gerando throttling de containers.

2. Node memory usage

O gerenciamento de memória é sensível. Entender o working set memory e o RSS é vital para evitar o OOMKilled (Out Of Memory Killed) em seus pods. Se o consumo de memória toca o limite da máquina, o Kubernetes iniciará despejos (evictions) agressivos.

3. Node disk usage

O esgotamento de disco em um node é um cenário de falha crítica: o kubelet começará a remover pods para liberar espaço, o que pode derrubar serviços essenciais de forma inesperada.

Métricas de Node

Além dos recursos básicos, o foco deve estar na saúde da infraestrutura de execução.

1. Disk I/O e espaço disponível

O alto I/O pode transformar sua aplicação em uma garrafa de gargalo. Monitorar a latência de disco é essencial para aplicações com carga alta de banco de dados ou processamento de arquivos.

2. Network bandwidth usage

O tráfego de rede é frequentemente negligenciado. Gargalos aqui resultam em latência na comunicação entre pods e serviços, afetando a experiência do usuário final.

Métricas do Control Plane

O control plane é o cérebro do cluster. Se ele falha, o cluster para.

1. API server request latencies

Se a latência das chamadas à API aumenta, o tempo de deployment e a capacidade de autorrecuperação do cluster caem. É um indicador precoce de que o cluster atingiu um limite de densidade.

2. Scheduler queue length

Uma fila grande de pods "Pending" indica desbalanceamento de recursos ou falta de capacidade. Isso afeta diretamente a escabilidade horizontal da sua aplicação.

Métricas de Pod

Aqui reside a performance da aplicação propriamente dita. O foco deve ser na resiliência:

1. Pod Restart Count

Aumentos repentinos em restarts indicam problemas de configuração, vazamento de memória ou dependências mal respondidas (ex: falta de conexões com banco de dados).

2. Pending Pod Count

Monitorar pods pendentes é essencial para garantir a agilidade do seu pipeline de CI/CD.

3. Pod Status

Manter um monitoramento constante do status via kubectl get pods é o basilar, mas idealmente deve ser automatizado via alertas de observabilidade.

Screenshot do terminal listando pods e seus status.

Como coletar métricas no Kubernetes

O Kubernetes não armazena métricas nativamente com histórico longo. Você precisa de ferramentas robustas.

Metrics Server

É o básico para consumo de recursos em tempo real. Essencial para o funcionamento do Horizontal Pod Autoscaler (HPA).

kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml

Screenshot da instalação do Metrics Server.

Verificação via kubectl top nodes.

Verificação via kubectl top pods.

cAdvisor

Integrado ao kubelet, ele é a fonte primária de dados de containers que Prometheus costuma consumir.

Kube-State-Metrics

Indispensável. Ele foca no estado dos objetos no cluster (ex: quantos pods deveriam estar rodando versus quantos efetivamente estão). Instalação via Helm é o caminho recomendado para ambientes produtivos:

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm install kube-state-metrics prometheus-community/kube-state-metrics

Verificação do estado dos componentes do kube-state-metrics.

Conclusão

Monitorar métricas não é apenas instalar dashboards, é entender o comportamento do seu sistema sob carga. A observabilidade eficiente é o que separa empresas que crescem com sustentabilidade daquelas que convivem com a instabilidade crônica.


Artigo originalmente publicado por Sam Suthar, Middleware em Cloud Native Computing Foundation.

Gostou? Compartilhe:
Precisa de ajuda?Fale com nossos especialistas 👋
Avatar Walcew - Headset