Para todo administrador de Kubernetes, entender a saúde e o desempenho dos clusters é essencial. Felizmente, o Google Kubernetes Engine (GKE) traz recursos nativos para coletar métricas valiosas do cAdvisor e do Kubelet, oferecendo uma visão clara dos seus workloads em containers. Neste post, mostramos como tirar proveito dessas métricas no GKE para entender a fundo o que acontece dentro do seu cluster.
O que são as métricas do cAdvisor e do Kubelet?
O cAdvisor e o Kubelet são componentes essenciais do ecossistema Kubernetes. O cAdvisor monitora continuamente o uso de recursos dentro dos containers, como CPU, memória e rede. Já o Kubelet cuida do ciclo de vida dos containers em um pod. Juntas, as métricas desses componentes oferecem uma visão completa do consumo de recursos e da saúde dos containers no seu cluster.
Por que monitorar as métricas do cAdvisor/Kubelet no GKE?
Habilitar a coleta de métricas do cAdvisor/Kubelet no GKE traz várias vantagens:
- Mais visibilidade do cluster: tenha uma visão mais profunda do uso de recursos pelos seus pods, o que facilita a alocação e a otimização.
- Troubleshooting mais ágil: identifique gargalos ou anomalias nos seus workloads em containers e resolva problemas com mais rapidez.
- Planejamento de capacidade proativo: analise padrões históricos e atuais de uso para se antecipar às próximas necessidades de escala.
É um serviço gerenciado no GKE?
Hoje, sim! A partir da versão GKE 1.29.3-gke.1093000, você passa a ter a opção de coletar métricas do kubelet e do cAdvisor de forma gerenciada — basta habilitar no cluster que estiver rodando essa versão ou superior.
E nas versões anteriores do Kubernetes?
Se você ainda não está na versão 1.29.3-gke.1093000 do GKE, dá para coletar essas métricas, mas a configuração precisa ser feita manualmente.
Será preciso habilitar o scraping no objeto OperatorConfig, incluindo os campos collection.kubeletScraping.interval
kubectl -n gmp-public edit operatorconfig config
apiVersion: monitoring.googleapis.com/v1
kind: OperatorConfig
metadata:
namespace: gmp-public
name: config
collection:
kubeletScraping:
interval: 30s
apiVersion: monitoring.googleapis.com/v1
kind: OperatorConfig
metadata:
namespace: gmp-public
name: config
collection:
kubeletScraping:
interval: 30s
Mais detalhes aqui.
Atenção: se você já envia métricas do cAdvisor/Kubelet para o Google Cloud Managed Service for Prometheus, é preciso interromper essa ingestão antes de habilitar as métricas gerenciadas do cAdvisor/Kubelet, sob risco de gerar métricas duplicadas ou incorretas.
Como liberar as métricas gerenciadas do cAdvisor/Kubelet no GKE
Veja o que você precisa saber:
- Compatibilidade: esse recurso está disponível para clusters GKE rodando a versão 1.29.3-gke.109300 ou superior.
- Como habilitar a coleta de métricas: você pode habilitar a coleta de métricas do cAdvisor/Kubelet pelo console do Google Cloud, pela gcloud CLI ou via Terraform. O processo envolve ativar a API do Google Kubernetes Engine e selecionar os componentes específicos do cAdvisor/Kubelet que deseja monitorar. Também é possível editar a configuração do cloud monitoring e incluir as métricas do cAdvisor e do kubelet.

Edição do Cloud Monitoring no GKE
- Como visualizar as métricas: uma vez habilitadas, as métricas são coletadas pelo Google Cloud Managed Service for Prometheus e podem ser consultadas via PromQL ou MQL. Você verá vários targets no Metrics Explorer do Google Cloud.

Metrics Explorer do Google Cloud
Uma métrica bastante útil é a container_cpu_usage_seconds_total, que ajuda a verificar o uso de CPU pelo container e a definir requests e limits de CPU de forma adequada, sem precisar usar o VPA como recommender. Veja:

Metrics Explorer do GCP: container_cpu_usage_seconds_total
Ao aproveitar as métricas do cAdvisor/Kubelet no GKE, você ganha uma compreensão muito mais profunda do uso de recursos do seu cluster. Esses dados permitem otimizar o desempenho, identificar possíveis problemas e garantir o funcionamento eficiente das suas aplicações em containers. E, com as métricas gerenciadas do cAdvisor e do Kubelet no GKE, tudo isso ficou bem mais simples.
Recursos:
https://cloud.google.com/stackdriver/docs/managed-prometheus/exporters/kubelet-cadvisor
https://github.com/google/cadvisor
https://cloud.google.com/kubernetes-engine/docs/release-notes-new-features#June_07_2024
https://cloud.google.com/stackdriver/docs/managed-prometheus
Se você ainda não conhece a DoiT International, vale a pena dar uma olhada. Nosso time está pronto para conhecer você e suas necessidades de cloud engineering. Formada exclusivamente por Engineers sêniores, a DoiT é especializada em consultoria avançada em nuvem, design de arquitetura e apoio em debugging. Entre em contato e vamos conversar!