Ajustar a capacidade de processamento do registro


Este documento descreve a taxa de transferência de registro padrão e como aumentar a taxa de transferência.

Quando a geração de registros do sistema é ativada, um agente do Logging dedicado é implantado e gerenciado automaticamente. Ele é executado em todos os nós do GKE em um cluster para coletar registros, adiciona metadados úteis sobre o contêiner, pod e cluster e depois envia os registros para o Cloud Logging usando um agente baseado em fluentbit.

O agente do Logging dedicado garante pelo menos 100 KiB por segundo de capacidade de processamento de registro por nó para os registros de carga de trabalho e do sistema. Se um nó for subutilizado, dependendo do tipo de carga de registro (por exemplo, entradas de registro estruturadas ou de texto, muito poucos contêineres no nó ou muitos contêineres), o agente do Logging dedicado poderá fornecer até 500 KiB por segundo ou mais. Além disso, em clusters com o plano de controle do GKE versão 1.23.13-gke.1000 ou mais recente, o agente do Logging permite uma capacidade de processamento de até 10 MiB por segundo em nós com pelo menos dois núcleo de CPUs não usados. No entanto, tenha em mente que uma capacidade de processamento mais alta pode resultar na perda de alguns registros.

Identificar nós com maior capacidade de processamento de registros

Por padrão, os clusters do GKE coletam métricas do sistema. A métrica do sistema kubernetes.io/node/logs/input_bytes fornece o número de bytes de registro gerados por segundo em um nó. Essa métrica pode ajudar você a decidir qual variante do agente do Logging faz sentido implantar no cluster ou nos pools de nós.

Para ver a capacidade histórica de geração de registros de cada nó no cluster, siga estas etapas:

  1. No Console do Google Cloud, acesse a página do  Metrics Explorer:

    Acesse o Metrics explorer

    Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoramento.

  2. No campo Selecionar uma métrica, selecione kubernetes.io/node/logs/input_bytes.

  3. No campo Agrupar por, selecioneproject_id, location, cluster_name e node_name.

  4. Clique em OK.

  5. Como opção, classifique a lista de métricas em ordem decrescente, clique no cabeçalho da coluna Valor acima da lista de métricas.

Para entender a quantidade de volume de registros gerada por componentes do sistema ou devido a cargas de trabalho em execução no nó, é possível agrupar pelo rótulo de métrica type.

Ativar a geração de registros de alta capacidade de processamento

Se algum nó do GKE precisar de mais de 100 KiB por segundo de capacidade de processamento de registro e o cluster do GKE Standard estiver usando a versão 1.23.13-gke.1000 ou mais recente do plano de controle, configure o GKE para implantar uma configuração alternativa do agente do Logging projetado para maximizar a capacidade de processamento de geração de registros. Essa variante de capacidade máxima do Logging permite uma capacidade de 10 MiB por segundo por nó. É possível implantar esse agente do Logging de alta capacidade em todos os nós em um cluster ou em todos os nós em um pool de nós.

Essa configuração de alta capacidade de processamento consome mais CPU e memória.

CLI da gcloud

Para ativar a geração de registros de alta capacidade em todos os nós em um novo cluster:

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

Substitua:

  • CLUSTER_NAME: o nome do novo cluster.
  • COMPUTE_LOCATION: o local do Compute Engine para o novo cluster.
  • MACHINE_TYPE: um tipo de máquina que tem CPU suficiente para o agente do Logging, como e2-standard-8.

Todos os pools de nós recém-criados neste cluster, incluindo o padrão, implantam o agente do Logging de alta capacidade de processamento.

Para confirmar se o registro de alta capacidade já está definido para um cluster, use o comando gcloud container cluster describe:

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

Substitua:

Para configurar a geração de registros de alta capacidade em um cluster existente, use o comando gcloud container clusters update:

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

Substitua:

Para criar um novo pool de nós que usa o agente do Logging de alta capacidade, use o comando gcloud container node-pools create:

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

Substitua:

  • NODEPOOL_NAME: o nome do novo pool de nós.
  • CLUSTER_NAME: o nome do cluster.
  • COMPUTE_LOCATION: o local do Compute Engine para o novo cluster.

Para confirmar se o registro de alta capacidade já está definido para um pool de nós, use o 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)"

Substitua:

  • NODEPOOL_NAME: o nome do pool de nós.
  • CLUSTER_NAME: o nome do cluster.
  • COMPUTE_LOCATION: o local do Compute Engine.

Para atualizar um pool de nós, use o comando gcloud container node-pools update.

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

Substitua:

  • NODEPOOL_NAME: o nome do pool de nós.
  • CLUSTER_NAME: o nome do cluster.
  • COMPUTE_LOCATION: o local do Compute Engine.

Terraform

Os blocos de código a seguir especificam como declarar pools de nós com ou sem a geração de registros de alta capacidade de processamento.

Para gerenciar os pools de nós de maneira explícita, você precisa especificar o cluster sem um pool de nós padrão.

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 um pool de nós que usa o agente de alta capacidade de processamento, use o campo node_config para especificar a variante do agente do Logging como MAX_THROUGHPUT e um tipo de máquina apropriado:

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 um pool de nós que usa o agente padrão, use o campo node_config para especificar a variante do agente do 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
}

Desativar a geração de registros de alta capacidade de processamento

Se você não quiser mais usar o agente do Logging de alta capacidade, implante o agente padrão do Logging no cluster ou no pool de nós.

CLI da gcloud

Transmita a flag --logging-variant=DEFAULT ao criar ou atualizar um cluster ou pool de nós.

Para usar o agente de registro padrão em todos os nós de um novo cluster:

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

Substitua:

  • CLUSTER_NAME: o nome do novo cluster.
  • COMPUTE_LOCATION: o local do Compute Engine para o novo cluster.
  • MACHINE_TYPE: um tipo de máquina que tem CPU suficiente para o agente do Logging, como e2-standard-8.

Para usar o agente de registro padrão em um cluster existente, use o comando gcloud container clusters update:

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

Substitua:

Para usar o agente de registro padrão em um novo pool de nós, use o comando gcloud container node-pools create:

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

Substitua:

  • NODEPOOL_NAME: o nome do novo pool de nós.
  • CLUSTER_NAME: o nome do cluster.
  • COMPUTE_LOCATION: o local do Compute Engine para o novo cluster.

Para atualizar um pool de nós, use o comando gcloud container node-pools update:

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

Substitua:

  • NODEPOOL_NAME: o nome do pool de nós.
  • CLUSTER_NAME: o nome do cluster.
  • COMPUTE_LOCATION: o local do Compute Engine.

Terraform

Se você não quiser mais que o Terraform crie pools de nós que usam o agente do Logging de alta capacidade de processamento, defina o campo logging_variant como DEFAULT.

A seguir