Réagir aux problèmes une fois 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. Elles aident é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 Cloud de Confiance by S3NS contenu, 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 d'état des conteneurs
- Métriques de performances et d'état 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 soupçonnez 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 du processeur.
| Métrique | Description | Importance pour le 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 être supérieure à 1. | Surveille le risque d'erreurs de mémoire saturée (OOM, Out Of Memory). |
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 fuites de mémoire potentielles ou le risque d'erreurs OOM. |
kubernetes.io/container/memory/page_fault_count |
Nombre de défauts de page, ventilés par types : majeurs et mineurs. | Indique une pression de mémoire importante. Les défauts de page majeurs 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 en cas de nombre de redémarrages élevé ou en augmentation. |
kubernetes.io/container/ephemeral_storage/used_bytes |
Utilisation de l'espace de 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 saturé. |
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 OOM. |
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. Elles sont essentielles pour comprendre l'état et la capacité globaux de vos nœuds, vous aider à déterminer si le nœud est en mauvais état ou sous pression, ou s'il dispose de suffisamment de mémoire pour planifier de nouveaux pods.
| Métrique | Description | Importance pour le 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 met à rude épreuve les ressources 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) |
État d'un nœud à partir du champ d'état du nœud. | Signale les conditions d'état du nœud telles que 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 l'éviction des pods en fournissant des avertissements concernant une utilisation élevée de l'espace de stockage éphémère. |
kubernetes.io/node/ephemeral_storage/inodes_free |
Nombre libre de nœuds d'index (inodes) sur le stockage éphémère local. | Surveille le nombre d'inodes libres. Le manque d'inodes peut interrompre les opérations, même si l'espace disque est disponible. |
kubernetes.io/node/interruption_count (BÊTA) |
Les interruptions sont des évictions système de l'infrastructure, tandis 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 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, tels que la mise en réseau et le stockage. Utilisez-les 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 saturés.
| Métrique | Description | Importance pour le dépannage |
|---|---|---|
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) |
Modification du nombre d'événements de 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 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 de 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 `Created` à `Ready`), 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 Cloud de Confiance console, accédez à la page Explorateur de métriques.
Dans le champ Métriques, sélectionnez ou saisissez la métrique que vous souhaitez inspecter.
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, procédez comme suit :
- Dans la liste Sélectionner une métrique, choisissez la métrique
kubernetes.io/container/memory/used_byteset 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 affiche 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é dans la façon de 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 la détection proactive des problèmes
Pour recevoir des notifications en cas de problème ou lorsque les 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 dépasse 80% pendant cinq minutes, procédez comme suit :
Dans la Cloud de Confiance console, 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 chaque minute.
Dans la liste Fonction de fenêtre glissante, sélectionnez moyenne.
Ces deux paramètres calculent la moyenne d'utilisation de la limite de processeur pour chaque conteneur chaque minute.
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.
- Pour 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 en savoir plus sur les autres façons de créer des alertes, consultez Présentation des alertes dans la documentation Cloud Monitoring.
Étape suivante
Découvrez comment accélérer le diagnostic avec Gemini Cloud Assist (page suivante de cette série).
Découvrez comment ces concepts sont appliqués dans le 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#kubernetes-enginecanal Slack pour 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.