Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

Au cœur de la santé de vos clusters : surveiller les métriques cAdvisor/Kubelet sur GKE

By Felipe MartinezJul 18, 20243 min read

Cette page est également disponible en English, Deutsch, Español, Italiano, 日本語 et Português.

Pour tout administrateur Kubernetes, comprendre la santé et les performances de ses clusters est essentiel. Heureusement, Google Kubernetes Engine (GKE) intègre nativement des fonctionnalités permettant de collecter de précieuses métriques depuis cAdvisor et Kubelet, offrant une visibilité fine sur vos workloads conteneurisés. Cet article explique comment exploiter ces métriques avec GKE pour mieux comprendre le fonctionnement interne de vos clusters.

Que sont les métriques cAdvisor et Kubelet ?

cAdvisor et Kubelet sont des composants essentiels de l'écosystème Kubernetes. cAdvisor surveille en continu l'utilisation des ressources au sein des conteneurs : CPU, mémoire et réseau. Kubelet, de son côté, gère le cycle de vie des conteneurs au sein d'un pod. Combinées, les métriques de ces composants offrent une vue d'ensemble de la consommation des ressources et de l'état de santé des conteneurs de votre cluster.

Pourquoi surveiller les métriques cAdvisor/Kubelet avec GKE ?

Activer la collecte des métriques cAdvisor/Kubelet dans GKE présente plusieurs avantages :

  • Visibilité accrue sur le cluster : obtenez une vue plus fine de l'utilisation des ressources sur l'ensemble de vos pods, pour une meilleure allocation et une optimisation plus poussée.
  • Dépannage facilité : identifiez les goulots d'étranglement ou les anomalies au sein de vos workloads conteneurisés et résolvez les incidents plus rapidement.
  • Planification proactive de la capacité : analysez les tendances d'utilisation des ressources, passées et actuelles, pour anticiper vos besoins en scalabilité.

Est-ce un service managé sur GKE ?

À ce jour, oui ! Depuis la version GKE 1.29.3-gke.1093000, vous pouvez collecter les métriques de Kubelet et cAdvisor de manière managée. Il suffit de l'activer sur un cluster exécuté avec cette version ou une version ultérieure.

Qu'en est-il des versions antérieures de Kubernetes ?

Si vous n'êtes pas encore sur la version GKE 1.29.3-gke.1093000, vous pouvez tout de même collecter ces métriques, mais la configuration doit se faire manuellement.

Il faut activer le scraping sur l'objet OperatorConfig en incluant le champ 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

Plus de détails ici.

Avertissement : si vous ingérez déjà des métriques cAdvisor/Kubelet dans Google Cloud Managed Service for Prometheus, vous devez impérativement arrêter cette ingestion avant d'activer les métriques cAdvisor/Kubelet managées, sous peine de vous retrouver avec des métriques en double ou erronées.

Activer les métriques cAdvisor/Kubelet managées dans GKE

Voici l'essentiel à retenir :

  • Compatibilité : cette fonctionnalité est disponible pour les clusters GKE exécutant la version 1.29.3-gke.109300 ou ultérieure.
  • Activation de la collecte : vous pouvez activer la collecte des métriques cAdvisor/Kubelet depuis la console Google Cloud, la CLI gcloud ou Terraform. La démarche consiste à activer l'API Google Kubernetes Engine et à sélectionner les composants cAdvisor/Kubelet à surveiller. Vous pouvez aussi modifier votre configuration Cloud Monitoring pour y inclure les métriques cAdvisor et Kubelet.

Modifier Cloud Monitoring sur GKE

  • Consultation des métriques : une fois activées, les métriques sont collectées par Google Cloud Managed Service for Prometheus et interrogeables via PromQL ou MQL. Plusieurs cibles sont visibles dans le Metrics Explorer de Google Cloud.

Google Cloud Metrics Explorer

La métrique container_cpu_usage_seconds_total est particulièrement utile : elle permet de vérifier l'utilisation CPU des conteneurs afin de définir les requests et limits CPU en conséquence, sans recourir au VPA en mode recommander. Par exemple :

GCP Metrics Explorer : container_cpu_usage_seconds_total

En exploitant les métriques cAdvisor/Kubelet dans GKE, vous obtenez une compréhension approfondie de l'utilisation des ressources de votre cluster. Ces données précieuses vous permettent d'optimiser les performances, d'identifier les problèmes potentiels et d'assurer le bon fonctionnement de vos applications conteneurisées. Et avec les métriques cAdvisor et Kubelet managées de GKE, tout cela devient bien plus simple.

Ressources :

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

Si vous ne connaissez pas encore DoiT International, c'est le moment de nous découvrir. Notre équipe est à votre écoute pour cerner vos besoins en cloud engineering. Composée exclusivement d'Engineers seniors, elle est spécialisée dans le conseil cloud avancé, la conception d'architectures et le debugging. Contactez-nous, échangeons !