Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

Lo stato del cluster sotto la lente: monitorare le metriche cAdvisor/Kubelet su GKE

By Felipe MartinezJul 18, 20243 min read

Questa pagina è disponibile anche in English, Deutsch, Español, Français, 日本語 e Português.

Per ogni amministratore Kubernetes è fondamentale conoscere lo stato e le performance dei cluster. Per fortuna Google Kubernetes Engine (GKE) integra funzionalità native per raccogliere metriche preziose da cAdvisor e Kubelet, offrendo una visione chiara dei workloads containerizzati. In questo articolo vediamo come sfruttare queste metriche su GKE per capire più a fondo cosa accade all'interno del cluster.

Cosa sono le metriche cAdvisor e Kubelet?

cAdvisor e Kubelet sono due componenti essenziali dell'ecosistema Kubernetes. cAdvisor monitora in modo continuo l'uso delle risorse all'interno dei container: CPU, memoria e traffico di rete. Kubelet, invece, gestisce il ciclo di vita dei container all'interno del pod. Insieme, le metriche dei due componenti restituiscono una visione completa del consumo di risorse del cluster e dello stato dei container.

Perché monitorare le metriche cAdvisor/Kubelet con GKE?

Abilitare la raccolta delle metriche cAdvisor/Kubelet su GKE porta diversi vantaggi:

  • Maggiore visibilità sul cluster: insight più approfonditi sull'utilizzo delle risorse a livello di pod, per allocare e ottimizzare al meglio.
  • Troubleshooting più rapido: individuare colli di bottiglia o anomalie nei workloads containerizzati e risolvere i problemi in tempi più brevi.
  • Capacity planning proattivo: analizzare i pattern di utilizzo, storici e attuali, per anticipare le esigenze di scaling.

È un servizio gestito su GKE?

Oggi sì. A partire dalla versione GKE 1.29.3-gke.1093000 è disponibile l'opzione per raccogliere le metriche di kubelet e cAdvisor in modalità gestita: basta abilitarla nel cluster, purché esegua questa versione o una successiva.

E le versioni precedenti di Kubernetes?

Se non si è ancora sulla versione GKE 1.29.3-gke.1093000, è comunque possibile raccogliere queste metriche, ma la configurazione va eseguita manualmente.

Occorre abilitare lo scraping sull'oggetto OperatorConfig, valorizzando il campo 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

Tutti i dettagli sono disponibili a questo link.

Attenzione: se si stanno già inviando metriche cAdvisor/Kubelet a Google Cloud Managed Service for Prometheus, è necessario interromperne l'ingestione prima di abilitare le metriche cAdvisor/Kubelet gestite, per evitare metriche duplicate o errate.

Come attivare le metriche cAdvisor/Kubelet gestite su GKE

Ecco cosa serve sapere:

  • Compatibilità: la funzionalità è attualmente disponibile per i cluster GKE che eseguono la versione 1.29.3-gke.109300 o successiva.
  • Abilitazione della raccolta: la raccolta delle metriche cAdvisor/Kubelet può essere attivata dalla console di Google Cloud, dalla CLI gcloud o tramite Terraform. Il processo prevede l'attivazione dell'API di Google Kubernetes Engine e la selezione dei componenti cAdvisor/Kubelet da monitorare. In alternativa è possibile modificare la configurazione di Cloud Monitoring e includere le metriche di cAdvisor e kubelet.

GKE Edit Cloud Monitoring

  • Visualizzazione delle metriche: una volta abilitate, le metriche vengono raccolte da Google Cloud Managed Service for Prometheus e possono essere interrogate con PromQL o MQL. Nel Metrics Explorer di Google Cloud sono disponibili diversi target.

Google Cloud Metrics Explorer

Una metrica particolarmente utile è container_cpu_usage_seconds_total: consente di verificare il consumo di CPU del container e di impostare requests e limits di conseguenza, senza dover ricorrere al VPA come recommender. Ad esempio:

GCP Metrics explorer: container_cpu_usage_seconds_total

Le metriche cAdvisor/Kubelet su GKE permettono di capire molto meglio come vengono usate le risorse del cluster. Sono dati preziosi per ottimizzare le performance, individuare potenziali criticità e garantire il funzionamento efficiente delle applicazioni containerizzate. E con le metriche gestite di cAdvisor e Kubelet su GKE tutto diventa molto più semplice.

Risorse:

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 ancora non conosce DoiT International, vale davvero la pena scoprirci. Il nostro team è pronto ad ascoltarla e a comprendere le sue esigenze di cloud engineering. Composto esclusivamente da senior Engineers, è specializzato in consulenza cloud avanzata, progettazione architetturale e supporto al debugging. Ci contatti, ne parliamo insieme!