Configurer la journalisation et la surveillance pour GKE

Google Kubernetes Engine (GKE) offre des intégrations pour Cloud Logging et Cloud Monitoring.

Cette intégration vous permet de surveiller vos clusters GKE en cours d'exécution, de gérer vos journaux système et de débogage, et d'analyser les performances de votre système à l'aide de fonctionnalités de profilage et de traçage avancées.

Les journaux de sécurité, y compris les journaux d'audit de base, sont disponibles pour GKE et la plupart des autres services Google Cloud, même lorsque Cloud Logging n'est pas activé pour un cluster GKE. Pour en savoir plus, consultez la page Journaux d'audit Cloud.

Cette page explique comment effectuer les opérations suivantes :

  • Créer un cluster et configurer Cloud Logging et Cloud Monitoring

  • Sélectionnez les journaux et les métriques à collecter.

Pour les clusters GKE Autopilot, vous ne pouvez pas désactiver l'intégration de Cloud Logging et Cloud Monitoring.

Avant de commencer

Avant de commencer, effectuez les tâches suivantes :

  • Activez l'API Google Kubernetes Engine.
  • Activer l'API Google Kubernetes Engine
  • Si vous souhaitez utiliser Google Cloud CLI pour cette tâche, installez puis initialisez gcloud CLI. Si vous avez déjà installé gcloud CLI, assurez-vous de disposer de la dernière version en exécutant la commande gcloud components update.
  • Vérifiez que vous êtes le propriétaire du projet contenant votre cluster.

  • Vérifiez que vous avez activé l'API Cloud Logging. Vous pouvez vérifier l'état de l'API Cloud Logging depuis la page de présentation.

Journaux et métriques

Vous pouvez choisir d'envoyer ou non les journaux et les métriques de votre cluster GKE vers Cloud Logging et Cloud Monitoring. Les sections suivantes décrivent les journaux et les métriques disponibles, ainsi que les journaux et les métriques activés par défaut au moment de la création du cluster.

Journaux disponibles

Si vous choisissez d'envoyer des journaux à Cloud Logging, vous devez envoyer des journaux système. Vous pouvez également envoyer des journaux à partir de sources supplémentaires.

Le tableau suivant indique les valeurs acceptées pour l'option --logging pour les commandes create et update.

Source de journal Valeur --logging Journaux collectés
Aucune NONE Aucun journal envoyé à Cloud Logging. Aucun agent de collecte de journaux n'est installé dans le cluster. Cette valeur n'est pas acceptée pour les clusters GKE Autopilot.
Système SYSTEM Collecte les journaux des éléments suivants :
  • Tous les pods s'exécutant dans les espaces de noms kube-system, istio-system, knative-serving, gke-system et config-management-system
  • Les services principaux non conteneurisés, y compris l'environnement d'exécution docker/containerd, kubelet, kubelet-monitor, node-problem-detector et kube-container-runtime-monitor
  • La sortie des ports série du nœud, si les métadonnées de l'instance de VM serial-port-logging-enable sont définies sur "true"

Collecte également les événements Kubernetes. Cette valeur est obligatoire pour tous les types de clusters.

Charges de travail WORKLOAD Tous les journaux générés par des conteneurs non-système s'exécutant sur des nœuds utilisateur. Cette valeur est activée par défaut, mais facultative pour tous les types de clusters.
Serveur d'API API_SERVER Tous les journaux générés par kube-apiserver. Cette valeur est facultative pour tous les types de clusters.
Programmeur SCHEDULER Tous les journaux générés par kube-scheduler. Cette valeur est facultative pour tous les types de clusters.
Gestionnaire de contrôleurs CONTROLLER_MANAGER Tous les journaux générés par kube-controller-manager. Cette valeur est facultative pour tous les types de clusters.

Métriques disponibles

Si vous choisissez d'envoyer des métriques à Cloud Monitoring, vous devez envoyer des métriques système et avez également la possibilité d'envoyer des métriques supplémentaires.

Le tableau suivant indique les valeurs acceptées pour l'option --monitoring pour les commandes create et update.

Source Valeur --monitoring Métriques collectées
Aucune NONE Aucune métrique envoyée à Cloud Monitoring. Aucun agent de collecte de métriques n'est installé dans le cluster. Cette valeur n'est pas acceptée pour les clusters GKE Autopilot.
Image SYSTEM Métriques des composants système essentiels requises pour Kubernetes. Pour obtenir la liste complète des métriques, consultez la page Métriques Kubernetes.
Serveur d'API API_SERVER Métriques de kube-apiserver. Pour obtenir la liste complète des métriques, consultez la page Métriques du serveur d'API.
Programmeur SCHEDULER Métriques de kube-scheduler. Pour obtenir la liste complète des métriques, consultez la section Métriques du programmeur.
Gestionnaire de contrôleurs CONTROLLER_MANAGER Métriques de kube-controller-manager. Pour obtenir la liste complète des métriques, consultez la section Métriques du gestionnaire de contrôleurs.
Volume persistant (stockage) STORAGE Métriques de stockage provenant de kube-state-metrics. Inclut les métriques pour les volumes persistants et les revendications de volume persistant. Pour obtenir la liste complète des métriques, consultez la page Métriques de stockage.
Pod POD Métriques de pod provenant de kube-state-metrics. Pour obtenir la liste complète des métriques, consultez la page Métriques de pod.
Déploiement DEPLOYMENT Métriques de déploiement provenant de kube-state-metrics. Pour obtenir la liste complète des métriques, consultez la page Métriques de déploiement.
StatefulSet STATEFULSET Métriques StatefulSet provenant de kube-state-metrics. Pour obtenir la liste complète des métriques, consultez la page Métriques StatefulSet.
DaemonSet DAEMONSET Métriques DaemonSet provenant de kube-state-metrics. Pour obtenir la liste complète des métriques, consultez la page Métriques DaemonSet.
HorizonalPodAutoscaler HPA Métriques HPA provenant de kube-state-metrics. Consultez la liste complète des métriques HorizonalPodAutoscaler.
cAdvisor CADVISOR Métriques cAdvisor du package de métriques cAdvisor/Kubelet. Pour obtenir la liste complète des métriques, consultez la section Métriques cAdvisor.
Kubelet KUBELET Métriques Kubelet de cAdvisor/Kubelet. Pour obtenir la liste complète des métriques, consultez le package de métriques. Métriques Kubelet.

Journaux et métriques activés par défaut

Lorsque vous créez un cluster GKE sur Google Cloud, certains journaux et métriques sont activés par défaut lors de la création du cluster.

  • Les journaux système et les métriques sont activés pour tous les types de clusters et ne peuvent pas être désactivés.
  • Les journaux de charge de travail sont activés par défaut pour tous les clusters Autopilot, mais peuvent être désactivés. Nous vous déconseillons de désactiver les journaux de charge de travail en raison de leur impact sur la compatibilité.

Vous pouvez choisir de désactiver les journaux et les métriques par défaut lors de la création du cluster ou après la création du cluster.

Configurer la surveillance et la journalisation pour un nouveau cluster

Les instructions de création d'un cluster figurant dans cette section ne portent que sur les options relatives à Cloud Logging et à Cloud Monitoring. Pour obtenir des instructions complètes sur la création d'un cluster GKE, consultez la documentation sur la création d'un cluster Autopilot.

Pour configurer manuellement la journalisation et la surveillance lors de la création d'un cluster GKE, procédez comme suit :

Console

Pour un cluster Autopilot :

  1. Dans le volet de navigation de la page de création de cluster Autopilot, cliquez sur Paramètres avancés.

    Créer un cluster Autopilot

  2. Dans la liste Opérations, sélectionnez les journaux et les métriques que vous souhaitez collecter.

    • Dans la liste Composants de Cloud Logging, sélectionnez les composants à partir desquels vous souhaitez collecter les journaux.

    • Dans la liste Composants de Cloud Monitoring, sélectionnez les composants à partir desquels vous souhaitez collecter des métriques.

    Les clusters Autopilot utilisent toujours les bonnes pratiques de Google pour la collecte de la télémétrie, ce qui signifie que la journalisation du système et des charges de travail ainsi que la surveillance du système sont toujours activées.

  3. Cliquez sur Créer.

Terraform

  • Pour configurer la collecte de journaux et de métriques à l'aide de Terraform, accédez aux blocs logging_config et monitoring_config dans le registre Terraform pour google_container_cluster. L'activation de la collecte de journaux à partir du serveur d'API, du programmeur et du gestionnaire de contrôleurs nécessite le fournisseur Terraform pour Google Cloud version 4.44.0 ou ultérieure.

  • Pour obtenir des informations générales sur l'utilisation de Google Cloud avec Terraform, consultez la page Terraform avec Google Cloud.

Configurer la surveillance et la journalisation pour un cluster existant

La section suivante explique comment modifier l'intégration Cloud Logging et Cloud Monitoring pour un cluster GKE existant.

Modifier la compatibilité des fonctionnalités de surveillance et de journalisation, et modifier la version Kubernetes de votre cluster sont des actions distinctes. Si vous changez la version Kubernetes de votre cluster, cela ne modifie pas la compatibilité configurée de Monitoring et Logging.

Quelle compatibilité de Monitoring et Logging mon cluster utilise-t-il ?

Pour afficher les paramètres d'intégration de Cloud Logging et Cloud Monitoring pour votre cluster, procédez comme suit :

  1. Dans la console Cloud Console, accédez à la page des clusters Kubernetes.

    Accéder à la page Clusters Kubernetes

    Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Kubernetes Engine.

  2. Dans le panneau Informations détaillées de votre cluster, consultez l'état de Cloud Logging et de Cloud Monitoring.

Modifier le cluster

Pour modifier les paramètres d'intégration de Cloud Logging ou Cloud Monitoring pour un cluster existant, procédez comme suit :

Console

  1. Dans la console Cloud Console, accédez à la page des clusters Kubernetes.

    Accéder à la page Clusters Kubernetes

    Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Kubernetes Engine.

  2. Cliquez sur le nom de votre cluster.

  3. Pour modifier les journaux envoyés à Cloud Logging ou les métriques envoyées à Cloud Monitoring, cliquez sur le bouton Modifier situé en regard de Cloud Logging ou Cloud Monitoring.

  4. Cliquez sur Enregistrer.

gcloud

Les instructions gcloud suivantes concernent la mise à niveau de la compatibilité des fonctionnalités de surveillance et de journalisation de votre cluster à l'aide de la commande gcloud container clusters update. Notez que vous utilisez la commande update, et non la commande upgrade.

Terraform

  • Pour configurer la collecte de journaux et de métriques à l'aide de Terraform, accédez aux blocs logging_config et monitoring_config dans le registre Terraform pour google_container_cluster. L'activation de la collecte de journaux à partir du serveur d'API, du programmeur et du gestionnaire de contrôleurs nécessite le fournisseur Terraform pour Google Cloud version 4.44.0 ou ultérieure.

  • Pour obtenir des informations générales sur l'utilisation de Google Cloud avec Terraform, consultez la page Terraform avec Google Cloud.

Étapes suivantes