로그 처리량 조정


이 문서에서는 기본 로그 처리량 및 처리량을 늘리는 방법을 설명합니다.

시스템 로깅이 사용 설정되면 전용 Logging 에이전트가 자동으로 배포되고 관리됩니다. 클러스터의 모든 GKE 노드에서 실행되어 로그를 수집하고, 컨테이너, 포드, 클러스터에 대한 유용한 메타데이터를 추가한 후, fluentbit 기반 에이전트를 사용하여 Cloud Logging에 로그를 전송합니다.

전용 Logging 에이전트는 초당 100KiB 이상의 시스템 및 워크로드 로그 노드당 로그 처리량을 보장합니다. 노드 사용률이 낮을 경우 로그 로드 유형(예: 텍스트 또는 구조화된 로그 항목, 노드의 컨테이너 수가 매우 적거나 컨테이너가 많은 경우)에 따라 전용 로깅 에이전트가 초당 최대 500KiB 이상의 처리량을 제공할 수 있습니다. 또한 GKE 제어 영역 버전 1.23.13-gke.1000 이상이 있는 클러스터에서 Logging 에이전트는 사용되지 않은 CPU 코어가 최소 2개 이상 있는 노드에서 처리량을 초당 10MiB까지 허용합니다. 하지만 처리량이 늘어날 경우 일부 로그가 손실될 수 있다는 점에 유의하세요.

로그 처리량이 더 높은 노드 식별

기본적으로 GKE 클러스터는 시스템 측정항목을 수집합니다. 시스템 측정항목 kubernetes.io/node/logs/input_bytes는 노드에서 초당 생성된 로그 바이트 수를 제공합니다. 이 측정항목은 클러스터 또는 노드 풀에 배포하는 데 적합한 로깅 에이전트 변형을 결정하는 데 도움이 될 수 있습니다.

클러스터의 각 노드에 대해 이전 로깅 처리량을 보려면 다음 단계를 수행합니다.

  1. Google Cloud 콘솔에서  측정항목 탐색기 페이지로 이동합니다.

    측정항목 탐색기로 이동

    검색창을 사용하여 이 페이지를 찾은 경우 부제목이 Monitoring인 결과를 선택합니다.

  2. 측정항목 선택 필드에서 kubernetes.io/node/logs/input_bytes를 선택합니다.

  3. 그룹화 기준 필드에서 project_id, location, cluster_name, node_name을 선택합니다.

  4. 확인을 클릭합니다.

  5. 선택적으로 측정항목 목록 위에 있는 열 헤더 을 클릭하여 측정항목 목록을 내림차순으로 정렬합니다.

시스템 구성요소 또는 노드에서 실행되는 워크로드로 인해 발생하는 로깅 볼륨을 확인하려면 유형 측정항목 라벨을 사용하여 그룹화할 수도 있습니다.

처리량이 높은 로깅 사용 설정

GKE 노드에 초당 100KiB 이상의 로그 처리량이 필요하고 GKE Standard 클러스터가 제어 영역 버전 1.23.13-gke.1000 이상을 사용하는 경우 로깅 처리량을 극대화하도록 설계된 Logging 에이전트의 대체 구성을 배포하도록 GKE를 구성할 수 있습니다. 이 최대 처리량 로깅 변형은 노드당 1초에 최대 10MiB의 처리량을 허용합니다. 처리량이 높은 Logging 에이전트를 클러스터의 모든 노드 또는 노드 풀의 모든 노드에 배포할 수 있습니다.

이 처리량이 높은 구성은 추가 CPU 및 메모리를 사용합니다.

gcloud CLI

새 클러스터의 모든 노드에서 처리량이 높은 로깅을 사용 설정하려면 다음 안내를 따르세요.

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

다음을 바꿉니다.

  • CLUSTER_NAME: 새 클러스터의 이름
  • COMPUTE_LOCATION: 새 클러스터의 Compute Engine 위치
  • MACHINE_TYPE: Logging 에이전트에 충분한 CPU가 있는 머신 유형(예: e2-standard-8)

기본 노드 풀을 포함하여 이 클러스터에서 새로 생성된 모든 노드 풀은 처리량이 높은 Logging 에이전트를 배포합니다.

기존 클러스터에 처리량이 높은 로깅이 이미 설정되어 있는지 확인하려면 gcloud container cluster describe 명령어를 사용합니다.

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

다음을 바꿉니다.

기존 클러스터에 처리량이 높은 로깅을 구성하려면 gcloud container clusters update 명령어를 사용합니다.

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

다음을 바꿉니다.

처리량이 높은 Logging 에이전트를 사용하는 새 노드 풀을 만들려면 gcloud container node-pools create 명령어를 사용하세요.

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

다음을 바꿉니다.

  • NODEPOOL_NAME: 새 노드 풀의 이름입니다.
  • CLUSTER_NAME: 클러스터의 이름
  • COMPUTE_LOCATION: 새 클러스터의 Compute Engine 위치

기존 노드 풀에 처리량이 높은 로깅이 이미 설정되어 있는지 확인하려면 gcloud container node-pools describe 명령어를 사용합니다.

gcloud container node-pools describe NODEPOOL_NAME \
   --cluster=CLUSTER_NAME \
   --location=COMPUTE_LOCATION  \
   --format="value(config.loggingConfig.variantConfig.variant)"

다음을 바꿉니다.

기존 노드 풀을 업데이트하려면 gcloud container node-pools update 명령어를 사용합니다.

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

다음을 바꿉니다.

  • NODEPOOL_NAME: 노드 풀의 이름입니다.
  • CLUSTER_NAME: 클러스터의 이름
  • COMPUTE_LOCATION: Compute Engine 위치

Terraform

다음 코드 블록은 높은 처리량 로깅 여부와 관계없이 노드 풀을 선언하는 방법을 지정합니다.

노드 풀을 명시적으로 관리하려면 기본 노드 풀 없이 클러스터를 지정해야 합니다.

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

높은 처리량 에이전트를 사용하는 노드 풀을 지정하려면 node_config 필드를 사용하여 Logging 에이전트 변형을 MAX_THROUGHPUT 및 적절한 머신 유형으로 지정합니다.

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
}

기본 에이전트를 사용하는 노드 풀을 지정하려면 node_config 필드를 사용하여 Logging 에이전트 변형을 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
}

처리량이 높은 로깅 사용 중지

처리량이 높은 Logging 에이전트를 더 이상 사용하지 않으려면 클러스터 또는 노드 풀에 기본 Logging 에이전트를 배포합니다.

gcloud CLI

클러스터 또는 노드 풀을 만들거나 업데이트할 때 --logging-variant=DEFAULT 플래그를 전달합니다.

새 클러스터의 모든 노드에서 기본 로깅 에이전트를 사용하려면 다음 단계를 따르세요.

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

다음을 바꿉니다.

  • CLUSTER_NAME: 새 클러스터의 이름
  • COMPUTE_LOCATION: 새 클러스터의 Compute Engine 위치
  • MACHINE_TYPE: Logging 에이전트에 충분한 CPU가 있는 머신 유형(예: e2-standard-8)

기존 클러스터에서 기본 Logging 에이전트를 사용하려면 gcloud container clusters update 명령어를 사용합니다.

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

다음을 바꿉니다.

새 노드 풀에 기본 로깅 에이전트를 사용하려면 gcloud container node-pools create 명령어를 사용합니다.

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

다음을 바꿉니다.

  • NODEPOOL_NAME: 새 노드 풀의 이름입니다.
  • CLUSTER_NAME: 클러스터의 이름
  • COMPUTE_LOCATION: 새 클러스터의 Compute Engine 위치

기존 노드 풀을 업데이트하려면 gcloud container node-pools update 명령어를 사용합니다.

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

다음을 바꿉니다.

  • NODEPOOL_NAME: 노드 풀의 이름입니다.
  • CLUSTER_NAME: 클러스터의 이름
  • COMPUTE_LOCATION: Compute Engine 위치

Terraform

Terraform에서 처리량이 높은 Logging 에이전트를 사용하는 노드 풀을 더 이상 만들지 않도록 하려면 logging_variant 필드를 DEFAULT로 설정합니다.

다음 단계