Ce document décrit le débit de journalisation par défaut et comment l'augmenter.
Lorsque la journalisation système est activée, un agent Logging dédié est automatiquement déployé et géré. Il s'exécute sur tous les nœuds GKE d'un cluster pour collecter les journaux, ajoute des métadonnées utiles sur le conteneur, le pod et le cluster, puis envoie les journaux à Cloud Logging à l'aide d'un agent basé sur fluentbit.
L'agent Logging dédié fournit un débit d'au moins 100 Kio par seconde pour les journaux système et de charge de travail. Si un nœud est sous-utilisé, en fonction du type de charge de journal (par exemple, entrées de journal textuelles ou structurées, très peu de conteneurs sur le nœud ou de nombreux conteneurs), l'agent Logging dédié peut fournir un débit jusqu'à 500 Kio par seconde ou plus. De plus, dans les clusters exécutant la version 1.23.13-gke.1000 ou ultérieure du plan de contrôle GKE, l'agent Logging autorise un débit jusqu'à 10 Mio par seconde sur les nœuds comportant au moins deux cœurs de processeur inutilisés. Sachez toutefois qu'à des débits plus élevés, certains journaux peuvent être perdus.
Identifier les nœuds dont le débit de journalisation est plus élevé
Par défaut, les clusters GKE collectent des métriques système.
La métrique système kubernetes.io/node/logs/input_bytes
fournit le nombre d'octets de journaux générés par seconde sur un nœud. Cette métrique peut vous aider à choisir la variante d'agent de journalisation la plus adaptée à déployer dans votre cluster ou vos pools de nœuds.
Pour afficher l'historique du débit de journalisation pour chaque nœud de votre cluster, procédez comme suit :
-
Dans la console Google Cloud, accédez à la page leaderboardExplorateur de métriques :
Accéder à l'explorateur de métriques
Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Monitoring.
Dans le champ Sélectionner une métrique, sélectionnez
kubernetes.io/node/logs/input_bytes
.Dans le champ Grouper par, sélectionnez project_id, emplacement, cluster_name, et node_name.
Cliquez sur OK.
Triez éventuellement la liste des métriques par ordre décroissant en cliquant sur l'en-tête de colonne Valeur au-dessus de la liste des métriques.
Pour comprendre le volume de journalisation dû aux composants système ou aux charges de travail s'exécutant sur le nœud, vous pouvez également effectuer un regroupement selon le libellé de métrique type.
Activer la journalisation à haut débit
Si l'un des nœuds GKE nécessite un débit de journalisation de plus de 100 Kio par seconde et que votre cluster GKE Standard utilise le plan de contrôle version 1.23.13-gke.1000 ou ultérieure, vous pouvez configurer GKE pour déployer une configuration alternative de l'agent Logging conçue pour maximiser le débit de journalisation. Cette variante avec débit maximal de Logging autorise un débit jusqu'à 10 Mio par seconde et par nœud. Vous pouvez déployer cet agent Logging à haut débit sur tous les nœuds d'un cluster ou sur tous les nœuds d'un pool de nœuds.
Cette configuration à haut débit consommera des ressources de processeur et de mémoire supplémentaires.
CLI gcloud
Pour activer la journalisation à haut débit sur tous les nœuds d'un nouveau cluster:
gcloud container clusters create CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--logging-variant=MAX_THROUGHPUT \
--machine-type=MACHINE_TYPE
Remplacez les éléments suivants :
CLUSTER_NAME
: nom du nouveau clusterCOMPUTE_LOCATION
: emplacement Compute Engine du nouveau cluster.MACHINE_TYPE
: un type de machine disposant de suffisamment de processeurs pour l'agent Logging, tel quee2-standard-8
.
Tous les nouveaux pools de nœuds de ce cluster, y compris le pool de nœuds par défaut, déploieront l'agent Logging à haut débit.
Pour vérifier si la journalisation à haut débit est déjà définie pour un cluster existant, utilisez la commande gcloud container cluster describe
:
gcloud container clusters describe CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--format="value(nodePoolDefaults[].loggingConfig.variantConfig.variant)"
Remplacez les éléments suivants :
CLUSTER_NAME
: nom du cluster.COMPUTE_LOCATION
: emplacement Compute Engine du cluster.
Pour configurer la journalisation à haut débit pour un cluster existant, utilisez la commande gcloud container clusters update
:
gcloud container clusters update CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--logging-variant=MAX_THROUGHPUT
Remplacez les éléments suivants :
CLUSTER_NAME
: nom du cluster.COMPUTE_LOCATION
: emplacement Compute Engine du cluster.
Pour créer un pool de nœuds qui utilise l'agent Logging à haut débit, exécutez la commande gcloud container node-pools create
:
gcloud container node-pools create NODEPOOL_NAME \
--cluster=CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--logging-variant=MAX_THROUGHPUT
Remplacez les éléments suivants :
NODEPOOL_NAME
: nom du nouveau pool de nœuds.CLUSTER_NAME
: nom du cluster.COMPUTE_LOCATION
: emplacement Compute Engine du nouveau cluster.
Pour vérifier si la journalisation à haut débit est déjà définie pour un pool de nœuds existant, utilisez la commande gcloud container node-pools describe
:
gcloud container node-pools describe NODEPOOL_NAME \
--cluster=CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--format="value(config.loggingConfig.variantConfig.variant)"
Remplacez les éléments suivants :
NODEPOOL_NAME
: nom du pool de nœuds.CLUSTER_NAME
: nom du cluster.COMPUTE_LOCATION
: emplacement Compute Engine.
Pour mettre à jour un pool de nœuds existant, utilisez la commande gcloud container node-pools update
.
gcloud container node-pools update NODEPOOL_NAME \
--cluster=CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--logging-variant=MAX_THROUGHPUT
Remplacez les éléments suivants :
NODEPOOL_NAME
: nom du pool de nœuds.CLUSTER_NAME
: nom du cluster.COMPUTE_LOCATION
: emplacement Compute Engine.
Terraform
Les blocs de code suivants spécifient comment déclarer des pools de nœuds avec ou sans journalisation à haut débit.
Pour gérer explicitement les pools de nœuds, vous devez spécifier votre cluster sans pool de nœuds par défaut.
resource "google_container_cluster" "with_example_logging_variants" {
provider = google
name = "CLUSTER_NAME"
location = "COMPUTE_LOCATION"
initial_node_count = 1
remove_default_node_pool = true # We want to manage our node pools separately.
}
Pour spécifier un pool de nœuds utilisant l'agent à haut débit, utilisez le champ node_config
pour spécifier la variante de l'agent Logging en tant que MAX_THROUGHPUT
et un type de machine approprié:
resource "google_container_node_pool" "with_example_logging_variant" {
provider = google
name = "example-node-pool-with-htl"
cluster = google_container_cluster.with_example_logging_variants.name
location = "COMPUTE_LOCATION"
node_config {
logging_variant = "MAX_THROUGHPUT"
# Use a machine type with enough CPU to accommodate the high-throughput agent, such as e2-standard-8.
machine_type = "e2-standard-8"
}
node_count = 1
}
Pour spécifier un pool de nœuds utilisant l'agent par défaut, utilisez le champ node_config
pour spécifier la variante de l'agent Logging en tant que DEFAULT
:
resource "google_container_node_pool" "with_default_logging_variant" {
provider = google
name = "example-node-pool-with-default-logging"
cluster = google_container_cluster.with_example_logging_variants.name
location = "COMPUTE_LOCATION"
node_config {
logging_variant = "DEFAULT"
}
node_count = 1
}
Désactiver la journalisation à haut débit
Si vous ne souhaitez plus utiliser l'agent Logging à haut débit, déployez l'agent Logging par défaut sur le cluster ou le pool de nœuds.
CLI gcloud
Transmettez l'option --logging-variant=DEFAULT
lorsque vous créez ou mettez à jour un cluster ou un pool de nœuds.
Pour utiliser l'agent de journalisation par défaut sur tous les nœuds d'un nouveau cluster:
gcloud container clusters create CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--logging-variant=DEFAULT \
--machine-type=MACHINE_TYPE
Remplacez les éléments suivants :
CLUSTER_NAME
: nom du nouveau clusterCOMPUTE_LOCATION
: emplacement Compute Engine du nouveau cluster.MACHINE_TYPE
: un type de machine disposant de suffisamment de processeurs pour l'agent Logging, tel quee2-standard-8
.
Pour utiliser l'agent de journalisation par défaut sur un cluster existant, utilisez la commande gcloud container clusters update
:
gcloud container clusters update CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--logging-variant=DEFAULT
Remplacez les éléments suivants :
CLUSTER_NAME
: nom du cluster.COMPUTE_LOCATION
: emplacement Compute Engine du cluster.
Pour utiliser l'agent de journalisation par défaut pour un nouveau pool de nœuds, exécutez la commande gcloud container node-pools create
:
gcloud container node-pools create NODEPOOL_NAME \
--cluster=CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--logging-variant=DEFAULT
Remplacez les éléments suivants :
NODEPOOL_NAME
: nom du nouveau pool de nœuds.CLUSTER_NAME
: nom du cluster.COMPUTE_LOCATION
: emplacement Compute Engine du nouveau cluster.
Pour mettre à jour un pool de nœuds existant, utilisez la commande gcloud container node-pools update
:
gcloud container node-pools update NODEPOOL_NAME \
--cluster=CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--logging-variant=DEFAULT
Remplacez les éléments suivants :
NODEPOOL_NAME
: nom du pool de nœuds.CLUSTER_NAME
: nom du cluster.COMPUTE_LOCATION
: emplacement Compute Engine.
Terraform
Si vous ne souhaitez plus que Terraform crée des pools de nœuds qui utilisent l'agent Logging à haut débit, définissez le champ logging_variant
sur DEFAULT
.
Étape suivante
- Découvrez comment contrôler l'ingestion des journaux.