Cloud Logging

Ce document explique comment GKE sur Azure s'intègre à Cloud Logging et comment accéder à vos journaux.

Présentation

GKE sur Azure est compatible avec Cloud Logging pour les charges de travail et les composants système exécutés sur le plan de contrôle et les nœuds de pool de nœuds.

GKE sur Azure inclut un agent de journalisation basé sur Fluentbit. Sur les nœuds du plan de contrôle, l'agent de journalisation s'exécute en tant que composant système. Sur les nœuds du pool de nœuds, il s'exécute en tant que Daemonset. Les données collectées par les agents Logging peuvent être gérées et supprimées comme n'importe quelle autre métrique ou n'importe quel élément de données de journal, comme décrit dans la documentation de Cloud Logging.

Quelles sont les données recueillies ?

GKE sur Azure journalise les informations suivantes :

  • Les journaux des composants système sur chacune des instances dupliquées du plan de contrôle.
  • Les journaux des services système sur chacun des nœuds du pool de nœuds.
  • Les journaux des charges de travail (facultatif).

Activer la journalisation de la charge de travail

Pour activer la journalisation des charges de travail, vous devez créer un cluster Kubernetes en utilisant la version 1.22 ou une version ultérieure.

Par défaut, lorsque vous créez un cluster GKE sur Azure, la journalisation du système est activée. Pour activer la journalisation de la charge de travail, vous devez créer un cluster avec l'indicateur --logging. Vous pouvez choisir d'activer la journalisation pour les composants système, les charges de travail, ou les deux.

Par exemple, pour activer la journalisation du système et de la charge de travail sur un nouveau cluster, suivez les instructions pour créer un cluster, mais incluez l'indicateur --logging dans votre commande gcloud :

gcloud container azure clusters create CLUSTER_NAME
...
--logging=SYSTEM,WORKLOAD

Sinon, suivez les instructions pour mettre à jour un cluster existant :

gcloud container azure clusters update CLUSTER_NAME
...
--logging=SYSTEM,WORKLOAD

Accéder à vos journaux

Vous pouvez accéder à vos journaux GKE sur Azure dans Cloud Logging de plusieurs façons :

  • Explorateur de journaux : vous pouvez afficher vos journaux directement à partir de l'explorateur de journaux en utilisant les filtres de journalisation pour sélectionner les ressources Kubernetes telles que le cluster, le nœud, l'espace de noms, le pod ou le conteneur.

  • Google Cloud CLI : à l'aide de la commande gcloud logging read, sélectionnez les journaux de cluster, de nœud, de pod et de conteneur appropriés.

Comprendre vos journaux

Un journal Cloud Logging est un ensemble d'entrées de journal. Chaque entrée de journal s'applique à un certain type de ressource de journalisation.

Types de ressources

Voici les types de ressources propres à GKE sur Azure :

Type de ressource Nom à afficher
k8s_control_plane_component Journaux des composants du plan de contrôle
k8s_node Journaux des pools de nœuds
k8s_container Journaux des conteneurs de charge de travail

Lorsque GKE sur Azure écrit les journaux de votre cluster, chaque entrée de journal inclut le type de ressource. Comprendre où les journaux apparaissent permet de les retrouver plus facilement lorsque vous en avez besoin.

Journaux du plan de contrôle

Les journaux du plan de contrôle utilisent le type de ressource k8s_control_plane_component. Il s'agit, entre autres, des journaux des composants système exécutés sur les instances dupliquées du plan de contrôle, tels que kube-apiserver.

Journaux de nœuds

Les journaux de nœuds appartiennent au type de ressource k8s_node. Il s'agit, entre autres, des journaux des composants système critiques exécutés sur les nœuds de calcul, tels que kubelet et containerd.

Journaux d'applications système

Les journaux des applications système appartiennent au type de ressource k8s_container. Il s'agit, entre autres, des journaux des pods installés sur les nœuds de calcul par GKE sur Azure. Plus précisément, les conteneurs s'exécutant dans les espaces de noms suivants sont inclus :

  • kube-system
  • gke-connect
  • gke-system
  • gmp-system
  • asm-user-auth
  • cnrm-system
  • config-management-system
  • gatekeeper-system
  • gmp-public
  • istio-system
  • knative-serving

Rechercher des journaux dans l'interface utilisateur de Cloud Logging

Vous pouvez afficher vos journaux à l'aide de l'explorateur de journaux de l'interface utilisateur de Cloud Logging.

Explorateur de journaux

À l'aide du générateur de requêtes, vous pouvez créer une requête en ajoutant manuellement des paramètres de requête. Par exemple, si vous souhaitez explorer les journaux des charges de travail du système, vous pouvez commencer par sélectionner ou rechercher le type de ressource k8s_container, puis sélectionner l'emplacement et le nom du cluster. Vous pouvez ensuite affiner votre recherche en filtrant les noms des conteneurs ou des pods.

L'explorateur de journaux constitue un moyen supplémentaire de créer des requêtes de recherche à l'aide de l'explorateur de champs de journaux. Celui-ci indique le nombre d'entrées de journal, triées par nombre décroissant, pour le champ de journal donné. L'explorateur de champs de journaux est particulièrement utile pour les journaux GKE sur Azure, car il permet de sélectionner facilement les valeurs Kubernetes de vos ressources. Par exemple, vous pouvez sélectionner les journaux pour un cluster, un espace de noms, un nom de pod et un nom de conteneur spécifiques.

Pour en savoir plus, consultez la page Utiliser l'explorateur de journaux.

Exemples de requêtes

Cette section inclut des exemples de requêtes que vous pouvez effectuer dans l'explorateur de journaux.

Exemple 1 : Obtenir les journaux de kube-apiserver sur les nœuds du plan de contrôle pour un cluster Azure CLUSTER_NAME :

resource.type="k8s_control_plane_component"
resource.labels.cluster_name="azureClusters/CLUSTER_NAME"
resource.labels.component_name="apiserver"

Exemple 2 : Obtenir les journaux de kubelet sur les nœuds de calcul pour un cluster Azure CLUSTER_NAME :

resource.type="k8s_node"
resource.labels.cluster_name="azureClusters/CLUSTER_NAME"
log_name="projects/PROJECT_ID/logs/kubelet"

Exemple 3 : Obtenir les journaux du conteneur cilium-agent pour un cluster Azure CLUSTER_NAME :

resource.type="k8s_container"
resource.labels.cluster_name="azureClusters/CLUSTER_NAME"
resource.labels.container_name="cilium-agent"

Étapes suivantes