Cloud Monitoring

Cette page explique comment utiliser Cloud Monitoring pour surveiller vos clusters Google Kubernetes Engine (GKE).

Aperçu

Monitoring vous permet de surveiller les signaux et de créer des opérations dans vos clusters GKE.

Cloud Monitoring contrôle les métriques système et les métriques personnalisées. Les métriques système sont des mesures liées à l'infrastructure du cluster, telles que l'utilisation du processeur ou de la mémoire. Les métriques personnalisées sont des métriques spécifiques de l'application que vous définissez vous-même, telles que le nombre total de sessions utilisateur actives ou de pages affichées.

Pour les métriques système, Cloud Monitoring crée un déploiement qui se connecte périodiquement à chaque nœud et recueille des métriques pour ses pods et conteneurs, puis les envoie à Monitoring.

Les métriques d'utilisation des ressources système sont collectées à partir des sources suivantes :

  • Processeur : container/cpu/usage_time
  • Mémoire : container/memory/bytes_used, collectée à partir de memory.usage_in_bytes dans cgroup
  • Mémoire récupérable : container/memory/bytes_used, collectée à partir du champ total_inactive_file de memory.stat
  • Mémoire non récupérable : mesurée selon la formule memory.usage_in_bytes – memory.total_inactive_file
  • Disque : container/disk/bytes_used

Pour obtenir la liste des autres métriques système collectées à partir de GKE, consultez la Liste des métriques.

Pour apprendre à configurer des métriques personnalisées, consultez la page Utiliser des métriques personnalisées ou suivez le tutoriel Procéder à un autoscaling des déploiements avec des métriques personnalisées.

Avant de commencer

Pour vous préparer à cette tâche, procédez comme suit :

  • Assurez-vous d'avoir activé l'API Google Kubernetes Engine.
  • Activer l'API Google Kubernetes Engine
  • Assurez-vous d'avoir installé le SDK Cloud.
  • Définissez votre ID de projet par défaut :
    gcloud config set project [PROJECT_ID]
  • Si vous travaillez avec des clusters zonaux, définissez votre zone de calcul par défaut :
    gcloud config set compute/zone [COMPUTE_ZONE]
  • Si vous utilisez des clusters régionaux, définissez votre région de calcul par défaut :
    gcloud config set compute/region [COMPUTE_REGION]
  • Mettez à jour gcloud vers la dernière version :
    gcloud components update

Activer la surveillance

Vous pouvez soit créer un cluster sur lequel Monitoring est activé, soit activer Monitoring dans un cluster existant.

Les pools de nœuds de votre cluster (y compris le pool de nœuds par défaut) doivent être dotés du champ d'application Google Cloud approprié pour interagir avec Monitoring (https://www.googleapis.com/auth/monitoring). Lorsque vous créez un cluster avec surveillance, GKE définit automatiquement ce champ d'application. Toutefois, les clusters existants peuvent ne pas disposer des autorisations nécessaires.

Créer un cluster avec surveillance

gcloud

Lorsque vous créez un cluster, l'option --enable-cloud-monitoring est automatiquement spécifiée, ce qui active Monitoring dans le cluster.

Pour désactiver ce comportement par défaut, définissez l'option --no-enable-cloud-monitoring.

Console

  1. Dans Cloud Console, accédez à la page Kubernetes Engine > Clusters Kubernetes :

    Accéder à la page "Clusters Kubernetes"

  2. Cliquez sur Créer un cluster.

  3. Configurez le cluster selon vos besoins.

  4. Cliquez sur Options avancées. Assurez-vous que l'option Activer le service Stackdriver Monitoring est sélectionnée.

  5. Cliquez sur Créer.

Activer la surveillance pour un cluster existant

gcloud

Pour activer Monitoring pour un cluster existant, exécutez la commande suivante, en remplaçant [CLUSTER_NAME] par le nom du cluster.

gcloud beta container clusters update [CLUSTER_NAME] --monitoring-service monitoring.googleapis.com

Si vous avez créé initialement votre cluster sans surveillance et que vous souhaitez activer cette fonctionnalité après coup, il est possible que les pools de nœuds de ce cluster ne disposent pas du champ d'application Google Cloud nécessaire. Une solution de contournement possible consiste à créer un pool de nœuds présentant le même nombre de nœuds et doté du champ d'application requis, comme suit :

gcloud container node-pools create adjust-scope \
        --cluster [CLUSTER_NAME] \
        --num-nodes [NUM_NODES] \
        --scopes https://www.googleapis.com/auth/monitoring

Une fois ce pool de nœuds créé, il vous suffit de déplacer les pods existants vers le nouveau pool de nœuds correctement dimensionné pour pouvoir utiliser Monitoring. Pour plus d'informations, consultez l'article Updating VM scopes with zero downtime.

Console

Si vous avez créé initialement votre cluster sans surveillance et que vous souhaitez activer cette fonctionnalité après coup, il est possible que les pools de nœuds de ce cluster ne disposent pas du champ d'application Google Cloud nécessaire. Consultez la section gcloud avant celle-ci pour obtenir une solution de contournement.

  1. Dans Cloud Console, accédez à la page Kubernetes Engine > Clusters Kubernetes :

    Accéder à la page "Clusters Kubernetes"

  2. Cliquez sur Modifier.

  3. Définissez la valeur de la liste déroulante Stackdriver Monitoring sur Activé.

  4. Cliquez sur Save.

Étendre les métriques d'infrastructure

En plus des métriques d'application, les métriques personnalisées de Cloud Monitoring peuvent également utiliser des mesures de l'infrastructure de votre cluster non incluses dans les métriques système, telles que les E/S de disque. Vous pouvez déployer vos propres agents de surveillance de l'infrastructure pour collecter et transmettre ces métriques à Cloud Monitoring.

cAdvisor

Vous avez la possibilité de collecter des métriques à l'aide de cAdvisor, l'agent de surveillance Open Source utilisé dans Kubernetes. Vous pouvez utiliser prometheus-to-sd pour transférer ces métriques vers Cloud Monitoring.

Pour exécuter cAdvisor sur votre propre cluster, procédez comme suit :

  1. Clonez cAdvisor :

    git clone https://github.com/google/cadvisor.git
        cd cadvisor
        
  2. Suivez les instructions de cAdvisor DaemonSet pour installer kustomize. Si vous utilisez Cloud Shell, exécutez :

    go get github.com/kubernetes-sigs/kustomize
        
  3. Créez l'exemple d'espace de noms cAdvisor et DaemonSet, ce qui a pour effet d'exporter toutes les métriques de conteneur :

    kustomize build deploy/kubernetes/overlays/examples | kubectl apply -f -
        

    Les métriques Prometheus devraient maintenant s'afficher dans Cloud Monitoring sous la ressource gke_container.

  4. Suivez les instructions de l'outil cAdvisor kustomize pour modifier l'exemple fourni en fonction de vos besoins. Appliquez vos modifications via la commande suivante :

    kustomize build deploy/kubernetes/overlays/<my_custom_patches> | kubectl apply -f -
        

Afficher les métriques

Vous pouvez afficher les métriques dans Google Cloud Console.

Aperçu du cluster

Monitoring fournit un menu synthétique pour GKE. Ce menu rassemble des informations utiles sur vos clusters dans des tableaux de bord conviviaux.

Pour afficher le menu d'aperçu, procédez comme suit :

  1. Dans Cloud Console, accédez à Monitoring :

    Accéder à Monitoring

  2. Passez le pointeur sur Ressources, puis sélectionnez Kubernetes Engine.

  3. Sélectionnez votre cluster.

Le menu d'aperçu propose les tableaux de bord par défaut suivants :

  • Incidents : indique les cas de non-respect des règles d'alerte.
  • Événements : liste chronologique des événements de type anomalies, incidents, événements de cycle de vie, tags, stratégies IAM, déploiements, commentaires, mises à jour concernant le fournisseur cloud et mises à jour relatives à la gestion des utilisateurs, qui surviennent dans vos comptes cloud.
  • Utilisation du processeur : affiche les pourcentages d'utilisation du processeur par cluster.
  • E/S disque : affiche les débits d'E/S disque par cluster en kbit/s.
  • Trafic réseau : indique le débit de trafic réseau par cluster en kbit/s.
  • Pods : fournit la liste des pods et des nœuds (instances de VM Compute Engine) présents dans tous les espaces de noms. La sélection d'un pod ou d'un nœud ouvre l'aperçu pour cette ressource.

Pour en savoir plus sur l'affichage des métriques, consultez la documentation de Monitoring et la page Filtres Monitoring.

Tableaux de bord

Vous pouvez créer des tableaux de bord personnalisés pour les nœuds et les conteneurs GKE.

Pour créer un tableau de bord, procédez comme suit :

  1. Dans Cloud Console, accédez à Monitoring :

    Accéder à Monitoring

  2. Passez le pointeur sur Tableaux de bord, puis sélectionnez Créer un tableau de bord.

  3. Pour créer un tableau de bord, cliquez sur Ajouter un graphique.

  4. Dans le champ Titre, indiquez un nom pour le nouveau tableau de bord.

  5. Dans le champ Rechercher le type de ressource et la métrique, recherchez instance et/ou container, puis sélectionnez les métriques de votre choix.

  6. Dans le champ Type de métrique, saisissez les métriques souhaitées ou sélectionnez-les dans le menu de saisie automatique.

  7. Vous pouvez éventuellement utiliser le champ Filtre pour filtrer les entrées selon une certaine valeur, telle que l'application, le nom ou la version.

  8. Poursuivez la configuration du tableau de bord si nécessaire. Pour créer le tableau de bord, cliquez sur Enregistrer.

Explorateur de métriques

L'explorateur de métriques vous permet de sélectionner une métrique spécifique pour vos clusters et d'effectuer diverses agrégations.

Pour utiliser l'explorateur de métriques, procédez comme suit :

  1. Dans Cloud Console, accédez à Monitoring :

    Accéder à Monitoring

  2. Passez le pointeur sur Ressources, puis sélectionnez Explorateur de métriques.

  3. Dans le menu Rechercher le type de ressource et la métrique, saisissez gke_container dans le champ Type de ressource.

  4. Pour le champ Métrique, sélectionnez les métriques de votre choix.

  5. Utilisez éventuellement le menu Filtrer pour filtrer par ressource.

  6. Utilisez les options Agrégation pour effectuer une agrégation.

Bonnes pratiques

  • Alertes : Vous pouvez configurer des règles d'alerte afin d'être informé en cas d'événement suspect dans votre cluster.

Désactiver la surveillance

gcloud

Pour désactiver la fonctionnalité de surveillance pour un cluster existant, exécutez la commande suivante, en remplaçant [CLUSTER_NAME] par le nom du cluster.

gcloud beta container clusters update [CLUSTER_NAME] --monitoring-service none

Si vous exécutez Kubernetes Engine Monitoring dans votre cluster, vous devez désactiver à la fois la surveillance et la journalisation en utilisant gcloud beta pour définir les options suivantes dans votre cluster :

gcloud beta container clusters update [CLUSTER_NAME] --logging-service none --monitoring-service none

Console

  1. Dans Cloud Console, accédez à la page Kubernetes Engine > Clusters Kubernetes :

    Accéder à la page "Clusters Kubernetes"

  2. Cliquez sur Modifier.

  3. Définissez la valeur de la liste déroulante Stackdriver Monitoring sur Désactivé.

  4. Cliquez sur Save.

Étape suivante