Gérer des métriques GKE

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Google Kubernetes Engine (GKE) facilite l'envoi de métriques à Cloud Monitoring. Une fois dans Cloud Monitoring, les métriques peuvent permettre de renseigner des tableaux de bord personnalisés, générer des alertes et créer des objectifs de niveau de service, ou elles peuvent être récupérés par des services de surveillance tiers à l'aide de l'API Monitoring.

G​K​E fournit plusieurs sources de métriques :

  • Métriques définies par le système : métriques issues des composants système essentiels, décrivant les ressources de bas niveau telles que le processeur, la mémoire et le stockage.
  • Managed Service pour Prometheus vous permet de surveiller vos charges de travail et d'envoyer des alertes à l'aide de Prometheus, sans avoir à gérer et faire fonctionner manuellement Prometheus à grande échelle.
  • Métriques du plan de contrôle : métriques exportées à partir de certains composants du plan de contrôle, tels que le serveur d'API et le programmeur.
  • Métriques liées aux charges de travail (obsolète) : métriques exposées par n'importe quelle charge de travail G​K​E (telle qu'une tâche cron ou un déploiement pour une application).

Métriques système

Lorsqu'un cluster est créé, G​K​E collecte par défaut certaines métriques émises par les composants système.

Vous pouvez choisir d'envoyer ou non les métriques de votre cluster G​K​E à Cloud Monitoring. Si vous choisissez d'envoyer des métriques à Cloud Monitoring, vous devez envoyer des métriques système.

Toutes les métriques G​K​E définies par le système sont ingérées dans Cloud Monitoring avec le préfixe kubernetes.io.

Tarifs

Cloud Monitoring ne facture pas l'ingestion de métriques système G K E. Pour en savoir plus, consultez la tarification Cloud Monitoring.

Configurer la collecte de métriques définies par le système

Pour activer la collecte de métriques définies par le système, transmettez la valeur SYSTEM à l'option --monitoring de la commande gcloud container clusters create ou gcloud container clusters update.

Pour désactiver la collecte de métriques définies par le système, utilisez la valeur NONE pour l'option --monitoring. Si la collecte de métriques définies par le système est désactivée, les informations de base telles que l'utilisation du processeur, de la mémoire et du disque ne sont pas disponibles pour un cluster dans l'onglet Observabilité ou la section G​K​E de la console Google Cloud. De plus, le tableau de bord G​K​E de Cloud Monitoring ne contient pas d'informations sur le cluster.

Consultez la section Configurer Cloud Operations pour GKE pour obtenir plus d'informations sur l'intégration de Cloud Monitoring à G​K​E.

Pour configurer la collecte de métriques système à l'aide de Terraform, consultez le bloc monitoring_config du registre Terraform pour google_container_cluster. Pour obtenir des informations générales sur l'utilisation de Google Cloud avec Terraform, consultez la page Terraform avec Google Cloud.

Liste des métriques définies par le système

Les métriques définies par le système incluent des métriques provenant des composants système essentiels pour les fonctionnalités principales de Kubernetes. Pour obtenir la liste de ces métriques, consultez Métriques système GKE.

Résoudre les problèmes liés aux métriques système

Si les métriques système ne sont pas disponibles dans Cloud Monitoring comme prévu, voici quelques étapes à suivre pour résoudre le problème.

Vérifier que l'agent de métriques dispose de suffisamment de mémoire

Dans la plupart des cas, l'allocation de ressources par défaut à l'agent de métriques GKE est suffisante. Toutefois, si le DaemonSet plante de manière répétée, vous pouvez vérifier le motif de l'arrêt à l'aide des instructions suivantes :

  1. Obtenez les noms des pods de l'agent de métriques GKE :

    kubectl get pods -n kube-system -l component=gke-metrics-agent
    

    Recherchez le pod ayant l'état CrashLoopBackOff.

    Le résultat ressemble à ce qui suit :

    NAME                    READY STATUS           RESTARTS AGE
    gke-metrics-agent-5857x 0/1   CrashLoopBackOff 6        12m
    
  2. Décrivez le pod dont l'état est CrashLoopBackOff :

    kubectl describe pod POD_NAME -n kube-system
    

    Remplacez POD_NAME par le nom du pod obtenu à l'étape précédente.

    Si le motif de l'arrêt du pod est OOMKilled, l'agent a besoin de mémoire supplémentaire.

    Le résultat ressemble à ce qui suit :

      containerStatuses:
      ...
      lastState:
        terminated:
          ...
          exitCode: 1
          finishedAt: "2021-11-22T23:36:32Z"
          reason: OOMKilled
          startedAt: "2021-11-22T23:35:54Z"
    
  3. Ajoutez un libellé de nœud temporaire au nœud hébergeant l'agent de métriques défaillant. Vous pouvez utiliser un libellé de nœud persistant ou temporaire.

    Pour créer un pool de nœuds avec un libellé persistant, exécutez la commande suivante :

    gcloud container node-pools update NODEPOOL_NAME \
     --cluster=CLUSTER_NAME \
     --node-labels=ADDITIONAL_MEMORY_NODE_LABEL \
     --zone ZONE
    

    Remplacez les éléments suivants :

    • NODEPOOL_NAME : nom du pool de nœuds.
    • CLUSTER_NAME : nom du cluster existant.
    • ADDITIONAL_MEMORY_NODE_LABEL : un des libellés de nœud de mémoire supplémentaires ; utilisez l'une des options suivantes :
      • Pour ajouter 10 Mo supplémentaires : cloud.google.com/gke-metrics-agent-scaling-level=10
      • Pour ajouter 20 Mo supplémentaires : cloud.google.com/gke-metrics-agent-scaling-level=20
    • ZONE : zone dans laquelle le cluster est exécuté.

    Vous pouvez également ajouter un libellé de nœud temporaire qui ne persistera pas après la mise à niveau à l'aide de la commande suivante :

    kubectl label node/NODE_NAME \
    ADDITIONAL_MEMORY_NODE_LABEL --overwrite
    

    Remplacez les éléments suivants :

    • NODE_NAME par le nom du nœud hébergeant l'agent de métriques concerné.
    • ADDITIONAL_MEMORY_NODE_LABEL : un des libellés de nœud de mémoire supplémentaires ; utilisez l'une des valeurs de l'exemple précédent.

Métriques du plan de contrôle

Vous pouvez configurer un cluster G K E pour envoyer certaines métriques émises par le serveur d'API Kubernetes, le programmeur et le gestionnaire de contrôleurs à Cloud Monitoring.

Exigences

L'envoi de métriques du plan de contrôle Kubernetes à Cloud Monitoring à Cloud Monitoring nécessite la version 1.22.13 ou ultérieure du plan de contrôle G K E et nécessite l'activation de la collecte de métriques système.

Configurer la collecte de métriques du plan de contrôle

Pour activer les métriques du plan de contrôle Kubernetes dans un cluster GKE existant, procédez comme suit :

Console

  1. Dans Google Cloud Console, accédez à la liste des clusters G​K​E :

    Accéder à la page "Clusters Kubernetes"

  2. Cliquez sur le nom de votre cluster.

  3. Sur la ligne intitulée Cloud Monitoring, cliquez sur l'icône Modifier.

  4. Dans la boîte de dialogue Modifier Cloud Monitoring qui s'affiche, vérifiez que l'option Activer Cloud Monitoring est sélectionnée.

  5. Dans le menu déroulant Composants sélectionnez les composants du plan de contrôle à partir desquels vous souhaitez collecter des métriques: Serveur d'API ,Programmeur ou Gestionnaire de contrôleurs.

  6. Cliquez sur OK.

  7. Cliquez sur Save Changes (Enregistrer les modifications).

gcloud

  1. Ouvrez une fenêtre de terminal avec Google Cloud SDK et Google Cloud CLI installés. L'une des méthodes consiste à utiliser Cloud Shell :

  2. Dans la console Google Cloud, activez Cloud Shell.

    Activer Cloud Shell

    En bas de la fenêtre de la console Google Cloud, une session Cloud Shell démarre et affiche une invite de ligne de commande. Cloud Shell est un environnement shell dans lequel Google Cloud CLI est déjà installé, et dans lequel des valeurs sont déjà définies pour votre projet actuel. L'initialisation de la session peut prendre quelques secondes.

  3. Transmettez une ou plusieurs des valeurs API_SERVER, SCHEDULER ou CONTROLLER_MANAGER à l'option --monitoring des commandes gcloud container clusters create ou gcloud container clusters update.

    Par exemple, pour collecter les métriques du serveur d'API, du programmeur et du gestionnaire de contrôleurs, exécutez la commande suivante :

    gcloud container clusters update [CLUSTER_ID] \
      --zone=[ZONE] \
      --project=[PROJECT_ID] \
      --monitoring=SYSTEM,API_SERVER,SCHEDULER,CONTROLLER_MANAGER
    

Terraform

Utiliser des métriques du plan de contrôle

Consultez la section Utiliser les métriques du plan de contrôle pour découvrir comment:

Tableaux de bord pour visualiser les métriques du plan de contrôle disponibles dans l'onglet Observabilité de GKE dans la console Google Cloud. Pour en savoir plus sur ces tableaux de bord, consultez la page Afficher les métriques d'observabilité.

Tarifs

Les métriques du plan de contrôle GKE utilisent Google Cloud Managed Service pour Prometheus pour ingérer des métriques dans Cloud Monitoring. Les frais liés à Cloud Monitoring pour l'ingestion de métriques de plan de travail GKE sont basés sur le nombre d'échantillons ingérés. Pour en savoir plus, consultez la tarification Cloud Monitoring.

Comprendre votre facture Monitoring

Pour identifier les métriques du plan de contrôle qui contiennent le plus grand nombre d'échantillons ingérés, utilisez la métrique monitoring.googleapis.com/collection/attribution/write_sample_count :

  1. Dans Google Cloud Console, sélectionnez Surveillance :

    Accéder à Monitoring

  2. Dans le volet de navigation "Surveillance", cliquez sur Explorateur de métriques.

  3. Dans le champ Métrique, sélectionnez monitoring.googleapis.com/collection/attribution/write_sample_count.

  4. Cliquez sur Ajouter un filtre.

  5. Dans le champ Libellé, sélectionnez attribution_dimension.

  6. Dans le champ Comparaison, sélectionnez = (equals).

  7. Dans le champ Valeur, saisissez cluster.

  8. Cliquez sur OK.

  9. Vous pouvez aussi filtrer uniquement suivant certaines métriques. En particulier, étant donné que les noms des métriques du serveur d'API incluent tous l'élément "apiserver" et que les noms des métriques du programmeur incluent tous l'élément "scheduler", vous pouvez vous restreindre aux métriques contenant ces chaînes :

    • Cliquez sur Ajouter un filtre.

    • Dans le champ Libellé, sélectionnez metric_type.

    • Dans le champ Comparaison, sélectionnez =~ (equals regex).

    • Dans le champ Valeur, saisissez .*apiserver.* ou .*scheduler.*.

    • Cliquez sur OK.

  10. Vous pouvez également regrouper le nombre d'échantillons ingérés suivant la région ou le projet GKE :

    • Cliquez sur Grouper par.

    • Assurez-vous que metric_type est sélectionné.

    • Pour regrouper les données par région G K E, sélectionnez emplacement.

    • Pour regrouper les données par projet, sélectionnez project_id.

    • Cliquez sur OK.

  11. Vous pouvez également regrouper le nombre d'échantillons ingérés suivant le nom du cluster GKE :

    • Cliquez sur Grouper par.

    • Pour regrouper les données par nom de cluster GKE, assurez-vous que les options attribution_dimension et attribution_id sont sélectionnées.

    • Cliquez sur OK.

  12. Triez la liste des métriques par ordre décroissant en cliquant sur l'en-tête de colonne Valeur au-dessus de la liste des métriques.

Ces étapes montrent les métriques présentant le taux d'échantillons le plus élevé ingéré dans Cloud Monitoring. Étant donné que les métriques de plan de contrôle G K E sont facturées en fonction du nombre d'échantillons ingérés, prêtez une attention particulière aux métriques dont le taux d'ingestion d'échantillons est le plus élevé.

Quotas

Les métriques du plan de contrôle consomment le quota "Time series ingestion requests per minute" (requêtes d'ingestion de séries temporelles par minute) de l'API Cloud Monitoring. Avant d'activer les métriques du plan de contrôle, vérifier votre utilisation maximale récente de ce quota. Si vous avez plusieurs clusters dans le même projet ou que vous approchez déjà de la limite de ce quota, vous pouvez demander une augmentation de la limite de quota avant d'activer les métriques du plan de contrôle.

Autres métriques

Outre les métriques système et les métriques de plan de contrôle décrites dans ce document, les métriques Istio sont également disponibles pour les clusters G K E.