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:
-
No Console do Google Cloud, acesse a página do leaderboard Metrics Explorer:
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoramento.
No campo Selecionar uma métrica, selecione
kubernetes.io/node/logs/input_bytes
.No campo Agrupar por, selecioneproject_id, location, cluster_name e node_name.
Clique em OK.
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, comoe2-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:
CLUSTER_NAME
: o nome do cluster.COMPUTE_LOCATION
: o local do Compute Engine do cluster.
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:
CLUSTER_NAME
: o nome do cluster.COMPUTE_LOCATION
: o local do Compute Engine do cluster.
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, comoe2-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:
CLUSTER_NAME
: o nome do cluster.COMPUTE_LOCATION
: o local do Compute Engine do cluster.
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
- Saiba como controlar a transferência de registros.