Halaman ini menunjukkan cara menskalakan cluster Google Kubernetes Engine (GKE) Standard secara otomatis. Untuk mempelajari cara kerja autoscaler cluster, lihat Autoscaler cluster.
Dengan cluster Autopilot, Anda tidak perlu khawatir dengan penyediaan node atau pengelolaan node pool karena node pool disediakan otomatis melalui penyediaan otomatis node, dan penskalaan otomatis untuk memenuhi persyaratan workload Anda.
Menggunakan autoscaler cluster
Bagian berikut menjelaskan cara menggunakan autoscaler cluster.
Membuat cluster dengan penskalaan otomatis
Anda dapat membuat cluster dengan penskalaan otomatis yang diaktifkan menggunakan Google Cloud CLI atau konsol Google Cloud.
gcloud
Untuk membuat cluster dengan penskalaan otomatis yang diaktifkan, gunakan flag --enable-autoscaling
, lalu tentukan --min-nodes
dan --max-nodes
:
gcloud container clusters create CLUSTER_NAME \
--enable-autoscaling \
--num-nodes NUM_NODES \
--min-nodes MIN_NODES \
--max-nodes MAX_NODES \
--region=COMPUTE_REGION
Ganti kode berikut:
CLUSTER_NAME
: nama cluster yang akan dibuat.NUM_NODES
: jumlah node yang akan dibuat di setiap lokasi.MIN_NODES
: jumlah minimum node yang akan diskalakan secara otomatis untuk node pool yang ditentukan per zona. Guna menentukan jumlah minimum node untuk seluruh node pool di GKE versi 1.24 dan yang lebih baru, gunakan--total-min-nodes
. Flag--total-min-nodes
dan--total-max-nodes
tidak dapat muncul bersamaan dengan flag--min-nodes
dan--max-nodes
.MAX_NODES
: jumlah maksimum node yang akan diskalakan secara otomatis untuk node pool yang ditentukan per zona. Guna menentukan jumlah maksimum node untuk seluruh node pool di GKE versi 1.24 dan yang lebih baru, gunakan--total-max-nodes
. Flag--total-min-nodes
dan--total-max-nodes
tidak dapat muncul bersamaan dengan flag--min-nodes
dan--max-nodes
.COMPUTE_REGION
: region Compute Engine untuk cluster baru. Untuk cluster zona, gunakan--zone=COMPUTE_ZONE
.
Contoh: Membuat cluster dengan penskalaan otomatis node diaktifkan serta node min dan maks
Perintah berikut membuat cluster dengan 90 node, atau 30 node di setiap 3 zona yang ada di region tersebut. Penskalaan otomatis node diaktifkan dan mengubah ukuran jumlah node berdasarkan muatan cluster. Autoscaler cluster dapat mengurangi ukuran node pool default hingga 15 node atau menambah node pool hingga maksimum 50 node per zona.
gcloud container clusters create my-cluster --enable-autoscaling \
--num-nodes=30 \
--min-nodes=15 --max-nodes=50 \
--region=us-central
Contoh: Membuat cluster dengan penskalaan otomatis node diaktifkan dan node total
Perintah berikut membuat cluster dengan 30 node, atau 10 node di setiap 3 zona yang ada di region tersebut. Penskalaan otomatis node diaktifkan dan mengubah ukuran jumlah node berdasarkan muatan cluster. Dalam contoh ini, ukuran total cluster dapat berkisar antara 10 hingga 60 node, terlepas dari penyebaran antar-zona.
gcloud container clusters create my-cluster --enable-autoscaling \
--num-nodes 10 \
--region us-central1 \
--total-min-nodes 10 --total-max-nodes 60
Konsol
Untuk membuat cluster baru dengan penskalaan otomatis diaktifkan untuk node pool default:
Buka halaman Google Kubernetes Engine di konsol Google Cloud.
Klik add_box Create.
Konfigurasikan cluster Anda sesuai keinginan.
Dari panel navigasi, di bagian Node Pools, klik default-pool.
Centang kotak Enable autoscaling.
Ubah nilai minimum node pada kolom Minimum number of nodes dan nilai maksimum node pada kolom Maximum number of nodes sesuai keinginan.
Klik Create.
Menambahkan node pool dengan penskalaan otomatis
Anda dapat membuat node pool dengan penskalaan otomatis yang diaktifkan menggunakan gcloud CLI atau konsol Google Cloud.
gcloud
Untuk menambahkan node pool dengan penskalaan otomatis ke cluster yang ada, gunakan perintah berikut:
gcloud container node-pools create POOL_NAME \
--cluster=CLUSTER_NAME \
--enable-autoscaling \
--min-nodes=MIN_NODES \
--max-nodes=MAX_NODES \
--region=COMPUTE_REGION
Ganti kode berikut:
POOL_NAME
: nama node pool yang diinginkan.CLUSTER_NAME
: nama cluster tempat node pool dibuat.MIN_NODES
: jumlah minimum node yang akan diskalakan secara otomatis untuk node pool yang ditentukan per zona. Guna menentukan jumlah minimum node untuk seluruh node pool di GKE versi 1.24 dan yang lebih baru, gunakan--total-min-nodes
. Flag--total-min-nodes
dan--total-max-nodes
tidak dapat muncul bersamaan dengan flag--min-nodes
dan--max-nodes
.MAX_NODES
: jumlah maksimum node yang akan diskalakan secara otomatis untuk node pool yang ditentukan per zona. Guna menentukan jumlah maksimum node untuk seluruh node pool di GKE versi 1.24 dan yang lebih baru, gunakan--total-max-nodes
. Flag--total-min-nodes
dan--total-max-nodes
tidak dapat muncul bersamaan dengan flag--min-nodes
dan--max-nodes
.COMPUTE_REGION
: region Compute Engine untuk cluster baru. Untuk cluster zona, gunakan--zone=COMPUTE_ZONE
.
Contoh: Menambahkan node pool dengan penskalaan otomatis node diaktifkan
Perintah berikut membuat node pool dengan penskalaan otomatis node yang menskalakan node pool ke maksimum 5 node dan minimal 1 node:
gcloud container node-pools create my-node-pool \
--cluster my-cluster \
--enable-autoscaling \
--min-nodes 1 --max-nodes 5 \
--zone us-central1-c
Konsol
Untuk menambahkan node pool dengan penskalaan otomatis ke cluster yang sudah ada:
Buka halaman Google Kubernetes Engine di konsol Google Cloud.
Di daftar cluster, klik nama cluster yang ingin diubah.
Klik add_box Add Node Pool.
Konfigurasikan node pool sesuai keinginan.
Di bagian Size, pilih kotak centang Enable autoscaling.
Ubah nilai minimum node pada kolom Minimum number of nodes dan nilai maksimum node pada kolom Maximum number of nodes sesuai keinginan.
Klik Create.
Mengaktifkan penskalaan otomatis untuk node pool yang sudah ada
Anda dapat mengaktifkan penskalaan otomatis untuk node pool yang sudah ada menggunakan gcloud CLI atau konsol Google Cloud.
gcloud
Guna mengaktifkan penskalaan otomatis untuk node pool yang sudah ada, gunakan perintah berikut:
gcloud container clusters update CLUSTER_NAME \
--enable-autoscaling \
--node-pool=POOL_NAME \
--min-nodes=MIN_NODES \
--max-nodes=MAX_NODES \
--region=COMPUTE_REGION
Ganti kode berikut:
CLUSTER_NAME
: nama cluster yang akan diperbarui.POOL_NAME
: nama node pool yang diinginkan. Jika Anda hanya memiliki satu node pool, berikandefault-pool
sebagai nilainya.MIN_NODES
: jumlah minimum node yang akan diskalakan secara otomatis untuk node pool yang ditentukan per zona. Guna menentukan jumlah minimum node untuk seluruh node pool di GKE versi 1.24 dan yang lebih baru, gunakan--total-min-nodes
. Flag--total-min-nodes
dan--total-max-nodes
tidak dapat muncul bersamaan dengan flag--min-nodes
dan--max-nodes
.MAX_NODES
: jumlah maksimum node yang akan diskalakan secara otomatis untuk node pool yang ditentukan per zona. Guna menentukan jumlah maksimum node untuk seluruh node pool di GKE versi 1.24 dan yang lebih baru, gunakan--total-max-nodes
. Flag--total-min-nodes
dan--total-max-nodes
tidak dapat muncul bersamaan dengan flag--min-nodes
dan--max-nodes
.COMPUTE_REGION
: region Compute Engine untuk cluster baru. Untuk cluster zona, gunakan--zone=COMPUTE_ZONE
.
Konsol
Guna mengaktifkan penskalaan otomatis untuk node pool yang sudah ada:
Buka halaman Google Kubernetes Engine di konsol Google Cloud.
Di daftar cluster, klik nama cluster yang ingin diubah.
Klik tab Nodes.
Di bagian Node Pools, klik nama node pool yang ingin Anda ubah, lalu klik edit Edit.
Di bagian Size, pilih kotak centang Enable autoscaling.
Ubah nilai minimum node pada kolom Minimum number of nodes dan nilai maksimum node pada kolom Maximum number of nodes sesuai keinginan.
Klik Save.
Memverifikasi bahwa penskalaan otomatis untuk node pool yang sudah ada telah diaktifkan
Anda dapat memverifikasi bahwa cluster menggunakan penskalaan otomatis dengan Google Cloud CLI atau konsol Google Cloud.
gcloud
Deskipsikan node pool di dalam cluster:
gcloud container node-pools describe NODE_POOL_NAME --cluster=CLUSTER_NAME |grep autoscaling -A 1
Ganti kode berikut:
POOL_NAME
: nama node pool baru pilihan Anda.CLUSTER_NAME
: nama cluster.
Jika penskalaan otomatis diaktifkan, output-nya akan mirip dengan berikut ini:
autoscaling:
enabled: true
Konsol
Buka halaman Google Kubernetes Engine di konsol Google Cloud.
Di daftar cluster, klik nama cluster yang ingin diverifikasi.
Klik tab Nodes.
Di bagian Node Pools, pastikan status
Autoscalling
node pool.
Membuat node pool yang memprioritaskan pengoptimalan reservasi yang tidak digunakan
Anda dapat menggunakan flag --location_policy=ANY
saat membuat node pool untuk
menginstruksikan autoscaler cluster agar
memprioritaskan pemanfaatan reservasi yang tidak digunakan:
gcloud container node-pools create POOL_NAME \
--cluster=CLUSTER_NAME \
--location_policy=ANY
Ganti kode berikut:
POOL_NAME
: nama node pool baru pilihan Anda.CLUSTER_NAME
: nama cluster.
Menonaktifkan penskalaan otomatis untuk node pool yang sudah ada
Anda dapat menonaktifkan penskalaan otomatis untuk node pool yang sudah ada menggunakan gcloud CLI atau konsol Google Cloud.
gcloud
Guna menonaktifkan penskalaan otomatis untuk node pool tertentu, gunakan flag --no-enable-autoscaling
:
gcloud container clusters update CLUSTER_NAME \
--no-enable-autoscaling \
--node-pool=POOL_NAME \
--region=COMPUTE_REGION
Ganti kode berikut:
CLUSTER_NAME
: nama cluster yang akan diperbarui.POOL_NAME
: nama node pool yang diinginkan.COMPUTE_REGION
: region Compute Engine untuk cluster baru. Untuk cluster zona, gunakan--zone=COMPUTE_ZONE
.
Ukuran cluster tetap sesuai ukuran node pool default cluster saat ini, yang dapat diperbarui secara manual.
Konsol
Untuk menonaktifkan penskalaan otomatis bagi node pool tertentu:
Buka halaman Google Kubernetes Engine di konsol Google Cloud.
Di daftar cluster, klik nama cluster yang ingin diubah.
Klik tab Nodes.
Di bagian Node Pools, klik nama node pool yang ingin Anda ubah, lalu klik edit Edit.
Di bagian Size, hapus centang pada kotak Enable autoscaling.
Klik Save.
Mengubah ukuran node pool
Untuk cluster yang mengaktifkan penskalaan otomatis, autoscaler cluster akan otomatis mengubah ukuran node pool dalam batas yang ditentukan oleh nilai ukuran minimum (--min-nodes
) dan ukuran maksimum (--max-nodes
) atau ukuran total
minimum (--total-min-nodes
) dan ukuran total maksimum (--total-max-nodes
). Kedua flag ini tidak dapat muncul bersamaan. Anda tidak dapat mengubah ukuran node pool secara manual dengan mengubah nilai-nilai ini.
Jika Anda ingin mengubah ukuran node pool secara manual di cluster dengan penskalaan otomatis yang diaktifkan, lakukan hal berikut:
- Nonaktifkan penskalaan otomatis pada node pool.
- Ubah ukuran cluster secara manual.
- Aktifkan kembali penskalaan otomatis dan tentukan ukuran minimum dan maksimum node pool.
Mencegah penjadwalan Pod di node yang dipilih
Anda dapat menggunakan taint startup
atau status
untuk mencegah penjadwalan Pod di node yang dipilih, bergantung pada kasus penggunaan.
Fitur ini tersedia di GKE versi 1.28 dan yang lebih baru.
Taint startup
Gunakan taint startup
jika ada operasi yang harus diselesaikan sebelum Pod dapat berjalan di node. Misalnya, Pod tidak boleh berjalan hingga penginstalan driver di node selesai.
Autoscaler cluster memperlakukan node yang tercemar dengan taint startup
sebagai belum siap, tetapi diperhitungkan selama logika penskalaan, dengan asumsi node tersebut akan segera siap.
Taint startup ditentukan sebagai semua taint dengan awalan startup-taint.cluster-autoscaler.kubernetes.io/
Status taint
Gunakan taint status
jika GKE tidak boleh menggunakan node tertentu untuk menjalankan Pod.
Autoscaler cluster memperlakukan node yang ternoda dengan taint status
sebagai siap, tetapi mengabaikannya selama logika penskalaan. Meskipun node yang tercemar sudah siap, tidak ada Pod yang akan berjalan. Jika Pod memerlukan lebih banyak resource, GKE akan menskalakan cluster dan mengabaikan node yang tercemar.
Status taint didefinisikan sebagai semua taint dengan awalan status-taint.cluster-autoscaler.kubernetes.io/
Mengabaikan taint
Abaikan taint didefinisikan sebagai semua taint dengan awalan ignore-taint.cluster-autoscaler.kubernetes.io/
Pemecahan masalah
Untuk mendapatkan saran pemecahan masalah, lihat halaman berikut:
- Memecahkan masalah autoscaler cluster yang tidak menskalakan ke bawah.
- Memecahkan masalah autoscaler cluster yang tidak melakukan penskalaan.