Configurer Cloud Operations pour GKE

Google Kubernetes Engine (GKE) inclut une intégration à Cloud Monitoring et Cloud Logging. 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. Cette intégration fournit également un tableau de bord GKE sophistiqué pour observer vos clusters.

Cette page explique comment effectuer les opérations suivantes :

  • Créer un cluster et configurer Cloud Operations pour GKE

  • Indiquer si vous souhaitez collecter les journaux d'application ou non

  • Désactiver Cloud Monitoring et Cloud Logging pour un cluster

Avant de commencer

  • Vérifiez que vous êtes le propriétaire du projet contenant votre cluster.

  • Vérifiez que vous avez activé l'API Cloud Logging.

Journaux disponibles

Vous pouvez choisir d'envoyer ou non les journaux de votre cluster GKE vers Cloud Logging. 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.

Découvrez les tarifs de Cloud Logging, y compris les bonnes pratiques et les outils permettant d'optimiser les coûts de journalisation.

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

Source de journal Activée par défaut lors de la création d'un cluster ? Valeur --logging Journaux collectés
Aucun Non 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 Oui 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"
Charge de travail Oui WORKLOAD Tous les journaux générés par des conteneurs non-système s'exécutant sur des nœuds utilisateur.

Métriques disponibles

Vous pouvez choisir d'envoyer ou non les métriques de votre cluster GKE à Cloud Monitoring. Si vous choisissez d'envoyer des métriques à Cloud Monitoring, vous devez envoyer des métriques système et éventuellement envoyer des métriques supplémentaires.

Obtenez plus d'informations sur les tarifs de Cloud Monitoring, y compris sur les métriques non facturables.

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

Source Activée par défaut lors de la création d'un cluster ? Valeur --monitoring Métriques collectées
Aucun Non 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.
Système Oui SYSTEM Métriques des composants système essentiels requises pour les fonctionnalités Kubernetes Consultez la liste complète de ces métriques Kubernetes.
Charge de travail Non WORKLOAD Activez un pipeline entièrement géré capable de collecter des métriques de type Prometheus exposées par n'importe quelle charge de travail GKE. Vous devez configurer les métriques à collecter en déployant une ressource personnalisée PodMonitor.

Configurer la compatibilité des fonctionnalités de surveillance et de 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 page Créer un cluster.

CONSOLE

  1. Accédez à la page Clusters GKE de votre projet. Le bouton suivant vous y emmène :

    Accéder à la page "Clusters Kubernetes"

  2. Cliquez sur Create Cluster (Créer le cluster).

  3. Dans le volet de navigation, sous Cluster, cliquez sur Fonctionnalités.

  4. Sous Opérations, sélectionnez les journaux et les métriques que vous souhaitez collecter.

    • Pour les nouveaux clusters, Cloud Logging et Cloud Monitoring sont activés par défaut.

    • Pour désactiver Cloud Logging, décochez la case Activer Cloud Logging.

    • Pour désactiver Cloud Monitoring, décochez la case Activer Cloud Monitoring.

  5. Cliquez sur Create (Créer).

GCLOUD

Créez votre cluster à l'aide de gcloud :

  1. Ouvrez une fenêtre de terminal avec le SDK Cloud et gcloud installés. L'une des méthodes consiste à utiliser Cloud Shell :

  2. Dans Cloud Console, activez Cloud Shell.

    Activer Cloud Shell

    En bas de la fenêtre de Cloud Console, une session Cloud Shell démarre et affiche une invite de ligne de commande. Cloud Shell est un environnement shell dans lequel le SDK Cloud est déjà installé (y compris l'outil de ligne de commande gcloud), et dans lequel des valeurs sont déjà définies pour votre projet actuel. L'initialisation de la session peut prendre quelques secondes.

  3. Pour les nouveaux clusters, Cloud Logging et Cloud Monitoring sont activés par défaut. Pour créer votre cluster, exécutez la commande suivante.

    gcloud container clusters create [CLUSTER_NAME] \
      --zone=[ZONE] \
      --project=[PROJECT_ID]
    

    Dans l'expression précédente, [CLUSTER_NAME] est le nom de votre cluster, [ZONE] est la zone de calcul du cluster, et [PROJECT_ID] est l'ID du projet Google Cloud (pas son nom).

    1. Vous pouvez également configurer les journaux envoyés à Cloud Logging en transmettant une liste de valeurs séparées par des virgules à l'option --logging de la commande create. Pour ne collecter aucun journal, transmettez --logging=NONE. Pour collecter les journaux système et de charge de travail, transmettez --logging=SYSTEM,WORKLOAD. Pour ne collecter que les journaux système, transmettez --logging=SYSTEM. Exemple :

      gcloud container clusters create [CLUSTER_NAME] \
        --zone=[ZONE] \
        --project=[PROJECT_ID] \
        --logging=SYSTEM
      
    2. De même, vous pouvez configurer les métriques envoyées à Cloud Monitoring en transmettant une liste de valeurs séparées par une virgule à l'option --monitoring de la commande create. Pour ne collecter aucune métrique, transmettez --monitoring=NONE. Pour collecter des métriques système, transmettez --monitoring=SYSTEM. Exemple :

      gcloud container clusters create [CLUSTER_NAME] \
        --zone=[ZONE] \
        --project=[PROJECT_ID] \
        --monitoring=SYSTEM
      

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.

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 Google Cloud Console, cliquez sur le nom de votre cluster :

    Accéder à la page "Clusters Kubernetes"

  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. Accédez à la page GKE Clusters Kubernetes du projet :

    Accéder à la page "Clusters Kubernetes"

  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 Modifier à côté de Cloud Logging ou Cloud Monitoring.

  4. Dans la boîte de dialogue qui s'affiche, sélectionnez les journaux ou les métriques à envoyer à Cloud Logging ou Cloud Monitoring.

  5. 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.

  1. Ouvrez une fenêtre de terminal avec le SDK Cloud et gcloud installés. L'une des méthodes consiste à utiliser Cloud Shell :

  2. Dans Cloud Console, activez Cloud Shell.

    Activer Cloud Shell

    En bas de la fenêtre de Cloud Console, une session Cloud Shell démarre et affiche une invite de ligne de commande. Cloud Shell est un environnement shell dans lequel le SDK Cloud est déjà installé (y compris l'outil de ligne de commande gcloud), et dans lequel des valeurs sont déjà définies pour votre projet actuel. L'initialisation de la session peut prendre quelques secondes.

  3. Si vous ne l'avez pas encore fait, définissez les valeurs par défaut de votre cluster dans le SDK Cloud :

    gcloud config set project [PROJECT_ID]
    
  4. Configurez les journaux envoyés à Cloud Logging en transmettant une liste de valeurs séparées par des virgules à l'option --logging de la commande gcloud container clusters update. Consultez la liste complète des sources de journaux disponibles. Par exemple, pour collecter les journaux système et de charge de travail, transmettez --logging=SYSTEM,WORKLOAD. Pour ne collecter que les journaux système, transmettez --logging=SYSTEM. Ou, pour ne collecter aucun journal, transmettez --logging=NONE:

        gcloud container clusters update [CLUSTER_NAME] \
          --zone=[ZONE] \
          --logging=NONE
    
  5. Configurez les métriques envoyées à Cloud Monitoring en transmettant une liste de valeurs séparées par une virgule à l'option --monitoring de la commande gcloud container clusters update. Consultez la liste complète des sources de métriques disponibles. Par exemple, pour collecter des métriques système, transmettez --monitoring=SYSTEM. Ou, pour ne pas collecter de métriques, transmettez --monitoring=NONE:

        gcloud container clusters update [CLUSTER_NAME] \
          --zone=[ZONE] \
          --monitoring=NONE
    

Paramètres de configuration obsolètes

Si vous utilisiez auparavant les anciens paramètres de configuration pour configurer la compatibilité de la journalisation et de la surveillance pour votre cluster GKE, ces paramètres sont obsolètes. Le tableau ci-dessous présente les paramètres de configuration équivalents qui remplacent les indicateurs obsolètes.

Ancienne configuration Anciens arguments create Anciens arguments update Nouveaux arguments create et update
Désactivé --no-enable-stackdriver-kubernetes --no-enable-stackdriver-kubernetes --logging=NONE
--monitoring=NONE
Surveillance du système uniquement (Logging désactivé) --enable-stackdriver-kubernetes
--no-enable-cloud-logging
--logging-service=none
--monitoring-service=monitoring.googleapis.com/kubernetes
--logging=NONE
--monitoring=SYSTEM
Journalisation du système et de la charge de travail uniquement (Monitoring désactivé) --enable-stackdriver-kubernetes
--no-enable-cloud-monitoring
--logging-service=logging.googleapis.com/kubernetes
--monitoring-service=none
--logging=SYSTEM,WORKLOAD
--monitoring=NONE
Journalisation et surveillance du système uniquement (bêta) --enable-logging-monitoring-system-only --enable-logging-monitoring-system-only --logging=SYSTEM
--monitoring=SYSTEM
Journalisation et surveillance du système et de la charge de travail --enable-stackdriver-kubernetes --enable-stackdriver-kubernetes --logging=SYSTEM,WORKLOAD
--monitoring=SYSTEM

Étape suivante

  • Pour en savoir plus sur les coûts associés à Cloud Logging et Cloud Monitoring, consultez la page Tarifs.

  • Découvrez comment utiliser Prometheus, un outil de surveillance souvent employé avec Kubernetes.