Ajusta la capacidad de procesamiento de los registros


En este documento, se describe la capacidad de procesamiento de registros predeterminada y cómo aumentarla.

Cuando el registro del sistema está habilitado, un agente de Logging exclusivo se implementa y administra de forma automática. Se ejecuta en todos los nodos de GKE en un clúster para recopilar registros, agrega metadatos útiles sobre el contenedor, el Pod y el clúster y, luego, envía los registros a Cloud Logging mediante un agente basado en Flufluent.

El agente de Logging dedicado proporciona al menos 100 KiB por segundo de capacidad de procesamiento de registro por nodo para los registros del sistema y de la carga de trabajo. Si un nodo tiene poco uso, según el tipo de carga de registro (por ejemplo, texto o entradas de registro estructuradas, muy pocos contenedores en el nodo o muchos contenedores), el agente de registro dedicado puede proporcionar capacidad de procesamiento de hasta 500 KiB por segundo o más. Además, en los clústeres con la versión 1.23.13-gke.1000 o posterior del plano de control de GKE, el agente de Logging permite una capacidad de procesamiento de hasta 10 MiB por segundo en los nodos que tienen al menos 2 núcleos de CPU sin usar. Sin embargo, ten en cuenta que, con una capacidad de procesamiento mayor, es posible que se pierdan algunos registros.

Identifica los nodos con mayor capacidad de procesamiento de registro

De forma predeterminada, los clústeres de GKE recopilan métricas del sistema. La métrica del sistema kubernetes.io/node/logs/input_bytes proporciona la cantidad de bytes de registro generados por segundo en un nodo. Esta métrica puede ayudarte a decidir qué variante del agente de Logging tiene sentido implementar en tu clúster o grupo de nodos.

Para ver el historial de capacidad de procesamiento de registro de cada nodo en tu clúster, sigue estos pasos:

  1. En la consola de Google Cloud, ve a la página Explorador de métricas:

    Ir al Explorador de métricas

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Monitoring.

  2. En el campo Seleccionar una métrica, escribe kubernetes.io/node/logs/input_bytes.

  3. En el campo Agrupar por, selecciona ID_del_proyecto ,ubicación ,nombre_del_clúster ynombre_nodo.

  4. Haga clic en Aceptar.

  5. Opcionalmente, para ordenar la lista de métricas en orden descendente, haz clic en el encabezado Valor de la columna sobre la lista de métricas.

Para comprender cuál es el volumen de registro que se genera en función de los componentes del sistema o las cargas de trabajo que se ejecutan en el nodo, también puedes agrupar por la etiqueta de métrica type.

Habilita el registro de alta productividad

Si algún nodo de GKE requiere más de 100 KiB por segundo de capacidad de procesamiento de registro y el clúster de GKE Standard usa la versión 1.23.13-gke.1000 o posterior del plano de control, puedes configurar GKE para implementar una configuración alternativa del agente de Logging diseñada para maximizar la capacidad de procesamiento de registros. Esta variante máxima de capacidad de procesamiento de Logging permite una capacidad de procesamiento de hasta 10 MiB por segundo por nodo. Puedes implementar este agente de Logging de alta capacidad de procesamiento en todos los nodos de un clúster o en todos los nodos de un grupo de nodos.

Esta configuración de alta capacidad de procesamiento consumirá CPU y memoria adicionales.

gcloud CLI

Para habilitar el registro de alta capacidad de procesamiento en todos los nodos de un clúster nuevo, sigue estos pasos:

gcloud container clusters create CLUSTER_NAME \
    --location=COMPUTE_LOCATION \
    --logging-variant=MAX_THROUGHPUT \
    --machine-type=MACHINE_TYPE

Reemplaza lo siguiente:

  • CLUSTER_NAME el nombre del clúster nuevo.
  • COMPUTE_LOCATION: la ubicación de Compute Engine para el clúster nuevo.
  • MACHINE_TYPE: Un tipo de máquina que tenga suficiente CPU para el agente de Logging, como e2-standard-8.

Todos los grupos de nodos recién creados en este clúster, incluido el grupo de nodos predeterminado, implementan el agente de Logging de alta capacidad de procesamiento.

Para confirmar si ya se configuró el registro de alta capacidad de procesamiento para un clúster existente, usa el comando gcloud container cluster describe:

gcloud container clusters describe CLUSTER_NAME \
   --location=COMPUTE_LOCATION  \
   --format="value(nodePoolDefaults[].loggingConfig.variantConfig.variant)"

Reemplaza lo siguiente:

Para configurar el registro de alta capacidad de procesamiento para un clúster existente, usa el comando gcloud container clusters update:

gcloud container clusters update CLUSTER_NAME \
    --location=COMPUTE_LOCATION \
    --logging-variant=MAX_THROUGHPUT

Reemplaza lo siguiente:

Para crear un grupo de nodos nuevo que use el agente de Logging de alta capacidad de procesamiento, usa el comando gcloud container node-pools create:

gcloud container node-pools create NODEPOOL_NAME \
    --cluster=CLUSTER_NAME \
    --location=COMPUTE_LOCATION \
    --logging-variant=MAX_THROUGHPUT

Reemplaza lo siguiente:

  • NODEPOOL_NAME: el nombre del grupo de nodos nuevo
  • CLUSTER_NAME: el nombre del clúster
  • COMPUTE_LOCATION: la ubicación de Compute Engine para el clúster nuevo.

Para confirmar si ya se configuró el registro de alta capacidad de procesamiento para un grupo de nodos existente, usa el 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)"

Reemplaza lo siguiente:

Para actualizar un grupo de nodos existente, usa el comando gcloud container node-pools update.

gcloud container node-pools update NODEPOOL_NAME \
    --cluster=CLUSTER_NAME \
    --location=COMPUTE_LOCATION \
    --logging-variant=MAX_THROUGHPUT

Reemplaza lo siguiente:

Terraform

En los siguientes bloques de código, se especifica cómo declarar grupos de nodos con o sin registro de alta productividad.

Para administrar los grupos de nodos de forma explícita, debes especificar tu clúster sin un grupo de nodos predeterminado.

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

Para especificar un grupo de nodos que use el agente de alta capacidad de procesamiento, usa el campo node_config para especificar la variante del agente de Logging como MAX_THROUGHPUT y un tipo de máquina adecuado:

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
}

Para especificar un grupo de nodos que use el agente predeterminado, usa el campo node_config para especificar la variante del agente de Logging como 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
}

Inhabilita el registro de alta productividad

Si ya no deseas usar el agente de Logging de alta capacidad de procesamiento, implementa el agente de Logging predeterminado en el clúster o el grupo de nodos.

gcloud CLI

Pasa la marca --logging-variant=DEFAULT cuando crees o actualices un clúster o un grupo de nodos.

Para usar el agente de registro predeterminado en todos los nodos de un clúster nuevo, haz lo siguiente:

  gcloud container clusters create CLUSTER_NAME \
      --location=COMPUTE_LOCATION \
      --logging-variant=DEFAULT \
      --machine-type=MACHINE_TYPE

Reemplaza lo siguiente:

  • CLUSTER_NAME el nombre del clúster nuevo.
  • COMPUTE_LOCATION: la ubicación de Compute Engine para el clúster nuevo.
  • MACHINE_TYPE: Un tipo de máquina que tenga suficiente CPU para el agente de Logging, como e2-standard-8.

Para usar el agente de registro predeterminado en un clúster existente, usa el comando gcloud container clusters update:

gcloud container clusters update CLUSTER_NAME \
    --location=COMPUTE_LOCATION \
    --logging-variant=DEFAULT

Reemplaza lo siguiente:

Para usar el agente de registro predeterminado para un grupo de nodos nuevo, usa el comando gcloud container node-pools create:

gcloud container node-pools create NODEPOOL_NAME \
    --cluster=CLUSTER_NAME \
    --location=COMPUTE_LOCATION \
    --logging-variant=DEFAULT

Reemplaza lo siguiente:

  • NODEPOOL_NAME: el nombre del grupo de nodos nuevo
  • CLUSTER_NAME: el nombre del clúster
  • COMPUTE_LOCATION: la ubicación de Compute Engine para el clúster nuevo.

Para actualizar un grupo de nodos existente, usa el comando gcloud container node-pools update:

gcloud container node-pools update NODEPOOL_NAME \
    --cluster=CLUSTER_NAME \
    --location=COMPUTE_LOCATION \
    --logging-variant=DEFAULT

Reemplaza lo siguiente:

Terraform

Si ya no deseas que Terraform cree grupos de nodos que usen el agente de Logging de alta capacidad de procesamiento, configura el campo logging_variant como DEFAULT.

¿Qué sigue?