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 les 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 Cloud de Confiance by S3NS , 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 :
- Métriques de performances et indicateurs de santé des conteneurs
- Métriques de performances et indicateurs de santé des nœuds
- Métriques de performances et d'état des pods
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. Ces métriques vous aident à surveiller l'état de votre application, y compris à détecter si un conteneur redémarre fréquemment, manque de mémoire insuffisante ou est limité par les limites du processeur.
| Métrique | Description | Importance du dépannage |
|---|---|---|
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 dépasser 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. | Suivez la consommation de mémoire pour identifier les fuites de mémoire potentielles ou les risques 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 erreurs de page majeures signifient que la mémoire est lue à partir du disque (échange), 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 par 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 les évictions de pods dues à un stockage éphémère plein. |
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 requêtes 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 sur les performances et l'é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 du dépannage |
|---|---|---|
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 sollicite 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. | Indique 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) |
État d'un nœud à partir du champ de condition d'é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. | Permet d'éviter les échecs de démarrage ou les évictions de pods en fournissant des avertissements concernant une utilisation élevée du stockage éphémère. |
kubernetes.io/node/ephemeral_storage/inodes_free |
Nombre d'inodes (nœuds d'index) libres sur le stockage éphémère local. | Surveille le nombre d'inodes libres. Un manque d'inodes 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 d'infrastructure par le système alors que le client contrôle cette infrastructure. 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 du système. |
Métriques de performances et indicateurs de santé des pods
Ces métriques vous aident à résoudre les problèmes liés à l'interaction d'un pod avec son environnement, comme le réseau et le stockage. Utilisez ces métriques lorsque vous devez diagnostiquer des pods qui démarrent lentement, examiner les 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 du dépannage |
|---|---|---|
kubernetes.io/pod/network/received_bytes_count |
Nombre cumulé d'octets reçus par le pod sur le réseau. | Identifie une activité réseau inhabituelle (élevée ou faible) pouvant indiquer des problèmes d'application ou de réseau. |
kubernetes.io/pod/network/policy_event_count (BÊTA) |
Modification du nombre d'événements de règle de réseau observés dans le plan de données. | Identifie les problèmes de connectivité causés par les règles de 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 une gestion proactive de l'espace du volume en avertissant 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 démarrent lentement. |
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 :
Dans la console Cloud de Confiance , accédez à la page Explorateur de métriques.
Dans le champ Métriques, sélectionnez ou saisissez la métrique que vous souhaitez inspecter.
Consultez 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 :
- Dans la liste Sélectionner une métrique, choisissez la métrique
kubernetes.io/container/memory/used_bytes, puis cliquez sur Appliquer. - Cliquez sur Ajouter un filtre, puis sélectionnez namespace_name.
- Dans la liste Valeur, sélectionnez l'espace de noms que vous souhaitez examiner.
- 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.
- Cliquez sur Enregistrer le graphique.
Le graphique obtenu indique 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 de processeur du conteneur est supérieure à 80% pendant cinq minutes, procédez comme suit :
Dans la console Cloud de Confiance , accédez à la page Alertes :
Cliquez sur Créer une règle.
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.Cliquez sur Appliquer.
Laissez le champ Ajouter un filtre vide. Ce paramètre déclenche une alerte lorsqu'un cluster dépasse votre seuil.
Dans la section Transformer les données, procédez comme suit :
- Dans la liste Fenêtre glissante, sélectionnez 1 minute. Ce paramètre signifie que Cloud de Confiance calcule une valeur moyenne toutes les minutes.
Dans la liste Fonction de fenêtrage glissant, sélectionnez moyenne.
Ces deux paramètres calculent la moyenne de l'utilisation de la limite de processeur pour chaque conteneur toutes les minutes.
Cliquez sur Suivant.
Dans la section Configurer l'alerte, procédez comme suit :
- Pour Type de condition, sélectionnez Seuil.
- Sous Déclencheur d'alerte, sélectionnez À chaque infraction de série temporelle.
- Pour Position du seuil, sélectionnez Au-dessus du seuil.
- Dans le champ Valeur du seuil, saisissez
0.8. Cette valeur représente le seuil de 80% que vous souhaitez surveiller. - Cliquez sur Options avancées.
- Dans la liste Fenêtre 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 alarmes dues à de brefs pics.
- Dans le champ Nom de la condition, attribuez un nom descriptif à la condition.
- Cliquez sur Suivant.
Dans la section Configurer les notifications et finaliser l'alerte, procédez comme suit :
- 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.
- Dans le champ Nom de la règle d'alerte, attribuez un nom clair et descriptif à la règle.
- Conservez les valeurs par défaut dans les autres champs.
- Cliquez sur Suivant.
Examinez votre règle et, si tout semble correct, cliquez sur Créer une règle.
Pour découvrir d'autres façons de créer des alertes, consultez Aperçu des alertes dans la documentation Cloud Monitoring.
Étapes suivantes
Consultez Accélérer le diagnostic avec Gemini Cloud Assist (page suivante de cette série).
Découvrez comment ces concepts s'appliquent dans l'exemple de scénario de dépannage.
Pour obtenir des conseils sur la résolution de problèmes spécifiques, consultez les guides de dépannage de GKE.
Si vous ne trouvez pas de solution à votre problème dans la documentation, consultez Obtenir de l'aide pour bénéficier d'une assistance supplémentaire, y compris des conseils sur les sujets suivants :
- Ouvrir une demande d'assistance en contactant Cloud Customer Care.
- Obtenir de l'aide de la communauté en posant des questions sur Stack Overflow et en utilisant le tag
google-kubernetes-enginepour rechercher des problèmes similaires. Vous pouvez également rejoindre le canal Slack#kubernetes-enginepour obtenir une assistance supplémentaire de la communauté. - Signaler des problèmes ou demander des fonctionnalités à l'aide de l'outil public de suivi des problèmes.