Menyesuaikan throughput log


Dokumen ini menjelaskan throughput log default dan cara meningkatkan throughput.

Saat logging sistem diaktifkan, agen Logging khusus akan otomatis di-deploy dan dikelola. Agen ini berjalan di semua node GKE dalam cluster untuk mengumpulkan log, menambahkan metadata yang berguna tentang penampung, pod, dan cluster, lalu mengirim log ke Cloud Logging menggunakan agen berbasis Fluentbit.

Agen Logging khusus menyediakan minimal 100 KiB per throughput log per detik per node untuk log sistem dan beban kerja. Jika node tidak digunakan sepenuhnya, agen logging khusus dapat memberikan throughput sebanyak 500 KiB per detik atau lebih, bergantung pada jenis beban log (misalnya, teks atau entri log terstruktur, sangat sedikit penampung di node atau banyak penampung). Selain itu, di cluster dengan bidang kontrol GKE versi 1.23.13-gke.1000 atau yang lebih baru, agen Logging memungkinkan throughput setinggi 10 MiB per detik pada node yang memiliki setidaknya 2 core CPU yang tidak digunakan. Namun, perlu diperhatikan bahwa pada throughput yang lebih tinggi, beberapa log dapat hilang.

Mengidentifikasi node dengan throughput log yang lebih tinggi

Secara default, cluster GKE mengumpulkan metrik sistem. Metrik sistem kubernetes.io/node/logs/input_bytes memberikan jumlah byte log yang dihasilkan per detik di node. Metrik ini dapat membantu Anda memutuskan varian agen logging mana yang sesuai untuk di-deploy di cluster atau kumpulan node.

Untuk melihat throughput logging historis untuk setiap node di cluster Anda, ikuti langkah-langkah berikut:

  1. Di konsol Google Cloud, buka halaman  Metrics explorer:

    Buka Metrics explorer

    Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Monitoring.

  2. Di kolom Select a metric, pilih kubernetes.io/node/logs/input_bytes.

  3. Di kolom Group by, pilih project_id, location, cluster_name, dan node_name.

  4. Klik OK

  5. Secara opsional, urutkan daftar metrik dalam urutan menurun dengan mengklik header kolom Nilai di atas daftar metrik.

Untuk memahami jumlah volume logging yang disebabkan oleh komponen sistem atau karena beban kerja yang berjalan di node, Anda juga dapat mengelompokkan menurut label metrik type.

Mengaktifkan logging throughput tinggi

Jika node GKE memerlukan throughput log lebih dari 100 KiB per detik dan cluster GKE Standar Anda menggunakan kontrol plane versi 1.23.13-gke.1000 atau yang lebih baru, Anda dapat mengonfigurasi GKE untuk men-deploy konfigurasi alternatif agen Logging yang dirancang untuk memaksimalkan throughput logging. Varian logging throughput maksimum ini memungkinkan throughput hingga 10 MiB per detik per node. Anda dapat men-deploy agen Logging throughput tinggi ini ke semua node dalam cluster atau ke semua node dalam node pool.

Konfigurasi throughput tinggi ini akan menggunakan CPU dan memori tambahan.

gcloud CLI

Untuk mengaktifkan logging throughput tinggi di semua node dalam cluster baru:

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

Ganti kode berikut:

  • CLUSTER_NAME: nama cluster baru.
  • COMPUTE_LOCATION: Lokasi Compute Engine untuk cluster baru.
  • MACHINE_TYPE: jenis mesin yang memiliki CPU yang memadai untuk agen Logging, seperti e2-standard-8.

Semua node pool yang baru dibuat di cluster ini, termasuk node pool default, men-deploy agen Logging dengan throughput tinggi.

Untuk mengonfirmasi apakah logging throughput tinggi sudah ditetapkan untuk cluster yang ada, gunakan perintah gcloud container cluster describe:

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

Ganti kode berikut:

Untuk mengonfigurasi logging throughput tinggi untuk cluster yang ada: gunakan perintah gcloud container clusters update:

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

Ganti kode berikut:

Untuk membuat node pool baru yang menggunakan agen Logging throughput tinggi, gunakan perintah gcloud container node-pools create:

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

Ganti kode berikut:

  • NODEPOOL_NAME: nama node pool baru.
  • CLUSTER_NAME: nama cluster.
  • COMPUTE_LOCATION: Lokasi Compute Engine untuk cluster baru.

Untuk mengonfirmasi apakah logging throughput tinggi sudah ditetapkan untuk node pool yang ada, gunakan perintah gcloud container node-pools describe:

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

Ganti kode berikut:

Untuk memperbarui node pool yang ada, gunakan perintah gcloud container node-pools update.

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

Ganti kode berikut:

Terraform

Blok kode berikut menentukan cara mendeklarasikan kumpulan node dengan atau tanpa logging throughput tinggi.

Untuk mengelola node pool secara eksplisit, Anda harus menentukan cluster tanpa node pool default.

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

Untuk menentukan node pool yang menggunakan agen throughput tinggi, gunakan kolom node_config untuk menentukan varian Agen logging sebagai MAX_THROUGHPUT dan jenis mesin yang sesuai:

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
}

Untuk menentukan node pool yang menggunakan agen default, gunakan kolom node_config untuk menentukan varian agen Logging sebagai 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
}

Menonaktifkan logging throughput tinggi

Jika Anda tidak ingin lagi menggunakan agen Logging dengan throughput tinggi, deploy agen Logging default ke cluster atau node pool.

gcloud CLI

Teruskan flag --logging-variant=DEFAULT saat Anda membuat atau mengupdate cluster atau node pool.

Untuk menggunakan agen logging default di semua node dalam cluster baru:

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

Ganti kode berikut:

  • CLUSTER_NAME: nama cluster baru.
  • COMPUTE_LOCATION: Lokasi Compute Engine untuk cluster baru.
  • MACHINE_TYPE: jenis mesin yang memiliki CPU yang memadai untuk agen Logging, seperti e2-standard-8.

Untuk menggunakan agen logging default di cluster yang ada: gunakan perintah gcloud container clusters update:

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

Ganti kode berikut:

Untuk menggunakan agen logging default untuk node pool baru, gunakan perintah gcloud container node-pools create:

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

Ganti kode berikut:

  • NODEPOOL_NAME: nama node pool baru.
  • CLUSTER_NAME: nama cluster.
  • COMPUTE_LOCATION: Lokasi Compute Engine untuk cluster baru.

Untuk mengupdate node pool yang ada, gunakan perintah gcloud container node-pools update:

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

Ganti kode berikut:

Terraform

Jika Anda tidak ingin lagi Terraform membuat node pool yang menggunakan agen Logging dengan throughput tinggi, tetapkan kolom logging_variant ke DEFAULT.

Langkah berikutnya