Questo documento descrive il throughput dei log predefinito e come aumentarlo.
Quando il logging di sistema è abilitato, viene eseguito il deployment e la gestione automatica di un agente di logging dedicato. Viene eseguito su tutti i nodi GKE di un cluster per raccogliere i log, aggiunge metadati utili relativi a container, pod e cluster e poi invia i log a Cloud Logging utilizzando un agente basato su FluentBit.
L'agente Logging dedicato fornisce almeno 100 KiB di throughput dei log per secondo per nodo per i log di sistema e del carico di lavoro. Se un nodo è sottoutilizzato, a seconda del tipo di carico dei log (ad esempio voci di log di testo o strutturate, pochissimi contenitori sul nodo o molti contenitori), l'agente di registrazione dedicato potrebbe fornire una velocità in bit fino a 500 KiB al secondo o più. Inoltre, nei cluster con il piano di controllo GKE versione 1.23.13-gke.1000 o successive, l'agente di logging consente un throughput fino a 10 MiB al secondo sui nodi con almeno 2 core CPU inutilizzati. Tieni presente, tuttavia, che a un throughput più elevato, alcuni log potrebbero andare persi.
Identifica i nodi con una maggiore velocità in termini di log
Per impostazione predefinita, i cluster GKE raccolgono
metriche di sistema.
La metrica di sistema kubernetes.io/node/logs/input_bytes
fornisce il numero di byte di log generati al secondo su un nodo. Questa metrica può aiutarti a decidere quale variante dell'agente di logging è opportuno implementare nel tuo cluster o nei tuoi pool di nodi.
Per visualizzare il throughput dei log storico per ciascun nodo del cluster, segui questi passaggi:
-
Nella console Google Cloud, vai alla pagina leaderboard Esplora metriche:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoring.
Nel campo Seleziona una metrica, seleziona
kubernetes.io/node/logs/input_bytes
.Nel campo Raggruppa per, seleziona project_id, location, cluster_name e node_name.
Fai clic su OK.
Se vuoi, ordina l'elenco delle metriche in ordine decrescente facendo clic sull'intestazione della colonna Valore sopra l'elenco delle metriche.
Per capire quanto del volume di log è dovuto ai componenti di sistema o ai carichi di lavoro in esecuzione sul nodo, puoi anche raggruppare in base all'etichetta della metrica type.
Attivare il logging ad alta produttività
Se alcuni nodi GKE richiedono più di 100 KiB di throughput dei log al secondo e il tuo cluster GKE Standard utilizza il piano di controllo versione 1.23.13-gke.1000 o successiva, puoi configurare GKE per eseguire il deployment di una configurazione alternativa dell'agente di logging progettata per massimizzare il throughput del logging. Questa variante di registrazione con una velocità in uscita massima consente una velocità in uscita massima di 10 MiB al secondo per nodo. Puoi implementare questo agente di logging ad alta produttività su tutti i nodi di un cluster o su tutti i nodi di un pool di nodi.
Questa configurazione ad alta produttività consumerà CPU e memoria aggiuntive.
Interfaccia a riga di comando gcloud
Per attivare il logging ad alta velocità su tutti i nodi di un nuovo cluster:
gcloud container clusters create CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--logging-variant=MAX_THROUGHPUT \
--machine-type=MACHINE_TYPE
Sostituisci quanto segue:
CLUSTER_NAME
: il nome del nuovo cluster.COMPUTE_LOCATION
: la posizione Compute Engine per il nuovo cluster.MACHINE_TYPE
: un tipo di macchina con una CPU sufficiente per l'agente di logging, ad esempioe2-standard-8
.
Tutti i node pool appena creati in questo cluster, incluso il node pool predefinito, eseguono il deployment dell'agente di logging ad alta produttività.
Per verificare se la registrazione ad alta produttività è già impostata per un cluster esistente, utilizza il comando
gcloud container cluster describe
:
gcloud container clusters describe CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--format="value(nodePoolDefaults[].loggingConfig.variantConfig.variant)"
Sostituisci quanto segue:
CLUSTER_NAME
: il nome del cluster.COMPUTE_LOCATION
: la posizione di Compute Engine del cluster.
Per configurare la registrazione ad alta produttività per un cluster esistente:
utilizza il comando gcloud container clusters update
:
gcloud container clusters update CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--logging-variant=MAX_THROUGHPUT
Sostituisci quanto segue:
CLUSTER_NAME
: il nome del cluster.COMPUTE_LOCATION
: la posizione di Compute Engine del cluster.
Per creare un nuovo pool di nodi che utilizza l'agente di logging ad alta produttività, utilizza il comando
gcloud container node-pools create
:
gcloud container node-pools create NODEPOOL_NAME \
--cluster=CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--logging-variant=MAX_THROUGHPUT
Sostituisci quanto segue:
NODEPOOL_NAME
: il nome del nuovo pool di nodi.CLUSTER_NAME
: il nome del cluster.COMPUTE_LOCATION
: la posizione Compute Engine per il nuovo cluster.
Per verificare se la registrazione ad alta produttività è già impostata per un pool di nodi esistente, utilizza il comando
gcloud container node-pools describe
:
gcloud container node-pools describe NODEPOOL_NAME \
--cluster=CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--format="value(config.loggingConfig.variantConfig.variant)"
Sostituisci quanto segue:
NODEPOOL_NAME
: il nome del pool di nodi.CLUSTER_NAME
: il nome del cluster.COMPUTE_LOCATION
: la posizione di Compute Engine.
Per aggiornare un pool di nodi esistente, utilizza il comando
gcloud container node-pools update
.
gcloud container node-pools update NODEPOOL_NAME \
--cluster=CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--logging-variant=MAX_THROUGHPUT
Sostituisci quanto segue:
NODEPOOL_NAME
: il nome del pool di nodi.CLUSTER_NAME
: il nome del cluster.COMPUTE_LOCATION
: la posizione di Compute Engine.
Terraform
I blocchi di codice seguenti specificano come dichiarare i pool di nodi con o senza logging ad alta produttività.
Per gestire i pool di nodi in modo esplicito, devi specificare il cluster senza un pool di nodi predefinito.
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.
}
Per specificare un pool di nodi che utilizza l'agente ad alta produttività, utilizza il campo node_config
per specificare la variante dell'agente di logging come MAX_THROUGHPUT
e un tipo di macchina appropriato:
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
}
Per specificare un pool di nodi che utilizza l'agente predefinito, utilizza il campo node_config
per specificare la variante dell'agente di logging come 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
}
Disattivare il logging ad alta produttività
Se non vuoi più utilizzare l'agente Logging ad alta produttività, implementa l'agente Logging predefinito nel cluster o nel pool di nodi.
Interfaccia a riga di comando gcloud
Passa il flag --logging-variant=DEFAULT
quando crei o aggiorni un cluster o un pool di nodi.
Per utilizzare l'agente di logging predefinito su tutti i nodi di un nuovo cluster:
gcloud container clusters create CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--logging-variant=DEFAULT \
--machine-type=MACHINE_TYPE
Sostituisci quanto segue:
CLUSTER_NAME
: il nome del nuovo cluster.COMPUTE_LOCATION
: la posizione di Compute Engine per il nuovo cluster.MACHINE_TYPE
: un tipo di macchina con una CPU sufficiente per l'agente di logging, ad esempioe2-standard-8
.
Per utilizzare l'agente di logging predefinito su un cluster esistente:
utilizza il comando gcloud container clusters update
:
gcloud container clusters update CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--logging-variant=DEFAULT
Sostituisci quanto segue:
CLUSTER_NAME
: il nome del cluster.COMPUTE_LOCATION
: la posizione di Compute Engine del cluster.
Per utilizzare l'agente di registrazione predefinito per un nuovo pool di nodi, utilizza il comando
gcloud container node-pools create
:
gcloud container node-pools create NODEPOOL_NAME \
--cluster=CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--logging-variant=DEFAULT
Sostituisci quanto segue:
NODEPOOL_NAME
: il nome del nuovo pool di nodi.CLUSTER_NAME
: il nome del cluster.COMPUTE_LOCATION
: la posizione di Compute Engine per il nuovo cluster.
Per aggiornare un node pool esistente, utilizza il comando
gcloud container node-pools update
:
gcloud container node-pools update NODEPOOL_NAME \
--cluster=CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--logging-variant=DEFAULT
Sostituisci quanto segue:
NODEPOOL_NAME
: il nome del pool di nodi.CLUSTER_NAME
: il nome del cluster.COMPUTE_LOCATION
: la posizione di Compute Engine.
Terraform
Se non vuoi più che Terraform crei pool di nodi che utilizzano l'agente di logging ad alta produttività, imposta il campo logging_variant
su DEFAULT
.
Passaggi successivi
- Scopri come controllare l'importazione dei log.