cAdvisor/Kubelet

Le Kubelet expose des métriques sur lui-même ainsi que des métriques cAdvisor sur les conteneurs s'exécutant sur son nœud.

Cloud Monitoring propose une collection gérée prête à l'emploi de métriques cAdvisor/Kubelet, qui constitue une alternative à la configuration de cette intégration. L'option de collecte entièrement gérée fournit un ensemble de métriques évalué et organisé, qui est configuré par défaut dans les nouveaux clusters.

L'intégration décrite dans ce document propose toutes les métriques cAdvisor. Nombre d'entre elles vous seront potentiellement inutiles, et vous voudrez probablement les filtrer. L'intégration est disponible sur Google Kubernetes Engine et les autres environnements Kubernetes. L'ensemble géré de métriques cAdvisor/Kubelet a été organisé afin de ne fournir que les métriques les plus utiles, et n'est disponible que pour GKE. Pour en savoir plus, consultez la section Package : métriques cAdvisor/Kubelet.

Si vous configurez la collecte de métriques cAdvisor comme décrit dans ce document, cette configuration va remplacer la configuration cAdvisor gérée par GKE. La configuration décrite dans ce document active un sur-ensemble des métriques cAdvisor gérées.

Lorsque vous utilisez l'approche décrite dans ce document, au lieu d'utiliser une configuration PodMonitoring personnalisée, vous pouvez configurer une collecte gérée pour définir un scraping automatique des métriques cAdvisor et Kubelet, en modifiant le fichier OperatorConfig. Vous pouvez installer des fichiers manifestes en les copiant dans un fichier local, puis en exécutant la commande kubectl apply -f FILE_NAME. Vous pouvez également installer des fichiers manifestes à l'aide de Terraform.

  1. Ouvrez la ressource OperatorConfig pour la modifier :

    kubectl -n gmp-public edit operatorconfig config
    
  2. Ajoutez la section collection suivante, affichée en gras, à la ressource :

    apiVersion: monitoring.googleapis.com/v1
    kind: OperatorConfig
    metadata:
      namespace: gmp-public
      name: config
    collection:
      kubeletScraping:
        interval: 30s
    
  3. Enregistrez le fichier et fermez l'éditeur.

Après un court laps de temps, les points de terminaison des métriques Kubelet seront récupérés et les métriques seront disponibles pour interrogation dans le service géré pour Prometheus.

Le scraping de Kubelet est fourni avec certains filtres par défaut, et vous pouvez ajouter des filtres supplémentaires à la section collection de la ressource OperatorConfig, comme illustré ci-dessous. La section de configuration filter.matchOneOf possède la même sémantique que les paramètres match[] pour la fédération Prometheus.

L'exemple suivant filtre les métriques commençant par container_foo ou container_bar :

collection:
  filter:
    matchOneOf:
    - '{__name__!~"container_foo.*|container_bar.*"}'

Vous pouvez également utiliser ce filtre de collecte OperatorConfig à des fins de débogage. Cela peut s'avérer utile, par exemple pour désactiver temporairement la collecte d'une métrique spécifique dans votre cluster sans modifier la ressource PodMonitoring.

Conseils pour les configurations avancées de cAdvisor

Si vous déployez vous-même cAdvisor ou fournissez une configuration avancée à votre Kubelet avec cAdvisor, sachez que des étiquettes supplémentaires peuvent être associées à l'aide des paramètres cAdvisor avancés.

Évitez surtout d'associer des étiquettes de conteneur ou des variables d'environnement Kubernetes à vos métriques. Si vous le faites, contrôlez rigoureusement ces étiquettes en utilisant un format de liste d'autorisation (par exemple, en utilisant la section metricRelabeling de PodMonitoring).

Contrôler le nombre d'étiquettes ajoutées à vos métriques peut vous aider à éviter de dépasser la limite du nombre d'étiquettes.