In diesem Dokument wird der Standard-Logdurchsatz beschrieben und es wird gezeigt, wie er erhöht werden kann.
Wenn das System-Logging aktiviert ist, wird automatisch ein dedizierter Logging-Agent bereitgestellt und verwaltet. Dieser Agent wird auf allen GKE-Knoten in einem Cluster ausgeführt, um Logs zu erfassen, hilfreiche Metadaten zu Container, Pod und Cluster hinzuzufügen und die Logs dann mit einem fluentbit-basierten Agent an Cloud Logging zu senden.
Der dedizierte Logging-Agent sorgt für einen Logdurchsatz von mindestens 100 KiB pro Sekunde und Knoten für System- und Arbeitslastlogs. Wenn ein Knoten nicht ausgelastet ist, kann der dedizierte Logging-Agent je nach Art der Loglast (z. B. Text- oder strukturierte Logeinträge, sehr wenige Container auf dem Knoten oder viele Container) einen Durchsatz von 500 KiB pro Sekunde oder mehr liefern. Darüber hinaus ermöglicht der Logging-Agent in Clustern mit einer GKE-Steuerungsebene der Version 1.23.13-gke.1000 oder höher einen Durchsatz von bis zu 10 MiB pro Sekunde auf Knoten mit mindestens zwei nicht verwendeten CPU-Kernen. Beachten Sie jedoch, dass einige Logs bei höheren Durchsätzen verloren gehen können.
Knoten mit einem höheren Log-Durchsatz identifizieren
GKE-Cluster erfassen standardmäßig Systemmesswerte.
Der Systemmesswert kubernetes.io/node/logs/input_bytes
gibt die Anzahl der Logbyte an, die pro Sekunde auf einem Knoten generiert werden. Dieser Messwert kann Ihnen bei der Entscheidung helfen, welche Variante des Logging-Agents in Ihrem Cluster oder Knotenpool bereitgestellt werden sollte.
Führen Sie die folgenden Schritte aus, um den Verlauf des Logging-Durchsatzes für jeden Knoten im Cluster aufzurufen:
-
Rufen Sie in der Google Cloud Console die Seite leaderboard Metrics Explorer auf.
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.
Geben Sie im Feld Messwert auswählen den Wert
kubernetes.io/node/logs/input_bytes
ein.Wählen Sie im Feld Gruppieren nach die Option project_id, location, cluster_name und node_name aus.
Klicken Sie auf OK.
Optional: Sortieren Sie die Liste der Messwerte in absteigender Reihenfolge. Klicken Sie dazu über der Liste der Messwerte auf die Spaltenüberschrift Wert.
Um zu verstehen, wie viel Logging-Volumen durch Systemkomponenten oder durch auf dem Knoten ausgeführte Arbeitslasten verursacht wird, können Sie auch nach dem Messwertlabel Typ gruppieren.
Logging mit hohem Durchsatz aktivieren
Wenn ein GKE-Knoten einen Logdurchsatz von mehr als 100 KiB pro Sekunde benötigt und Ihr GKE-Standardcluster eine Steuerungsebene der Version 1.23.13-gke.1000 oder höher verwendet, können Sie GKE so konfigurieren, dass eine alternative Konfiguration des Logging-Agent bereitgestellt wird, der den Logging-Durchsatz maximieren soll. Diese Logging-Variante für den maximalen Durchsatz ermöglicht einen Durchsatz von bis zu 10 MiB pro Sekunde und Knoten. Sie können diesen Logging-Agent mit hohem Durchsatz auf allen Knoten in einem Cluster oder auf allen Knoten in einem Knotenpool bereitstellen.
Diese Konfiguration mit hohem Durchsatz beansprucht zusätzliche CPU und Arbeitsspeicher.
gcloud-CLI
So aktivieren Sie das Logging mit hohem Durchsatz auf allen Knoten in einem neuen Cluster:
gcloud container clusters create CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--logging-variant=MAX_THROUGHPUT \
--machine-type=MACHINE_TYPE
Ersetzen Sie Folgendes:
CLUSTER_NAME
ist der Name des neuen Clusters.COMPUTE_LOCATION
: der Compute Engine-Standort für den neuen Cluster.MACHINE_TYPE
: ein Maschinentyp mit ausreichend CPU für den Logging-Agent, z. B.e2-standard-8
.
Alle neu erstellten Knotenpools in diesem Cluster, einschließlich des Standardpools, stellen den Logging-Agent mit hohem Durchsatz bereit.
Verwenden Sie den Befehl gcloud container cluster describe
, um zu prüfen, ob für einen vorhandenen Cluster bereits Logging mit hohem Durchsatz festgelegt ist:
gcloud container clusters describe CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--format="value(nodePoolDefaults[].loggingConfig.variantConfig.variant)"
Ersetzen Sie Folgendes:
CLUSTER_NAME
ist der Name des Clusters.COMPUTE_LOCATION
: der Compute Engine-Standort des Clusters.
Verwenden Sie den Befehl gcloud container clusters update
, um die Logging-Funktion mit hohem Durchsatz für einen vorhandenen Cluster zu konfigurieren:
gcloud container clusters update CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--logging-variant=MAX_THROUGHPUT
Ersetzen Sie Folgendes:
CLUSTER_NAME
ist der Name des Clusters.COMPUTE_LOCATION
: der Compute Engine-Standort des Clusters.
Wenn Sie einen neuen Knotenpool erstellen möchten, der den Logging-Agent mit hohem Durchsatz verwendet, verwenden Sie den Befehl gcloud container node-pools create
:
gcloud container node-pools create NODEPOOL_NAME \
--cluster=CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--logging-variant=MAX_THROUGHPUT
Ersetzen Sie Folgendes:
NODEPOOL_NAME
: der Name des neuen Knotenpools.CLUSTER_NAME
ist der Name des Clusters.COMPUTE_LOCATION
: der Compute Engine-Standort für den neuen Cluster.
Verwenden Sie den Befehl gcloud container node-pools describe
, um zu prüfen, ob die Protokollierung mit hohem Durchsatz bereits für einen vorhandenen Knotenpool festgelegt ist:
gcloud container node-pools describe NODEPOOL_NAME \
--cluster=CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--format="value(config.loggingConfig.variantConfig.variant)"
Ersetzen Sie Folgendes:
NODEPOOL_NAME
ist der Name des Knotenpools.CLUSTER_NAME
ist der Name des Clusters.COMPUTE_LOCATION
: der Compute Engine-Standort.
Verwenden Sie den Befehl gcloud container node-pools update
, um einen vorhandenen Knotenpool zu aktualisieren.
gcloud container node-pools update NODEPOOL_NAME \
--cluster=CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--logging-variant=MAX_THROUGHPUT
Ersetzen Sie Folgendes:
NODEPOOL_NAME
ist der Name des Knotenpools.CLUSTER_NAME
ist der Name des Clusters.COMPUTE_LOCATION
: der Compute Engine-Standort.
Terraform
In den folgenden Codeblöcken wird angegeben, wie Knotenpools mit oder ohne Logging mit hohem Durchsatz deklariert werden.
Wenn Sie die Knotenpools explizit verwalten möchten, müssen Sie Ihren Cluster ohne Standardknotenpool angeben.
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.
}
Verwenden Sie zum Angeben eines Knotenpools, der den Agent mit hohem Durchsatz verwendet, das Feld node_config
, um die Variante des Logging-Agents als MAX_THROUGHPUT
und einen entsprechenden Maschinentyp anzugeben:
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
}
Verwenden Sie zum Angeben eines Knotenpools, der den Standard-Agent verwendet, das Feld node_config
, um die Variante des Logging-Agents als DEFAULT
anzugeben:
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
}
Logging mit hohem Durchsatz deaktivieren
Wenn Sie den Logging-Agent mit hohem Durchsatz nicht mehr verwenden möchten, stellen Sie den Standard-Logging-Agent im Cluster oder Knotenpool bereit.
gcloud-CLI
Geben Sie das Flag --logging-variant=DEFAULT
an, wenn Sie einen Cluster oder Knotenpool erstellen oder aktualisieren.
So verwenden Sie den Standard-Logging-Agent auf allen Knoten in einem neuen Cluster:
gcloud container clusters create CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--logging-variant=DEFAULT \
--machine-type=MACHINE_TYPE
Ersetzen Sie Folgendes:
CLUSTER_NAME
ist der Name des neuen Clusters.COMPUTE_LOCATION
: der Compute Engine-Standort für den neuen Cluster.MACHINE_TYPE
: ein Maschinentyp mit ausreichend CPU für den Logging-Agent, z. B.e2-standard-8
.
Wenn Sie den Standard-Logging-Agent in einem vorhandenen Cluster verwenden möchten, verwenden Sie den Befehl gcloud container clusters update
:
gcloud container clusters update CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--logging-variant=DEFAULT
Ersetzen Sie Folgendes:
CLUSTER_NAME
ist der Name des Clusters.COMPUTE_LOCATION
: der Compute Engine-Standort des Clusters.
Verwenden Sie den Befehl gcloud container node-pools create
, um den Standard-Logging-Agent für einen neuen Knotenpool zu verwenden:
gcloud container node-pools create NODEPOOL_NAME \
--cluster=CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--logging-variant=DEFAULT
Ersetzen Sie Folgendes:
NODEPOOL_NAME
: der Name des neuen Knotenpools.CLUSTER_NAME
ist der Name des Clusters.COMPUTE_LOCATION
: der Compute Engine-Standort für den neuen Cluster.
Verwenden Sie den Befehl gcloud container node-pools update
, um einen vorhandenen Knotenpool zu aktualisieren:
gcloud container node-pools update NODEPOOL_NAME \
--cluster=CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--logging-variant=DEFAULT
Ersetzen Sie Folgendes:
NODEPOOL_NAME
ist der Name des Knotenpools.CLUSTER_NAME
ist der Name des Clusters.COMPUTE_LOCATION
: der Compute Engine-Standort.
Terraform
Wenn Terraform keine Knotenpools mehr erstellen soll, die den Logging-Agent mit hohem Durchsatz verwenden, legen Sie das Feld logging_variant
auf DEFAULT
fest.