Halaman ini memberikan informasi tentang peristiwa keputusan yang dikeluarkan oleh penskalakan otomatis Pod vertikal di Google Kubernetes Engine (GKE). Dengan menganalisis peristiwa ini, Anda dapat memperoleh insight tentang cara pengontrol penskalaan otomatis Pod vertikal mengelola penskalaan beban kerja dan memahami proses pengambilan keputusan di balik tindakannya.
Penskalaan otomatis Pod vertikal menghasilkan peristiwa keputusan, yang disimpan sebagai entri log di Cloud Logging.
Sebelum memulai
Pastikan untuk menyelesaikan prasyarat berikut:
Pilih atau buat project
Anda dapat menggunakan project yang ada, atau membuat project baru untuk tutorial ini.
-
In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Cloud de Confiance project.
Mengaktifkan API
Aktifkan GKE dan Cloud Logging API.
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan izin serviceusage.services.enable. Jika Anda
membuat project, kemungkinan Anda sudah memiliki izin ini melalui
peran Pemilik (roles/owner). Jika tidak, Anda bisa mendapatkan izin ini melalui
peran Admin Penggunaan Layanan (roles/serviceusage.serviceUsageAdmin).
Pelajari cara memberikan peran.
Menyiapkan Cloud Shell
Dalam tutorial ini, Anda akan menggunakan Cloud Shell untuk menjalankan perintah gcloud dan kubectl. Cloud Shell adalah lingkungan shell untuk mengelola
resource yang dihosting di Cloud de Confiance by S3NS. Cloud Shell telah diinstal lebih dulu dengan alat command line
Google Cloud CLI dan kubectl.
Di konsol Cloud de Confiance , aktifkan Cloud Shell.
Sesi Cloud Shell akan terbuka di dalam frame yang lebih rendah di konsol.
Sebelum menjalankan perintah dalam tutorial ini, pastikan project default Anda ditetapkan ke project ID tempat Anda ingin men-deploy aplikasi contoh. Jika belum ditetapkan, jalankan perintah berikut di Cloud Shell:
gcloud config set project PROJECT_ID
Ganti PROJECT_ID dengan project ID Anda.
Peran dan izin yang diperlukan
Untuk mendapatkan izin yang diperlukan untuk mengaktifkan pembuatan log, serta mengakses dan memproses log, minta administrator untuk memberi Anda peran IAM berikut pada project:
-
Untuk mengaktifkan logging peristiwa penskalaan otomatis Pod vertikal di cluster Anda:
Kubernetes Engine Cluster Admin (
roles/container.clusterAdmin) -
Untuk mengakses log dan menggunakan Logs Explorer serta Observability Analytics:
Logs Viewer (
roles/logging.viewer)
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Persyaratan
- Cluster GKE Anda harus menjalankan versi
1.36.0-gke.1601000atau yang lebih baru. - Aktifkan Cloud Logging di cluster GKE Anda.
- Pastikan Anda memiliki vertical Pod autoscaler yang ingin dipantau. Pastikan kolom penskalaan otomatis Pod vertikal tidak menyertakan data sensitif.
Biaya
Harga Cloud Logging berlaku saat Anda mengaktifkan Cloud Logging dan mengumpulkan log keputusan penskalaan otomatis Pod vertikal.
Mengaktifkan log keputusan penskalaan otomatis Pod vertikal
Perintah di bagian berikut memungkinkan mengekspor log yang dihasilkan oleh KCP_VPA dan menyimpan log di tujuan logName="projects/PROJECT_ID/logs/container.googleapis.com%2Fvpa-controller" dalam Cloud Logging.
Mengaktifkan log di cluster baru
Untuk membuat cluster baru dengan log keputusan KCP_VPA yang diaktifkan, jalankan
perintah berikut.
gcloud container clusters create CLUSTER_NAME \
--location=LOCATION \
--project=PROJECT_ID \
--logging=SYSTEM,KCP_VPA
Ganti kode berikut:
CLUSTER_NAME: nama cluster yang ingin Anda buat atau perbarui.PROJECT_ID: ID project Cloud de Confiance Anda.LOCATION: region atau zona komputasi untuk cluster Anda.
Mengaktifkan log di cluster yang ada
Untuk mengaktifkan log keputusan KCP_VPA di cluster yang ada, lakukan hal berikut:
Tinjau konfigurasi cluster yang ada. Jika cluster telah mengonfigurasi komponen logging tertentu, tentukan apakah Anda ingin menambahkan atau mengganti konfigurasi logging yang ada.
Untuk mengaktifkan log keputusan penskalaan otomatis Pod vertikal, jalankan perintah berikut. Jika Anda menambahkan ke konfigurasi yang ada, tambahkan juga konfigurasi logging yang ada ke perintah.
gcloud container clusters update CLUSTER_NAME \ --location=LOCATION \ --project=PROJECT_ID \ --logging=SYSTEM,KCP_VPAGanti kode berikut:
CLUSTER_NAME: nama cluster yang ingin Anda buat atau perbarui.PROJECT_ID: Cloud de Confiance Project ID Anda.LOCATION: region atau zona komputasi untuk cluster Anda.
Memastikan logging diaktifkan
Untuk memverifikasi bahwa log keputusan KCP_VPA diaktifkan di cluster, ambil konfigurasi logging yang diperbarui dari cluster dan tinjau daftar log. Untuk melakukannya, jalankan perintah berikut:
gcloud container clusters describe CLUSTER_NAME \
--location=LOCATION \
--flatten=loggingConfig \
--format='csv[delimiter=",",no-heading](componentConfig.enableComponents)'
Ganti kode berikut:
CLUSTER_NAME: nama cluster.LOCATION: region atau zona komputasi untuk cluster Anda.
Jika log keputusan KCP_VPA diaktifkan pada cluster, output-nya akan mirip dengan berikut ini:
SYSTEM_COMPONENTS,APISERVER,CONTROLLER_MANAGER,SCHEDULER,KCP_VPA
Melihat log penskalaan otomatis Pod vertikal di Logs Explorer
Anda dapat memantau perilaku penskalaan otomatis Pod vertikal di Logs Explorer. Untuk melihat log penskalaan otomatis Pod vertikal, selesaikan langkah-langkah berikut:
Buka halaman Logs Explorer:
Pilih All log names, lalu telusuri nama log untuk
vpa-controller.Penjelajah log menampilkan semua log penskalaan otomatis Pod vertikal, termasuk log dari semua cluster yang mengaktifkan log penskalaan otomatis Pod vertikal dalam project.
Anda dapat memfilter log menggunakan nama cluster atau nama workload. Misalnya, untuk mencantumkan peristiwa dari workload tertentu dalam cluster, tentukan nama cluster dan nama workload menggunakan kueri berikut:
resource.labels.cluster_name="CLUSTER_NAME" AND jsonPayload.target.name="WORKLOAD_NAME"Ganti kode berikut:
CLUSTER_NAME: nama cluster.WORKLOAD_NAME: nama workload.
Menonaktifkan log keputusan penskalaan otomatis Pod vertikal
Untuk menonaktifkan log keputusan
KCP_VPAdi cluster yang ada, jalankan perintah berikut:gcloud container clusters update CLUSTER_NAME \ --location=LOCATION \ --project=PROJECT_ID \ --logging=SYSTEMPastikan log keputusan
KCP_VPAdinonaktifkan. Untuk melakukannya, jalankan perintah berikut:gcloud container clusters describe CLUSTER_NAME \ --location=LOCATION \ --flatten=loggingConfig \ --format='csv[delimiter=",",no-heading](componentConfig.enableComponents)'Jika log keputusan
KCP_VPAdinonaktifkan di cluster, outputnya akan mirip dengan yang berikut ini:SYSTEM_COMPONENTS,APISERVER,CONTROLLER_MANAGER,SCHEDULER
Jenis log
Peristiwa keputusan untuk penskalaan otomatis Pod vertikal disimpan di Cloud Logging, di lokasi logName="projects/PROJECT_ID/logs/container.googleapis.com%2Fvpa-controller" yang ada di _Default bucket dalam project yang sama dengan cluster GKE Anda. Semua peristiwa yang dicatat ke dalam log memiliki format JSON dan dapat ditemukan di kolom jsonPayload pada entri log.
Jenis dan frekuensi log yang dihasilkan bergantung pada mode penskalaan otomatis Pod vertikal yang dikonfigurasi untuk workload Anda. Ada empat jenis log VPA, yang dikategorikan berdasarkan operasi yang mereka lakukan:
- Perbarui rekomendasi: setiap penskalaan otomatis Pod vertikal menghasilkan satu log rekomendasi pembaruan baru setiap menit.
- Keluarkan Pod: setiap penskalaan otomatis Pod vertikal menghasilkan satu log keluarkan Pod untuk setiap Pod saat penskalaan otomatis Pod vertikal memutuskan untuk mengubah ukuran dalam mode
Recreate. - Terapkan rekomendasi saat penghapusan: setiap penskalaan otomatis Pod vertikal menghasilkan satu log rekomendasi penerapan untuk setiap Pod saat penskalaan otomatis Pod vertikal memutuskan untuk mengubah ukuran dalam mode
Recreate. - Terapkan rekomendasi di tempat: setiap penskalaan otomatis Pod vertikal menghasilkan satu log penerapan rekomendasi di tempat untuk setiap Pod saat penskalaan otomatis Pod vertikal memutuskan untuk mengubah ukuran dalam mode
InPlaceOrRecreate.
Jenis log yang dapat dikeluarkan pengontrol bergantung pada mode penskalaan otomatis Pod vertikal. Tabel berikut mencantumkan log yang dapat dipancarkan untuk setiap mode.
| Mode penskalaan otomatis Pod vertikal | Jenis log yang dapat dikeluarkan |
|---|---|
Auto (tidak digunakan lagi) atau Recreate |
|
InPlaceOrRecreate |
|
Untuk penskalaan otomatis Pod vertikal dengan mode InPlaceOrRecreate, jika
In-place resize gagal, penskalaan otomatis akan berperilaku sama seperti mode
Recreate.
Memperbarui rekomendasi
Log rekomendasi update dapat dibuat dengan mode penskalaan otomatis Pod vertikal berikut: Auto (tidak digunakan lagi), Recreate, dan InPlaceOrRecreate.
jsonPayload dari log keputusan ini mencakup kolom berikut:
| Kolom | Deskripsi |
|---|---|
vpaName |
Nama VPA. |
vpaNamespace |
Namespace VPA. |
target |
Beban kerja yang ditargetkan VPA ini.
|
operation |
Operasi yang sedang berjalan. Nilainya adalah salah satu dari berikut:
|
state |
Status operasi. Nilainya adalah salah satu dari berikut:
|
reason |
Alasan menjelaskan mengapa operasi dilewati atau gagal. Untuk kasus keberhasilan operasi |
recommendedResources |
Rekomendasi mentah. Hal ini sama persis dengan kolom Status.Recommendation dalam objek VPA.
|
confidence |
Tingkat keyakinan rekomendasi. Kolom ini ada saat statusnya adalah succeeded. Nilainya adalah salah satu dari berikut:
|
Contoh log rekomendasi pembaruan:
{
"insertId": "ehz6w9d304v4zttg",
"jsonPayload": {
"state": "SUCCEEDED",
"instance": {
"vm_name": "my-unique-vm-identifier",
"zone": "us-central1-c"
},
"recommendedResources": [
{
"lowerBound": {
"memory": "5Mi",
"cpu": "5m"
},
"containerName": "nginx",
"uncappedTarget": {
"memory": "5Mi",
"cpu": "1m"
},
"upperBound": {
"memory": "5Mi",
"cpu": "5m"
},
"target": {
"memory": "5Mi",
"cpu": "5m"
}
}
],
"operation": "UPDATE_RECOMMENDATION",
"target": {
"name": "my-workload",
"kind": "Deployment",
"apiVersion": "apps/v1"
},
"vpaNamespace": "default",
"vpaName": "my-vpa"
},
"resource": {
"type": "k8s_control_plane_component",
"labels": {
"component_location": "us-central1-c",
"project_id": "my-project",
"cluster_name": "my-cluster",
"location": "us-central1-c",
"component_name": "vpa-controller"
}
},
"timestamp": "2026-01-22T19:28:16.069635605Z",
"severity": "INFO",
"labels": {
"compute.googleapis.com/resource_name": "my-unique-vm-identifier"
},
"logName": "projects/my-project/logs/container.googleapis.com%2Fvpa-controller",
"sourceLocation": {
"file": "vpa_event_logger.go",
"line": "23"
},
"receiveTimestamp": "2026-01-22T19:28:17.750678359Z"
}
Mengeluarkan Pod
Log Pod yang dikeluarkan tersedia dengan mode VPA Auto (tidak digunakan lagi) dan Recreate.
Jenis log ini juga dapat terjadi dengan mode VPA InPlaceOrRecreate jika operasi
In-place resize gagal.
jsonPayload dari log keputusan ini mencakup kolom berikut:
| Kolom | Deskripsi |
|---|---|
vpaName |
Nama VPA. |
vpaNamespace |
Namespace VPA. |
target |
Beban kerja yang ditargetkan VPA ini.
|
operation |
Operasi yang sedang berjalan. Nilainya adalah salah satu dari berikut:
|
state |
Status operasi. Nilainya adalah salah satu dari berikut:
|
reason |
Alasan menjelaskan mengapa operasi dilewati atau gagal. Untuk kasus keberhasilan operasi |
pod |
Nama Pod. |
Contoh log Pod yang dikeluarkan:
{
"insertId": "8x278gc4f75oowf4",
"jsonPayload": {
"target": {
"kind": "Deployment",
"apiVersion": "apps/v1",
"name": "my-deployment"
},
"operation": "EVICT_POD",
"vpaName": "my-vpa",
"pod": "my-deployment-856ff7966-gr4rh",
"state": "SUCCEEDED",
"vpaNamespace": "default",
"instance": {
"vm_name": "my-unique-vm-identifier",
"zone": "us-central1-c"
}
},
"resource": {
"type": "k8s_control_plane_component",
"labels": {
"component_name": "vpa-controller",
"cluster_name": "my-cluster",
"component_location": "us-central1-c",
"location": "us-central1-c",
"project_id": "my-project"
}
},
"timestamp": "2026-01-22T19:26:25.283067078Z",
"severity": "INFO",
"labels": {
"compute.googleapis.com/resource_name": "my-unique-vm-identifier"
},
"logName": "projects/my-project/logs/container.googleapis.com%2Fvpa-controller",
"sourceLocation": {
"file": "vpa_event_logger.go",
"line": "23"
},
"receiveTimestamp": "2026-01-22T19:26:27.766941073Z"
}
Menerapkan rekomendasi saat pengusiran
Penerapan rekomendasi pada log pengusiran tersedia dengan mode VPA
Auto (tidak digunakan lagi) dan Recreate. Jenis log ini juga dapat terjadi dengan mode VPA
InPlaceOrRecreate jika In-place resize gagal.
jsonPayload dari log keputusan ini mencakup kolom berikut:
| Kolom | Deskripsi |
|---|---|
vpaName |
Nama VPA. |
vpaNamespace |
Namespace VPA. |
target |
Beban kerja yang ditargetkan VPA ini.
|
operation |
Operasi yang sedang berjalan. Nilainya adalah salah satu dari berikut:
|
state |
Status operasi. Nilainya adalah salah satu dari berikut:
|
reason |
Alasan menjelaskan mengapa operasi dilewati atau gagal. Untuk kasus keberhasilan operasi |
pod |
Nama Pod. |
appliedResources |
Resource yang diterapkan ke Pod.
|
confidence |
Tingkat keyakinan rekomendasi. Kolom ini ada saat statusnya adalah succeeded. Nilainya adalah salah satu dari berikut:
|
Contoh penerapan rekomendasi pada log pengusiran:
{
"insertId": "366tcmgdkq94eppg",
"jsonPayload": {
"appliedResources": [
{
"containerName": "my-container",
"requests": {
"memory": "15Mi",
"cpu": "15m"
}
}
],
"vpaName": "my-vpa",
"vpaNamespace": "default",
"instance": {
"zone": "us-central1-c",
"vm_name": "my-unique-vm-identifier"
},
"pod": "my-deployment-856ff7966-%",
"state": "SUCCEEDED",
"target": {
"name": "my-deployment",
"kind": "Deployment",
"apiVersion": "apps/v1"
},
"operation": "APPLY_RECOMMENDATION_ON_EVICTION"
},
"resource": {
"type": "k8s_control_plane_component",
"labels": {
"location": "us-central1-c",
"component_location": "us-central1-c",
"cluster_name": "my-cluster",
"component_name": "vpa-controller",
"project_id": "my-project"
}
},
"timestamp": "2026-01-22T19:26:25.344313199Z",
"severity": "INFO",
"labels": {
"compute.googleapis.com/resource_name": "my-unique-vm-identifier"
},
"logName": "projects/my-project/logs/container.googleapis.com%2Fvpa-controller",
"sourceLocation": {
"file": "vpa_event_logger.go",
"line": "23"
},
"receiveTimestamp": "2026-01-22T19:26:32.744122156Z"
}
Menerapkan rekomendasi di tempat
Log penerapan rekomendasi di tempat tersedia dengan mode VPA
InPlaceOrRecreate.
jsonPayload dari log keputusan ini mencakup kolom berikut:
| Kolom | Deskripsi |
|---|---|
vpaName |
Nama VPA. |
vpaNamespace |
Namespace VPA. |
target |
Beban kerja yang ditargetkan VPA ini.
|
operation |
Operasi yang sedang berjalan. Nilainya adalah salah satu dari berikut:
|
state |
Status operasi. Nilainya adalah salah satu dari berikut:
|
reason |
Alasan menjelaskan mengapa operasi dilewati atau gagal. Untuk kasus keberhasilan operasi |
pod |
Nama Pod. |
appliedResources |
Resource yang diterapkan ke Pod.
|
confidence |
Tingkat keyakinan rekomendasi. Kolom ini ada saat statusnya adalah succeeded. Nilainya adalah salah satu dari berikut:
|
Contoh penerapan rekomendasi dalam log penempatan:
{
"insertId": "suzfuepgyiwap7hb",
"jsonPayload": {
"pod": "my-deployment-cdc7fd7b4-grxlk",
"vpaNamespace": "default",
"state": "SUCCEEDED",
"target": {
"name": "my-deployment",
"apiVersion": "apps/v1",
"kind": "Deployment"
},
"operation": "APPLY_RECOMMENDATION_IN_PLACE",
"appliedResources": [
{
"containerName": "my-container",
"limits": {
"cpu": "10m",
"memory": "10Mi"
},
"requests": {
"cpu": "5m",
"memory": "5Mi"
}
}
],
"instance": {
"zone": "us-central1-c",
"vm_name": "my-unique-vm-identifier"
},
"vpaName": "my-vpa"
},
"resource": {
"type": "k8s_control_plane_component",
"labels": {
"project_id": "my-project",
"component_location": "us-central1-c",
"cluster_name": "my-cluster",
"location": "us-central1-c",
"component_name": "vpa-controller"
}
},
"timestamp": "2026-01-22T19:26:25.214095375Z",
"severity": "INFO",
"labels": {
"compute.googleapis.com/resource_name": "my-unique-vm-identifier"
},
"logName": "projects/my-project/logs/container.googleapis.com%2Fvpa-controller",
"sourceLocation": {
"file": "vpa_event_logger.go",
"line": "23"
},
"receiveTimestamp": "2026-01-22T19:26:27.766941073Z"
}
Pemecahan masalah
Bagian ini menjelaskan masalah dan langkah-langkah penyelesaian terkait peristiwa penskalaan otomatis Pod vertikal.
Tidak ada peristiwa
Jika Anda tidak melihat peristiwa keputusan penskalaan otomatis Pod vertikal, pastikan Anda telah melakukan semua hal berikut:
- Anda telah mengaktifkan Cloud Logging untuk cluster.
- Anda telah mengaktifkan log
KCP_VPAuntuk cluster. - Anda telah men-deploy setidaknya satu objek
vpayang dikonfigurasi dengan benar ke cluster Anda.
Untuk melihat konfigurasi objek vpa, jalankan perintah berikut:
kubectl describe vpa $VPA_NAME
Jika Anda masih tidak melihat log KCP_VPA, hubungi
Cloud de Confiance Dukungan.
Langkah berikutnya
- Lihat Tentang log GKE.
- Memahami log GKE Anda.
- Pelajari cara menemukan log GKE tertentu menggunakan kueri contoh.
- Pelajari lebih lanjut penskalaan otomatis Pod vertikal.