Effectuer une surveillance proactive avec Cloud Monitoring


Réagir aux problèmes après qu'ils se sont produits peut entraîner des temps d'arrêt. Pour maintenir un système résilient dans Google Kubernetes Engine (GKE), vous devez identifier les problèmes potentiels avant qu'ils n'affectent vos utilisateurs.

Utilisez cette page pour surveiller de manière proactive votre environnement GKE avec Cloud Monitoring en suivant les indicateurs clés de performance, en visualisant les tendances et en configurant des alertes pour détecter les problèmes tels que l'augmentation des taux d'erreur ou les contraintes de ressources.

Ces informations sont importantes pour les administrateurs et opérateurs de plate-forme chargés de garantir l'état, la fiabilité et l'efficacité de l'environnement GKE. Il aide également les développeurs d'applications à comprendre les performances de leur application dans des conditions réelles, à détecter les régressions entre les déploiements et à obtenir des insights pour l'optimisation. Pour en savoir plus sur les rôles courants et les exemples de tâches que nous citons dans le contenu Google Cloud , consultez Rôles utilisateur et tâches courantes de GKE.

Examiner les métriques utiles

GKE envoie automatiquement un ensemble de métriques à Cloud Monitoring. Les sections suivantes listent certaines des métriques les plus importantes pour le dépannage :

Pour obtenir la liste complète des métriques GKE, consultez Métriques système GKE.

Métriques de performances et d'état des conteneurs

Commencez par ces métriques lorsque vous suspectez un problème avec une application spécifique. Elles vous aident à surveiller l'état de votre application, y compris à déterminer si un conteneur redémarre fréquemment, manque de mémoire ou est limité par les limites de processeur.

Métrique Description Importance de la résolution des problèmes
kubernetes.io/container/cpu/limit_utilization Fraction de la limite de processeur actuellement utilisée sur l'instance. Cette valeur peut être supérieure à 1, car un conteneur peut être autorisé à dépasser sa limite de processeur. Identifie la limitation du processeur. Des valeurs élevées peuvent entraîner une dégradation des performances.
kubernetes.io/container/memory/limit_utilization Fraction de la limite de mémoire actuellement utilisée sur l'instance. Cette valeur ne peut pas être supérieure à 1. Surveille le risque d'erreurs de mémoire insuffisante (OOM).
kubernetes.io/container/memory/used_bytes Mémoire réelle consommée par le conteneur en octets. Suit la consommation de mémoire pour identifier les éventuelles fuites de mémoire ou le risque d'erreurs de mémoire insuffisante.
kubernetes.io/container/memory/page_fault_count Nombre de défauts de page, ventilés par types : majeurs et mineurs. Indique une forte sollicitation de la mémoire. Les défauts de page majeurs signifient que la mémoire est lue à partir du disque (permutation), même si les limites de mémoire ne sont pas atteintes.
kubernetes.io/container/restart_count Nombre de redémarrages du conteneur. Met en évidence les problèmes potentiels tels que les plantages d'applications, les erreurs de configuration ou l'épuisement des ressources en raison d'un nombre élevé ou croissant de redémarrages.
kubernetes.io/container/ephemeral_storage/used_bytes Utilisation du stockage éphémère local, en octets. Surveille l'utilisation du disque temporaire pour éviter l'éviction des pods en raison d'un stockage éphémère complet.
kubernetes.io/container/cpu/request_utilization Fraction des ressources processeur demandées en cours d'utilisation sur l'instance. Cette valeur peut être supérieure à 1, car l'utilisation peut dépasser la demande. Identifie les demandes de processeur surprovisionnées ou sous-provisionnées pour vous aider à optimiser l'allocation des ressources.
kubernetes.io/container/memory/request_utilization Fraction des ressources mémoire demandées en cours d'utilisation sur l'instance. Cette valeur peut être supérieure à 1, car l'utilisation peut dépasser la demande. Identifie les demandes de mémoire surprovisionnées ou sous-provisionnées pour améliorer la planification et éviter les erreurs de mémoire insuffisante.

Métriques de performances et d'état des nœuds

Examinez ces métriques lorsque vous devez diagnostiquer des problèmes liés à l'infrastructure GKE sous-jacente. Ces métriques sont essentielles pour comprendre l'état et la capacité globale de vos nœuds. Elles vous aident à déterminer si un nœud est défaillant ou sous pression, ou s'il dispose de suffisamment de mémoire pour planifier de nouveaux pods.

Métrique Description Importance de la résolution des problèmes
kubernetes.io/node/cpu/allocatable_utilization Fraction du processeur allouable actuellement en cours d'utilisation sur l'instance. Indique si la somme de l'utilisation des pods met à rude épreuve les ressources de processeur disponibles du nœud.
kubernetes.io/node/memory/allocatable_utilization Fraction de la mémoire allouable actuellement utilisée sur l'instance. Cette valeur ne peut pas être supérieure à 1, car l'utilisation ne peut pas dépasser la quantité de mémoire allouable en octets. Suggère que le nœud manque de mémoire pour planifier de nouveaux pods ou pour que les pods existants fonctionnent, en particulier lorsque les valeurs sont élevées.
kubernetes.io/node/status_condition (BÊTA) Condition d'un nœud à partir du champ de condition de l'état du nœud. Indique l'état de santé des nœuds, par exemple Ready, MemoryPressure ou DiskPressure.
kubernetes.io/node/ephemeral_storage/used_bytes Nombre d'octets de stockage éphémère local utilisés par le nœud. Aide à éviter les échecs de démarrage ou les expulsions de pods en fournissant des avertissements sur l'utilisation élevée du stockage éphémère.
kubernetes.io/node/ephemeral_storage/inodes_free Nombre d'inodes libres sur le stockage éphémère local. Surveille le nombre d'inodes libres. Un manque de nœuds d'index peut interrompre les opérations, même si de l'espace disque est disponible.
kubernetes.io/node/interruption_count (BÊTA) Les interruptions sont des évictions système de l'infrastructure, alors que le client en a le contrôle. Cette métrique correspond au nombre actuel d'interruptions par type et par motif. Explique pourquoi un nœud peut disparaître de manière inattendue en raison d'évictions système.

Métriques de performances et d'état des pods

Ces métriques vous aident à résoudre les problèmes liés à l'interaction d'un pod avec son environnement, comme la mise en réseau et le stockage. Utilisez ces métriques lorsque vous devez diagnostiquer des pods qui démarrent lentement, examiner des problèmes potentiels de connectivité réseau ou gérer de manière proactive le stockage pour éviter les échecs d'écriture dus à des volumes pleins.

Métrique Description Importance de la résolution des problèmes
kubernetes.io/pod/network/received_bytes_count Nombre cumulé d'octets reçus par le pod sur le réseau. Identifie les activités réseau inhabituelles (élevées ou faibles) qui peuvent indiquer des problèmes d'application ou de réseau.
kubernetes.io/pod/network/policy_event_count (BÊTA) Variation du nombre d'événements liés aux règles de réseau observés dans le plan de données. Identifie les problèmes de connectivité causés par les règles réseau.
kubernetes.io/pod/volume/utilization Fraction du volume en cours d'utilisation par l'instance. Cette valeur ne peut pas être supérieure à 1, car l'utilisation ne peut pas dépasser l'espace total disponible pour le volume. Permet de gérer de manière proactive l'espace de volume en envoyant un avertissement lorsque l'utilisation élevée (proche de 1) peut entraîner des échecs d'écriture.
kubernetes.io/pod/latencies/pod_first_ready (BÊTA) Latence de démarrage de bout en bout du pod (de l'état "Créé" à l'état "Prêt"), y compris les extractions d'images. Diagnostique les pods qui mettent du temps à démarrer.

Visualiser les métriques avec l'explorateur de métriques

Pour visualiser l'état de votre environnement GKE, créez des graphiques basés sur des métriques avec l'explorateur de métriques.

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

  1. Dans la console Google Cloud , accédez à la page Explorateur de métriques.

    Accéder à l'explorateur de métriques

  2. Dans le champ Métriques, sélectionnez ou saisissez la métrique que vous souhaitez examiner.

  3. Affichez les résultats et observez les tendances au fil du temps.

Par exemple, pour examiner la consommation de mémoire des pods dans un espace de noms spécifique, vous pouvez procéder comme suit :

  1. Dans la liste Sélectionner une métrique, sélectionnez la métrique kubernetes.io/container/memory/used_bytes, puis cliquez sur Appliquer.
  2. Cliquez sur Ajouter un filtre, puis sélectionnez namespace_name.
  3. Dans la liste Valeur, sélectionnez l'espace de noms que vous souhaitez examiner.
  4. Dans le champ Agrégation, sélectionnez Somme > pod_name, puis cliquez sur OK. Ce paramètre affiche une ligne de série temporelle distincte pour chaque pod.
  5. Cliquez sur Enregistrer le graphique.

Le graphique obtenu vous montre l'utilisation de la mémoire pour chaque pod au fil du temps, ce qui peut vous aider à identifier visuellement les pods dont la consommation de mémoire est inhabituellement élevée ou en pic.

L'explorateur de métriques offre une grande flexibilité pour construire les métriques que vous souhaitez afficher. Pour en savoir plus sur les options avancées de l'explorateur de métriques, consultez Créer des graphiques avec l'explorateur de métriques dans la documentation Cloud Monitoring.

Créer des alertes pour détecter les problèmes de manière proactive

Pour recevoir des notifications en cas de problème ou lorsque des métriques dépassent certains seuils, configurez des règles d'alerte dans Cloud Monitoring.

Par exemple, pour configurer une règle d'alerte qui vous avertit lorsque la limite d'utilisation du processeur du conteneur dépasse 80 % pendant cinq minutes, procédez comme suit :

  1. Dans la console Google Cloud , accédez à la page Alertes.

    Accéder à la page "Alertes"

  2. Cliquez sur Créer une règle.

  3. Dans la zone Sélectionner une métrique, filtrez sur CPU limit utilization, puis sélectionnez la métrique suivante : kubernetes.io/container/cpu/limit_utilization.

  4. Cliquez sur Appliquer.

  5. Laissez le champ Ajouter un filtre vide. Ce paramètre déclenche une alerte lorsqu'un cluster dépasse votre seuil.

  6. Dans la section Transformer les données, procédez comme suit :

    1. Dans la liste Fenêtre glissante, sélectionnez 1 minute. Ce paramètre signifie que Google Cloud calcule une valeur moyenne chaque minute.
    2. Dans la liste Fonction de fenêtrage glissante, sélectionnez moyenne.

      Ces deux paramètres calculent la moyenne de l'utilisation de la limite de processeur pour chaque conteneur toutes les minutes.

  7. Cliquez sur Suivant.

  8. Dans la section Configurer l'alerte, procédez comme suit :

    1. Pour Type de condition, sélectionnez Seuil.
    2. Pour Déclencheur d'alerte, sélectionnez À chaque infraction de série temporelle.
    3. Pour Position du seuil, sélectionnez Au-dessus du seuil.
    4. Dans le champ Valeur de seuil, saisissez 0.8. Cette valeur représente le seuil de 80 % que vous souhaitez surveiller.
    5. Cliquez sur Options avancées.
    6. Dans la liste Période de nouveau test, sélectionnez 5 min. Ce paramètre signifie que l'alerte ne se déclenche que si l'utilisation du processeur reste supérieure à 80 % pendant une période continue de cinq minutes, ce qui réduit les fausses alertes dues à de brefs pics.
    7. Dans le champ Nom de la condition, attribuez un nom descriptif à la condition.
    8. Cliquez sur Suivant.
  9. Dans la section Configurer les notifications et finaliser l'alerte, procédez comme suit :

    1. Dans la liste Canaux de notification, sélectionnez le canal sur lequel vous souhaitez recevoir l'alerte. Si vous n'avez pas de canal, cliquez sur Gérer les canaux de notification pour en créer un.
    2. Dans le champ Nom de la règle d'alerte, attribuez à la règle un nom clair et descriptif.
    3. Conservez les valeurs par défaut dans les autres champs.
    4. Cliquez sur Suivant.
  10. Vérifiez votre règle. Si tout semble correct, cliquez sur Créer une règle.

Pour découvrir d'autres façons de créer des alertes, consultez la présentation des alertes dans la documentation Cloud Monitoring.

Étapes suivantes