Anda dapat mengurangi jumlah pengelolaan infrastruktur manual di cluster Standard Google Kubernetes Engine (GKE) dengan mengizinkan GKE membuat node pool secara otomatis untuk Pod yang tertunda. Dokumen ini menunjukkan cara mengaktifkan pembuatan otomatis node pool untuk cluster dan workload, menetapkan nilai default untuk node yang dibuat otomatis, dan memicu pembuatan otomatis untuk beberapa kasus penggunaan umum.
Dokumen ini ditujukan bagi administrator, operator, dan developer cluster yang mengelola infrastruktur di, dan men-deploy workload ke, cluster Standar. Untuk mengetahui informasi selengkapnya tentang cara kerja pembuatan otomatis node pool dan berbagai metode pengaktifan (seperti ComputeClass dan penyediaan otomatis node tingkat cluster), lihat Tentang pembuatan otomatis node pool.
Batasan
Pembuatan otomatis node pool memiliki batasan berikut:
- Semua batasan autoscaler cluster juga berlaku untuk pembuatan otomatis kumpulan node.
- Cluster yang memiliki lebih dari 200 total kumpulan node mungkin mengalami peningkatan latensi selama penskalaan otomatis. Konfigurasi apa pun yang memicu pembuatan node pool baru, seperti pemisahan beban kerja atau penggunaan beberapa ComputeClass, akan meningkatkan jumlah ini. Untuk mengetahui informasi selengkapnya tentang batas cluster, lihat batas dan praktik terbaik di "Merencanakan cluster besar".
- Setiap batas resource yang Anda tetapkan untuk cluster saat mengaktifkan penyediaan otomatis node juga berlaku untuk node pool yang dibuat GKE untuk ComputeClass.
- Setelan berikut tidak didukung oleh ComputeClasses:
- Upgrade lonjakan atau upgrade blue-green.
- Integritas node dan booting aman.
- Untuk mengaktifkan pembuatan otomatis node pool untuk ComputeClass di GKE versi yang lebih lama dari 1.33.3-gke.1136000, Anda juga harus mengaktifkan penyediaan otomatis node tingkat cluster. Batasan ini tidak berlaku di GKE versi 1.33.3-gke.1136000 dan yang lebih baru.
Sebelum memulai
Sebelum memulai, pastikan Anda telah melakukan tugas berikut:
- Aktifkan Google Kubernetes Engine API. Aktifkan Google Kubernetes Engine API
- Jika ingin menggunakan Google Cloud CLI untuk tugas ini,
instal lalu
lakukan inisialisasi
gcloud CLI. Jika sebelumnya Anda telah menginstal gcloud CLI, dapatkan versi terbaru dengan menjalankan perintah
gcloud components update
. Versi gcloud CLI yang lebih lama mungkin tidak mendukung menjalankan perintah dalam dokumen ini.
Persyaratan
Anda dapat mengaktifkan pembuatan otomatis node pool untuk seluruh cluster di versi GKE mana pun menggunakan fitur penyediaan otomatis node. Jika Anda ingin menggunakan ComputeClass untuk mengaktifkan pembuatan otomatis node pool di tingkat workload, dan Anda tidak ingin mengaktifkan penyediaan otomatis node, cluster Anda harus memenuhi persyaratan berikut:
- Gunakan GKE versi 1.33.3-gke.1136000 atau yang lebih baru.
- Gunakan saluran rilis Cepat.
Untuk memicu pembuatan otomatis node pool untuk konfigurasi node tertentu, Anda harus memenuhi persyaratan versi yang sesuai. Untuk mengetahui informasi selengkapnya tentang dukungan versi untuk berbagai konfigurasi, lihat Catatan rilis GKE (fitur baru) atau dokumentasi untuk kasus penggunaan Anda.
Mengaktifkan pembuatan otomatis tingkat beban kerja
Anda dapat mengaktifkan pembuatan otomatis node pool untuk workload tertentu di cluster dengan
menggunakan ComputeClass. Kolom nodePoolAutoCreation
dalam spesifikasi ComputeClass mengontrol apakah GKE dapat membuat node pool baru untuk Pod yang memilih ComputeClass tersebut. Pada GKE versi 1.33.3-gke.1136000 dan yang lebih baru, Anda dapat mengaktifkan pembuatan otomatis node pool untuk ComputeClass meskipun cluster tidak mengaktifkan penyediaan otomatis node.
Pada versi yang lebih lama dari 1.33.3-gke.1136000, Anda juga harus
mengaktifkan penyediaan otomatis node tingkat cluster.
Untuk mengaktifkan pembuatan otomatis node pool untuk ComputeClass, ikuti langkah-langkah berikut:
Gunakan cluster Standar baru atau yang sudah ada yang memenuhi persyaratan berikut:
- Menggunakan GKE versi 1.33.3-gke.1136000 atau yang lebih baru.
- Menggunakan saluran rilis Cepat.
Anda dapat secara opsional membuat cluster Standar baru.
Jika cluster Anda tidak memenuhi persyaratan pada langkah sebelumnya, aktifkan penyediaan otomatis node tingkat cluster.
Simpan contoh ComputeClass berikut sebagai file YAML:
apiVersion: cloud.google.com/v1 kind: ComputeClass metadata: name: COMPUTE_CLASS spec: priorities: - machineFamily: n4 - machineFamily: n2 whenUnsatisfiable: ScaleUpAnyway nodePoolAutoCreation: enabled: true
Ganti
COMPUTE_CLASS
dengan nama untuk ComputeClass baru. Untuk mengetahui informasi selengkapnya tentang kolom yang tersedia di ComputeClasses, lihat ComputeClass CustomResourceDefinition.Terapkan manifes ComputeClass ke cluster:
kubectl apply -f PATH_TO_COMPUTECLASS_MANIFEST
Ganti
PATH_TO_COMPUTECLASS_MANIFEST
dengan jalur ke file manifes ComputeClass.Simpan contoh Deployment berikut, yang memilih ComputeClass, sebagai
helloweb-deploy.yaml
:Buat Deployment di cluster:
kubectl apply -f helloweb-deploy.yaml
Untuk memverifikasi bahwa GKE membuat node pool baru untuk Pod Anda, dapatkan daftar node pool di cluster Anda:
gcloud container node-pools list \ --cluster=CLUSTER_NAME \ --location=CONTROL_PLANE_LOCATION
Ganti kode berikut:
CLUSTER_NAME
: nama cluster Anda.CONTROL_PLANE_LOCATION
: region atau zona bidang kontrol cluster, sepertius-central1
atauus-central1-a
.
Mengaktifkan penyediaan otomatis node tingkat cluster
Untuk mengaktifkan pembuatan otomatis node pool untuk seluruh cluster GKE Anda, gunakan setelan penyediaan otomatis node. Penyediaan otomatis node memungkinkan GKE membuat node pool baru untuk workload yang tertunda di seluruh cluster berdasarkan konfigurasi dalam spesifikasi Pod atau di ComputeClass. Anda dapat mengaktifkan penyediaan otomatis node untuk cluster baru atau yang sudah ada.
Sebelum mengaktifkan penyediaan otomatis node, rencanakan ukuran rentang alamat IPv4 utama subnet VPC Anda. GKE menggunakan rentang alamat IP ini sebagai rentang alamat IP node utama. Bergantung pada ukuran dan skala cluster Anda, rentang alamat IP node default mungkin tidak memiliki cukup alamat IP untuk ditetapkan ke node baru. Jika Anda memperbarui ukuran rentang alamat IP node setelah membuat cluster, Anda harus memperbarui aturan firewall cluster GKE untuk mengizinkan traffic dari alamat IP baru.
Untuk mendapatkan node pool yang dibuat otomatis di GKE versi yang lebih lama dari 1.33.3-gke.1136000, Anda harus melakukan langkah-langkah di bagian ini. Anda juga dapat mengaktifkan penyediaan otomatis node untuk cluster yang ada dengan mengedit konfigurasi cluster di konsol. Google Cloud
Untuk mengaktifkan penyediaan otomatis node saat Anda membuat cluster baru, pilih salah satu opsi berikut:
Konsol
Di konsol Google Cloud , buka halaman Create a Kubernetes cluster.
Di halaman Cluster basics, tentukan nama dan lokasi untuk cluster baru Anda.
Di menu navigasi, klik Automation.
Centang kotak Enable node auto-provisioning. Bagian Batas akan muncul.
Tentukan batas untuk CPU dan memori.
Klik Simpan perubahan.
gcloud
gcloud container clusters create CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION \
--enable-autoprovisioning \
--min-cpu=MINIMUM_CPU \
--min-memory=MINIMUM_MEMORY \
--max-cpu=MAXIMUM_CPU \
--max-memory=MAXIMUM_MEMORY \
--autoprovisioning-scopes=https://www.googleapis.com/auth/logging.write,https://www.googleapis.com/auth/monitoring,https://www.googleapis.com/auth/devstorage.read_only
Ganti kode berikut:
CLUSTER_NAME
: nama cluster untuk mengaktifkan penyediaan otomatis node.CONTROL_PLANE_LOCATION
: region atau zona bidang kontrol cluster, sepertius-central1
atauus-central1-a
.MINIMUM_CPU
: jumlah minimum core dalam cluster.MINIMUM_MEMORY
: kapasitas memori minimum, dalam GiB, di cluster.MAXIMUM_CPU
: jumlah maksimum core dalam cluster. Batas ini berlaku untuk jumlah core CPU di semua node baru dan yang sudah ada dalam cluster, termasuk kumpulan node yang dibuat secara manual.MAXIMUM_MEMORY
: kapasitas memori maksimum, dalam GiB, di cluster. Batas ini berlaku untuk jumlah kapasitas memori di semua kumpulan node baru dan yang sudah ada dalam cluster, termasuk kumpulan node yang dibuat secara manual.
Mengonfigurasi setelan dengan file konfigurasi penyediaan otomatis node
Anda dapat mengonfigurasi setelan konfigurasi node dan batas resource untuk penyediaan otomatis node menggunakan file konfigurasi YAML. File konfigurasi memungkinkan Anda menentukan nilai default secara deklaratif untuk node pool yang dibuat otomatis dan memungkinkan Anda melakukan konfigurasi lanjutan, seperti mengaktifkan perbaikan otomatis node. File ini tidak terkait dengan ComputeClass, yang merupakan resource kustom Kubernetes. Sebagai gantinya, file konfigurasi ada sebagai alternatif yang lebih dapat di-extend daripada menggunakan flag command line untuk menentukan setelan penyediaan otomatis node. Untuk mengetahui informasi selengkapnya, lihat Setelan default tingkat cluster dengan file konfigurasi.
Untuk membuat dan menggunakan file konfigurasi, ikuti langkah-langkah berikut:
- Di editor teks, buat file YAML di jalur yang dapat diakses oleh Google Cloud CLI.
Tambahkan konfigurasi yang ingin Anda tetapkan atau ubah, seperti dalam contoh berikut:
resourceLimits: - resourceType: 'cpu' minimum: 4 maximum: 10 - resourceType: 'memory' maximum: 64 - resourceType: 'nvidia-tesla-t4' maximum: 4 management: autoRepair: true autoUpgrade: true shieldedInstanceConfig: enableSecureBoot: true enableIntegrityMonitoring: true
Contoh ini memiliki setelan berikut untuk penyediaan otomatis node:
resourceLimits
: menetapkan batas resource untuk CPU, kapasitas memori, dan GPU NVIDIA T4 di cluster. Batas ini berlaku untuk jumlah kapasitas resource dalam cluster, termasuk dalam kumpulan node yang dibuat secara manual.management
: mengaktifkan perbaikan otomatis node dan upgrade otomatis node untuk semua node pool baru yang dibuat otomatis di cluster.shieldedInstanceConfig
: mengaktifkan booting aman dan pemantauan integritas node untuk semua node pool baru yang dibuat otomatis di cluster.
Berikan file konfigurasi ke GKE dengan menentukan flag
--autoprovisioning-config-file
dan flag--enable-autoprovisioning
untuk cluster baru atau yang sudah ada:gcloud container clusters create CLUSTER_NAME \ --location=CONTROL_PLANE_LOCATION \ --enable-autoprovisioning \ --autoprovisioning-config-file=PATH_TO_CONFIGURATION_FILE
Ganti kode berikut:
CLUSTER_NAME
: nama cluster.PATH_TO_CONFIGURATION_FILE
: jalur ke file konfigurasi.
Setelah Anda menerapkan file konfigurasi ke cluster, GKE akan menggunakan setelan dalam file untuk node pool yang baru dibuat secara otomatis di cluster. Setelan ini tidak berlaku untuk node pool yang sudah ada yang dibuat GKE di cluster.
Mengonfigurasi batas resource untuk penyediaan otomatis node
Saat menggunakan penyediaan otomatis node tingkat cluster, Anda harus mengonfigurasi batas untuk jumlah total resource yang dapat dimiliki cluster di semua node pool-nya. Untuk mengaktifkan penyediaan otomatis node bagi cluster, Anda harus menentukan batas untuk kapasitas CPU dan memori di cluster. Selain itu, untuk menggunakan jenis resource terlampir lainnya seperti GPU dan TPU, Anda harus menentukan batas untuk resource tersebut. Batas ini hanya diperlukan jika Anda mengaktifkan setelan penyediaan otomatis node untuk cluster Anda. Jika hanya menggunakan ComputeClass untuk mendapatkan kumpulan node yang dibuat secara otomatis, Anda tidak perlu mengonfigurasi batas resource.
Anda dapat menambahkan atau mengubah batas resource untuk pembuatan otomatis node pool menggunakan salah satu metode berikut:
- Google Cloud console
- Flag gcloud CLI
- File konfigurasi tingkat cluster
Untuk mengonfigurasi batas resource untuk cluster yang ada, pilih salah satu opsi berikut:
Konsol
Di konsol Google Cloud , buka halaman Kubernetes clusters.
Klik nama cluster. Halaman Cluster details akan terbuka.
Klik tab Detail.
Di bagian Automation, di baris Node auto-provisioning, klik
Edit. Panel Edit node auto-provisioning akan terbuka.Centang kotak Enable node auto-provisioning.
Di bagian Limits, tentukan nilai minimum dan maksimum untuk kapasitas CPU dan memori di cluster.
Untuk mengonfigurasi batas resource lain, seperti GPU atau TPU, lakukan hal berikut:
- Klik Tambahkan referensi.
- Dari daftar drop-down Resource type, pilih model GPU atau jenis mesin TPU, seperti NVIDIA A100 80GB atau ct5p.
- Tentukan nilai minimum dan maksimum untuk resource.
Opsional: Di bagian Lokasi node pool, pilih zona tertentu agar GKE membuat node di zona tersebut. Misalnya, jika Anda berencana menjalankan workload GPU, pilih zona yang memiliki ketersediaan tinggi untuk jenis GPU yang Anda pilih.
Klik Simpan perubahan.
gcloud
Jalankan salah satu perintah berikut:
Tentukan batas resource CPU dan memori:
gcloud container clusters update CLUSTER_NAME \ --location=CONTROL_PLANE_LOCATION \ --enable-autoprovisioning \ --min-cpu=MINIMUM_CPU \ --min-memory=MINIMUM_MEMORY \ --max-cpu=MAXIMUM_CPU \ --max-memory=MAXIMUM_MEMORY
Ganti kode berikut:
MINIMUM_CPU
: jumlah minimum core dalam cluster.MINIMUM_MEMORY
: kapasitas memori minimum, dalam GiB, di cluster.MAXIMUM_CPU
: jumlah maksimum core dalam cluster. Batas ini berlaku untuk jumlah core CPU di semua kumpulan node dalam cluster, termasuk kumpulan node yang dibuat secara manual.MAXIMUM_MEMORY
: kapasitas memori maksimum, dalam GiB, di cluster. Batas ini berlaku untuk jumlah kapasitas memori di semua kumpulan node dalam cluster, termasuk kumpulan node yang dibuat secara manual.
Tentukan batas resource GPU:
gcloud container clusters update CLUSTER_NAME \ --location=CONTROL_PLANE_LOCATION \ --enable-autoprovisioning \ --min-cpu=MINIMUM_CPU \ --min-memory=MINIMUM_MEMORY \ --max-cpu=MAXIMUM_CPU \ --max-memory=MAXIMUM_MEMORY \ --min-accelerator=type=GPU_TYPE,count=MINIMUM_GPU_COUNT \ --max-accelerator=type=GPU_TYPE,count=MAXIMUM_GPU_COUNT
Ganti kode berikut:
GPU_TYPE
: jenis GPU yang akan ditetapkan batasnya, sepertinvidia-l4
.MINIMUM_GPU_COUNT
: jumlah minimum GPU dari jenis yang ditentukan yang dapat dimiliki cluster.MAXIMUM_GPU_COUNT
: jumlah maksimum GPU dari jenis yang ditentukan yang dapat dimiliki cluster.
Tentukan batas resource TPU:
gcloud container clusters update CLUSTER_NAME \ --location=CONTROL_PLANE_LOCATION \ --enable-autoprovisioning \ --min-cpu=MINIMUM_CPU \ --min-memory=MINIMUM_MEMORY \ --max-cpu=MAXIMUM_CPU \ --max-memory=MAXIMUM_MEMORY \ --min-accelerator=type=TPU_TYPE,count=MINIMUM_TPU_COUNT \ --max-accelerator=type=TPU_TYPE,count=MAXIMUM_TPU_COUNT
Ganti kode berikut:
TPU_TYPE
: jenis TPU untuk menetapkan batas. Nilai berikut didukung:tpu-v4-podslice
: TPU v4.tpu-v5-lite-podslice
: TPU v5e dengan jenis mesin yang diawali denganct5lp-
.tpu-v5p-slice
: TPU v5e dengan jenis mesin yang diawali denganct5p-
.tpu-v6e-slice
: TPU Trillium.
MINIMUM_TPU_COUNT
: jumlah minimum chip TPU dari jenis yang ditentukan yang dapat dimiliki cluster. Jika nilai yang Anda tentukan lebih besar daripada jumlah chip TPU dalam slice TPU multi-host, slice TPU Anda mungkin tidak dapat diturunkan skalanya.MAXIMUM_TPU_COUNT
: jumlah maksimum chip TPU dari jenis yang ditentukan yang dapat dimiliki cluster. Untuk slice TPU multi-host, tentukan nilai yang lebih besar dari jumlah chip di setiap slice sehingga GKE dapat menskalakan slice secara atomik. Jumlah chip dalam slice adalah hasil kali topologi TPU. Misalnya, jika topologinya adalah2x2x2
, jumlah chip dalam slice adalah8
, yang berarti nilai MAXIMUM_TPU_COUNT harus lebih besar dari8
.
File konfigurasi
Di file konfigurasi, tentukan salah satu set kolom berikut di kolom
resourceLimits
:Tentukan batas resource CPU dan memori:
resourceLimits: - resourceType: 'cpu' minimum: MINIMUM_CPU maximum: MAXIMUM_CPU - resourceType: 'memory' minimum: MINIMUM_MEMORY maximum: MAXIMUM_MEMORY
Ganti kode berikut:
MINIMUM_CPU
: jumlah minimum core dalam cluster.MINIMUM_MEMORY
: kapasitas memori minimum, dalam GiB, di cluster.MAXIMUM_CPU
: jumlah maksimum core dalam cluster. Batas ini berlaku untuk jumlah core CPU di semua kumpulan node dalam cluster, termasuk kumpulan node yang dibuat secara manual.MAXIMUM_MEMORY
: kapasitas memori maksimum, dalam GiB, di cluster. Batas ini berlaku untuk jumlah kapasitas memori di semua kumpulan node dalam cluster, termasuk kumpulan node yang dibuat secara manual.
Tentukan batas resource GPU:
resourceLimits: - resourceType: 'cpu' minimum: MINIMUM_CPU maximum: MAXIMUM_CPU - resourceType: 'memory' minimum: MINIMUM_MEMORY maximum: MAXIMUM_MEMORY - resourceType: 'GPU1_TYPE' minimum: MINIMUM_GPU1_COUNT maximum: MAXIMUM_GPU1_COUNT - resourceType: 'GPU2_TYPE' minimum: MINIMUM_GPU2_COUNT maximum: MAXIMUM_GPU2_COUNT
Ganti kode berikut:
GPU1_TYPE
,GPU2_TYPE
: jenis GPU yang akan ditetapkan batasnya, sepertinvidia-l4
.MINIMUM_GPU1_COUNT
,MINIMUM_GPU2_COUNT
: jumlah minimum GPU dari jenis yang ditentukan yang dapat dimiliki cluster.MAXIMUM_GPU1_COUNT
,MAXIMUM_GPU2_COUNT
: jumlah maksimum GPU dari jenis yang ditentukan yang dapat dimiliki cluster.
Tentukan batas resource TPU:
resourceLimits: - resourceType: 'cpu' minimum: MINIMUM_CPU maximum: MAXIMUM_CPU - resourceType: 'memory' minimum: MINIMUM_MEMORY maximum: MAXIMUM_MEMORY - resourceType: 'TPU1_TYPE' minimum: MINIMUM_TPU1_COUNT maximum: MAXIMUM_TPU1_COUNT - resourceType: 'TPU2_TYPE' minimum: MINIMUM_TPU2_COUNT maximum: MAXIMUM_TPU2_COUNT
Ganti kode berikut:
TPU1_TYPE
,TPU2_TYPE
: jenis TPU untuk menetapkan batas. Nilai berikut ini didukung:tpu-v4-podslice
: TPU v4.tpu-v5-lite-podslice
: TPU v5e dengan jenis mesin yang diawali denganct5lp-
.tpu-v5p-slice
: TPU v5e dengan jenis mesin yang diawali denganct5p-
.tpu-v6e-slice
: TPU Trillium.
MINIMUM_TPU1_COUNT
,MINIMUM_TPU2_COUNT
: jumlah minimum chip TPU dari jenis yang ditentukan yang dapat dimiliki cluster. Jika nilai yang Anda tentukan lebih besar daripada jumlah chip TPU dalam slice TPU multi-host, slice TPU Anda mungkin tidak diturunkan skalanya.MAXIMUM_TPU1_COUNT
,MAXIMUM_TPU2_COUNT
: jumlah maksimum chip TPU dari jenis yang ditentukan yang dapat dimiliki cluster. Untuk slice TPU multi-host, tentukan nilai yang lebih besar daripada jumlah chip di setiap slice agar GKE dapat menskalakan slice secara atomik. Jumlah chip dalam slice adalah hasil kali topologi TPU. Misalnya, jika topologi untukTPU1_TYPE
adalah2x2x2
, jumlah chip dalam slice adalah8
, yang berarti nilaiMAXIMUM_TPU1_COUNT
harus lebih besar dari8
.
Berikan file konfigurasi ke GKE dengan menentukan flag
--autoprovisioning-config-file
dan flag--enable-autoprovisioning
untuk cluster baru atau yang sudah ada:gcloud container clusters create CLUSTER_NAME \ --location=CONTROL_PLANE_LOCATION \ --enable-autoprovisioning \ --autoprovisioning-config-file=PATH_TO_CONFIGURATION_FILE
Ganti kode berikut:
CLUSTER_NAME
: nama cluster.PATH_TO_CONFIGURATION_FILE
: jalur ke file konfigurasi.
Menandai node pool yang ada sebagai dibuat otomatis
Setelah mengaktifkan penyediaan otomatis node tingkat cluster, Anda dapat menandai node pool yang ada di cluster sebagai dibuat otomatis. GKE mengelola penskalaan di node pool ini, termasuk menghapus node pool saat kosong. Anda dapat menandai node pool yang dibuat secara manual sebagai dibuat otomatis agar GKE dapat mengelola node pool untuk Anda.
Jika Anda menonaktifkan penyediaan otomatis untuk cluster, GKE akan berhenti mengelola semua node pool yang ada dan dibuat secara otomatis di cluster. Jika Anda mengaktifkan kembali penyediaan otomatis untuk cluster nanti, GKE tidak akan melanjutkan pengelolaan node pool yang ada tersebut secara otomatis. Anda harus menandai node pool yang sudah ada tersebut sebagai dibuat otomatis.
Untuk menandai node pool yang sudah ada sebagai dibuat otomatis, jalankan perintah berikut:
gcloud container node-pools update NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION \
--enable-autoprovisioning
Ganti NODE_POOL_NAME
dengan nama node pool.
Mengonfigurasi setelan default untuk node pool yang dibuat otomatis
GKE menggunakan ComputeClass dan spesifikasi Pod Anda untuk menentukan jenis node yang dapat menjalankan Pod yang tertunda secara optimal. Secara opsional, Anda dapat mengonfigurasi setelan default yang diterapkan GKE ke node pool yang dibuat otomatis, seperti akun layanan Identity and Access Management (IAM) kustom untuk node atau konfigurasi boot disk kustom. Setelan default ini menggantikan nilai default yang sesuai yang ditetapkan Google untuk cluster Anda. Misalnya, Anda dapat menetapkan image node Ubuntu sebagai default untuk node pool yang dibuat otomatis, yang menggantikan image node Container-Optimized OS default GKE.
Anda dapat mengonfigurasi setelan default di tingkat cluster menggunakan penyediaan otomatis node atau di tingkat workload di ComputeClasses. Sebelum Anda mengonfigurasi setelan di salah satu tingkat ini, pertimbangkan hal berikut:
- Setelan tingkat cluster berlaku untuk node pool yang dibuat otomatis di cluster, dan setelan ComputeClass hanya berlaku untuk workload yang menggunakan ComputeClass tersebut.
- Jika Anda menentukan setelan default yang sama di ComputeClass dan di tingkat cluster, GKE akan menggunakan setelan ComputeClass untuk workload yang menggunakan ComputeClass.
- Nilai default yang Anda konfigurasi hanya berlaku untuk node pool yang dibuat otomatis baru. Node pool yang ada tidak terpengaruh.
Bagian berikut menunjukkan cara mengonfigurasi setelan default tertentu.
Menetapkan image node default
Pilih salah satu opsi berikut:
ComputeClass
Dalam manifes ComputeClass, gunakan kolom
nodePoolConfig.imageType
. Kolom ini tersedia di GKE versi 1.32.4-gke.1198000 dan yang lebih baru.apiVersion: cloud.google.com/v1 kind: ComputeClass metadata: name: COMPUTE_CLASS spec: priorities: - machineFamily: n4 - machineFamily: n4d nodePoolConfig: imageType: IMAGE_TYPE whenUnsatisfiable: ScaleUpAnyway nodePoolAutoCreation: enabled: true
Ganti
IMAGE_TYPE
dengan nilai untuk image node, yang dapat berupa salah satu dari berikut ini:cos_containerd
: Container-Optimized OS dengan containerd.ubuntu_containerd
: Ubuntu dengan containerd.
Terapkan manifes ComputeClass ke cluster:
kubectl apply -f PATH_TO_COMPUTECLASS_MANIFEST
Ganti
PATH_TO_COMPUTECLASS_MANIFEST
dengan jalur ke file manifes ComputeClass.
gcloud
Untuk menetapkan image node default di command line, gunakan
flag --autoprovisioning-image-type
:
gcloud container clusters update CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION \
--enable-autoprovisioning \
--autoprovisioning-image-type=IMAGE_TYPE
Ganti kode berikut:
CLUSTER_NAME
: nama cluster.IMAGE_TYPE
: image node, yang dapat berupa salah satu dari berikut ini:cos_containerd
: Container-Optimized OS dengan containerd.ubuntu_containerd
: Ubuntu dengan containerd.
Untuk menetapkan image node default dalam file konfigurasi, ikuti langkah-langkah berikut:
Di file konfigurasi, tentukan kolom
imageType
:imageType: 'IMAGE_TYPE'
Jika file konfigurasi Anda memiliki setelan lain, jangan ubah setelan tersebut. Setiap modifikasi atau penghapusan dalam file konfigurasi juga akan memodifikasi setelan tingkat cluster yang sesuai.
Berikan file konfigurasi ke GKE dengan menentukan flag
--autoprovisioning-config-file
dan flag--enable-autoprovisioning
untuk cluster baru atau yang sudah ada:gcloud container clusters create CLUSTER_NAME \ --location=CONTROL_PLANE_LOCATION \ --enable-autoprovisioning \ --autoprovisioning-config-file=PATH_TO_CONFIGURATION_FILE
Ganti kode berikut:
CLUSTER_NAME
: nama cluster.PATH_TO_CONFIGURATION_FILE
: jalur ke file konfigurasi.
Menetapkan akun layanan IAM default untuk node
Node GKE menggunakan akun layanan IAM untuk tugas sistem seperti logging dan pemantauan. Untuk mengubah akun layanan IAM untuk node pool yang dibuat secara otomatis, pilih salah satu opsi berikut:
ComputeClass
Dalam manifes Computeclass, gunakan kolom
nodePoolConfig.serviceAccount
. Kolom ini tersedia di GKE versi 1.31.4-gke.1072000 dan yang lebih baru.apiVersion: cloud.google.com/v1 kind: ComputeClass metadata: name: COMPUTE_CLASS spec: priorities: - machineFamily: n4 - machineFamily: n4d nodePoolConfig: serviceAccount: SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com whenUnsatisfiable: ScaleUpAnyway nodePoolAutoCreation: enabled: true
Ganti kode berikut:
SERVICE_ACCOUNT_NAME
: nama akun layanan IAM, sepertimy-node-account
.PROJECT_ID
: project ID project akun layanan.
Terapkan manifes ComputeClass ke cluster:
kubectl apply -f PATH_TO_COMPUTECLASS_MANIFEST
Ganti
PATH_TO_COMPUTECLASS_MANIFEST
dengan jalur ke file manifes ComputeClass.
gcloud
Saat menggunakan gcloud CLI untuk mengonfigurasi akun layanan default untuk node pool yang dibuat otomatis, Anda juga harus menentukan cakupan akses yang diperlukan node pool agar berfungsi dengan benar.
Untuk menetapkan akun layanan dan cakupan akses default di command line, gunakan
flag
--autoprovisioning-service-account
dan
--autoprovisioning-scopes
:
gcloud container clusters update CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION \
--enable-autoprovisioning \
--autoprovisioning-service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
--autoprovisioning-scopes=https://www.googleapis.com/auth/devstorage.read_only,https://www.googleapis.com/auth/service.management.readonly,https://www.googleapis.com/auth/servicecontrol,https://www.googleapis.com/auth/trace.append
Ganti kode berikut:
SERVICE_ACCOUNT_NAME
: nama akun layanan IAM, sepertimy-node-account
.PROJECT_ID
: project ID project akun layanan.
Untuk menyetel akun layanan dan cakupan akses default dalam file konfigurasi, ikuti langkah-langkah berikut:
Di file konfigurasi, tentukan kolom
serviceAccount
danscopes
:serviceAccount: SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com scopes: https://www.googleapis.com/auth/devstorage.read_only,https://www.googleapis.com/auth/service.management.readonly,https://www.googleapis.com/auth/servicecontrol,https://www.googleapis.com/auth/trace.append
Jika file konfigurasi Anda memiliki setelan lain, jangan ubah setelan tersebut. Setiap modifikasi atau penghapusan dalam file konfigurasi juga akan memodifikasi setelan tingkat cluster yang sesuai.
Berikan file konfigurasi ke GKE dengan menentukan flag
--autoprovisioning-config-file
dan flag--enable-autoprovisioning
untuk cluster baru atau yang sudah ada:gcloud container clusters create CLUSTER_NAME \ --location=CONTROL_PLANE_LOCATION \ --enable-autoprovisioning \ --autoprovisioning-config-file=PATH_TO_CONFIGURATION_FILE
Ganti kode berikut:
CLUSTER_NAME
: nama cluster.PATH_TO_CONFIGURATION_FILE
: jalur ke file konfigurasi.
Menetapkan zona default untuk node yang dibuat otomatis
Secara default, GKE membuat node secara otomatis di zona berikut, bergantung pada jenis cluster:
- Cluster regional: GKE membuat node di tiga zona acak di region cluster.
- Cluster zona: GKE membuat node di zona yang sama dengan bidang kontrol cluster.
Anda dapat menentukan daftar zona secara manual tempat GKE membuat node secara otomatis. Zona ini harus berada di region yang sama dengan bidang kontrol cluster. Misalnya, jika Anda memiliki cluster zona dengan bidang kontrol di us-central1-a
, Anda dapat menentukan zona apa pun di region us-central1
agar GKE membuat node secara otomatis. Jika Anda mengubah zona default untuk node yang dibuat otomatis di cluster yang ada, perubahan hanya berlaku untuk node pool baru yang dibuat GKE.
Untuk menentukan zona default bagi node yang dibuat secara otomatis, pilih salah satu opsi berikut:
ComputeClass
Dalam manifes ComputeClass, gunakan kolom
spec.priorityDefaults.location.zones
. Kolom ini tersedia di GKE versi 1.33.1-gke.1545000 dan yang lebih baru.apiVersion: cloud.google.com/v1 kind: ComputeClass metadata: name: COMPUTE_CLASS spec: priorityDefaults: location: zones: ['ZONE1','ZONE2','...'] priorities: - machineFamily: n4 - machineFamily: n4d whenUnsatisfiable: ScaleUpAnyway nodePoolAutoCreation: enabled: true
Ganti
ZONE1,ZONE2,...
dengan daftar zona default yang dipisahkan koma untuk node yang dibuat otomatis, seperti 'us-central1-a','us-central1-b', 'us-central1-f'
. GKE menggunakan zona ini jika aturan tertentu di kolomspec.priorities
tidak menyertakan daftar zona eksplisit.Terapkan manifes ComputeClass ke cluster:
kubectl apply -f PATH_TO_COMPUTECLASS_MANIFEST
Ganti
PATH_TO_COMPUTECLASS_MANIFEST
dengan jalur ke file manifes ComputeClass.
gcloud
Untuk menetapkan zona default bagi pembuatan otomatis node pool di command line, gunakan
flag
--autoprovisioning-locations
:
gcloud container clusters update CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION \
--enable-autoprovisioning \
--autoprovisioning-locations=ZONE1,ZONE2,...
Ganti ZONE1,ZONE2,...
dengan daftar zona default yang dipisahkan koma untuk node yang dibuat otomatis, seperti 'us-central1-a','us-central1-b', 'us-central1-f'
.
Untuk menyetel zona default untuk pembuatan otomatis node pool menggunakan file konfigurasi, ikuti langkah-langkah berikut:
Tentukan kolom
autoprovisioningLocations
di file konfigurasi:autoprovisioningLocations: - ZONE1 - ZONE2
Ganti
ZONE1
,ZONE2
dengan zona default untuk node yang dibuat otomatis, seperti 'us-central1-a
' dan 'us-central1-b
'.Jika file konfigurasi Anda memiliki setelan lain, jangan ubah setelan tersebut. Setiap modifikasi atau penghapusan dalam file konfigurasi juga akan memodifikasi setelan tingkat cluster yang sesuai.
Berikan file konfigurasi ke GKE dengan menentukan flag
--autoprovisioning-config-file
dan flag--enable-autoprovisioning
untuk cluster baru atau yang sudah ada:gcloud container clusters create CLUSTER_NAME \ --location=CONTROL_PLANE_LOCATION \ --enable-autoprovisioning \ --autoprovisioning-config-file=PATH_TO_CONFIGURATION_FILE
Ganti kode berikut:
CLUSTER_NAME
: nama cluster.PATH_TO_CONFIGURATION_FILE
: jalur ke file konfigurasi.
Menetapkan kunci enkripsi yang dikelola pelanggan untuk enkripsi boot disk
Anda dapat menentukan kunci enkripsi yang dikelola pelanggan (CMEK) di Cloud Key Management Service yang digunakan GKE untuk mengenkripsi boot disk node di node pool yang dibuat otomatis. Anda harus membuat kunci sebelum menggunakannya dengan pembuatan otomatis node pool. Untuk menyetel CMEK bagi boot disk node Anda, pilih salah satu opsi berikut:
ComputeClass
Di ComputeClasses, Anda harus menentukan kunci di setiap aturan prioritas di kolom
spec.priorities
di ComputeClass.
Dalam manifes ComputeClass, gunakan kolom
priorities.storage.bootDiskKMSKey
:apiVersion: cloud.google.com/v1 kind: ComputeClass metadata: name: COMPUTE_CLASS spec: priorities: - machineFamily: n4 storage: bootDiskKMSKey: projects/KEY_PROJECT_ID/locations/KEY_LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME - machineFamily: n4d storage: bootDiskKMSKey: projects/KEY_PROJECT_ID/locations/KEY_LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME whenUnsatisfiable: ScaleUpAnyway nodePoolAutoCreation: enabled: true
Ganti kode berikut:
KEY_PROJECT_ID
: project ID project yang memiliki kunci.KEY_LOCATION
: lokasi key ring.KEY_RING
: nama key ring yang berisi kunci.KEY_NAME
: nama kunci.
Terapkan manifes ComputeClass ke cluster:
kubectl apply -f PATH_TO_COMPUTECLASS_MANIFEST
Ganti
PATH_TO_COMPUTECLASS_MANIFEST
dengan jalur ke file manifes ComputeClass.
gcloud
Tentukan kolom
bootDiskKmsKey
di file konfigurasi:bootDiskKmsKey: projects/KEY_PROJECT_ID/locations/KEY_LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME
Ganti kode berikut:
KEY_PROJECT_ID
: project ID project yang memiliki kunci.KEY_LOCATION
: lokasi key ring.KEY_RING
: nama key ring yang berisi kunci.KEY_NAME
: nama kunci.
Jika file konfigurasi Anda memiliki setelan lain, jangan ubah setelan tersebut. Setiap modifikasi atau penghapusan dalam file konfigurasi juga akan memodifikasi setelan tingkat cluster yang sesuai.
Berikan file konfigurasi ke GKE dengan menentukan flag
--autoprovisioning-config-file
dan flag--enable-autoprovisioning
untuk cluster baru atau yang sudah ada:gcloud container clusters create CLUSTER_NAME \ --location=CONTROL_PLANE_LOCATION \ --enable-autoprovisioning \ --autoprovisioning-config-file=PATH_TO_CONFIGURATION_FILE
Ganti kode berikut:
CLUSTER_NAME
: nama cluster.PATH_TO_CONFIGURATION_FILE
: jalur ke file konfigurasi.
Mengonfigurasi integritas node dan booting aman
Anda dapat mengaktifkan booting aman dan pemantauan integritas untuk node pool yang dibuat otomatis hanya dengan menggunakan file konfigurasi penyediaan otomatis node.
Tentukan kolom
shieldedInstanceConfig
di file konfigurasi:shieldedInstanceConfig: enableSecureBoot: true enableIntegrityMonitoring: true
Jika file konfigurasi Anda memiliki setelan lain, jangan ubah setelan tersebut. Setiap modifikasi atau penghapusan dalam file konfigurasi juga akan memodifikasi setelan tingkat cluster yang sesuai.
Berikan file konfigurasi ke GKE dengan menentukan flag
--autoprovisioning-config-file
dan flag--enable-autoprovisioning
untuk cluster baru atau yang sudah ada:gcloud container clusters create CLUSTER_NAME \ --location=CONTROL_PLANE_LOCATION \ --enable-autoprovisioning \ --autoprovisioning-config-file=PATH_TO_CONFIGURATION_FILE
Ganti kode berikut:
CLUSTER_NAME
: nama cluster.PATH_TO_CONFIGURATION_FILE
: jalur ke file konfigurasi.
Mengonfigurasi perbaikan otomatis node dan upgrade otomatis
Anda dapat mengubah setelan untuk perbaikan otomatis node dan upgrade otomatis node di node pool yang dibuat secara otomatis. Fitur ini diaktifkan secara default di semua cluster dan node pool GKE. Sebaiknya Anda tetap mengaktifkan fitur ini untuk meningkatkan keandalan dan stabilitas di cluster Anda.
Untuk mengubah setelan perbaikan otomatis node dan upgrade otomatis node, pilih salah satu opsi berikut:
ComputeClass
Dalam manifes ComputeClass, gunakan kolom
autoRepair
dan kolomautoUpgrade
di kolomspec.nodePoolConfig
. Kolom ini tersedia di GKE versi 1.34.0-gke.2201000 dan yang lebih baru.apiVersion: cloud.google.com/v1 kind: ComputeClass metadata: name: COMPUTE_CLASS spec: nodePoolConfig: autoRepair: true autoUpgrade: true priorities: - machineFamily: n4 - machineFamily: n4d whenUnsatisfiable: ScaleUpAnyway nodePoolAutoCreation: enabled: true
Terapkan manifes ComputeClass ke cluster:
kubectl apply -f PATH_TO_COMPUTECLASS_MANIFEST
Ganti
PATH_TO_COMPUTECLASS_MANIFEST
dengan jalur ke file manifes ComputeClass.
gcloud
Untuk mengaktifkan setelan perbaikan otomatis dan upgrade otomatis di command line, gunakan
--enable-autoprovisioning-autorepair
dan--enable-autoprovisioning-autoupgrade
flag:gcloud container clusters update CLUSTER_NAME \ --location=CONTROL_PLANE_LOCATION \ --enable-autoprovisioning \ --enable-autoprovisioning-autorepair \ --enable-autoprovisioning-autoupgrade
Untuk menonaktifkan setelan perbaikan otomatis dan upgrade otomatis di command line, gunakan flag
--no-enable-autoprovisioning-autorepair
dan--no-enable-autoprovisioning-autoupgrade
:gcloud container clusters update CLUSTER_NAME \ --location=CONTROL_PLANE_LOCATION \ --enable-autoprovisioning \ --no-enable-autoprovisioning-autorepair \ --no-enable-autoprovisioning-autoupgrade
Untuk mengubah setelan perbaikan otomatis dan upgrade otomatis node menggunakan file konfigurasi, ikuti langkah-langkah berikut:
Tentukan kolom
management.autoRepair
danmanagement.autoUpgrade
dalam file konfigurasi:management: autoRepair: true autoUpgrade: true
Jika file konfigurasi Anda memiliki setelan lain, jangan ubah setelan tersebut. Setiap modifikasi atau penghapusan dalam file konfigurasi juga akan memodifikasi setelan tingkat cluster yang sesuai.
Berikan file konfigurasi ke GKE dengan menentukan flag
--autoprovisioning-config-file
dan flag--enable-autoprovisioning
untuk cluster baru atau yang sudah ada:gcloud container clusters create CLUSTER_NAME \ --location=CONTROL_PLANE_LOCATION \ --enable-autoprovisioning \ --autoprovisioning-config-file=PATH_TO_CONFIGURATION_FILE
Ganti kode berikut:
CLUSTER_NAME
: nama cluster.PATH_TO_CONFIGURATION_FILE
: jalur ke file konfigurasi.
Mengonfigurasi setelan upgrade lonjakan
Anda dapat menentukan setelan upgrade lonjakan di node pool yang dibuat otomatis. Upgrade lonjakan adalah strategi upgrade node GKE default. Untuk mengubah setelan upgrade lonjakan, Anda harus mengonfigurasi penyediaan otomatis node tingkat cluster.
Untuk menentukan setelan upgrade lonjakan di command line, gunakan flag
--autoprovisioning-max-surge-upgrade
dan--autoprovisioning-max-unavailable-upgrade
:gcloud container clusters update CLUSTER_NAME \ --location=CONTROL_PLANE_LOCATION \ --enable-autoprovisioning \ --autoprovisioning-max-surge-upgrade=MAX_SURGE \ --autoprovisioning-max-unavailable-upgrade=MAX_UNAVAILABLE
Ganti kode berikut:
MAX_SURGE
: jumlah node maksimum yang dapat ditambahkan ke node pool selama upgrade.MAX_UNAVAILABLE
: jumlah maksimum node dalam node pool yang tidak dapat tersedia secara bersamaan selama upgrade.
Untuk menentukan setelan upgrade lonjakan menggunakan file konfigurasi, ikuti langkah-langkah berikut:
Tentukan kolom
upgradeSettings.maxSurgeUpgrade
danupgradeSettings.maxUnavailableUpgrade
di file konfigurasi:upgradeSettings: maxSurgeUpgrade: MAX_SURGE maxUnavailableUpgrade: MAX_UNAVAILABLE
Jika file konfigurasi Anda memiliki setelan lain, jangan ubah setelan tersebut. Setiap modifikasi atau penghapusan dalam file konfigurasi juga akan memodifikasi setelan tingkat cluster yang sesuai.
Berikan file konfigurasi ke GKE dengan menentukan flag
--autoprovisioning-config-file
dan flag--enable-autoprovisioning
untuk cluster baru atau yang sudah ada:gcloud container clusters create CLUSTER_NAME \ --location=CONTROL_PLANE_LOCATION \ --enable-autoprovisioning \ --autoprovisioning-config-file=PATH_TO_CONFIGURATION_FILE
Ganti kode berikut:
CLUSTER_NAME
: nama cluster.PATH_TO_CONFIGURATION_FILE
: jalur ke file konfigurasi.
Setelan upgrade lonjakan yang Anda tentukan hanya berlaku jika cluster Anda menggunakan upgrade lonjakan untuk mengupgrade node pool yang dibuat otomatis. Untuk mengalihkan strategi upgrade node Anda ke upgrade lonjakan untuk node pool baru yang dibuat otomatis, jalankan perintah berikut:
gcloud container clusters update CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION \
--enable-autoprovisioning \
--enable-autoprovisioning-surge-upgrade
Saat Anda mengganti strategi upgrade, GKE akan menggunakan setelan apa pun yang sebelumnya Anda konfigurasi untuk strategi upgrade tersebut.
Menggunakan upgrade blue-green untuk node pool baru yang dibuat otomatis
Anda dapat mengalihkan strategi upgrade node ke upgrade biru hijau untuk semua node pool baru yang dibuat otomatis dan menyesuaikan setelan default untuk upgrade biru hijau. Untuk mengubah strategi upgrade, Anda harus mengonfigurasi penyediaan otomatis node tingkat cluster. Setiap perubahan yang Anda lakukan hanya berlaku untuk node pool baru yang dibuat secara otomatis. Anda juga dapat mengupdate node pool yang sudah ada dan dibuat otomatis agar menggunakan upgrade blue-green.
Untuk menggunakan upgrade blue-green dan setelan default GKE untuk node pool baru yang dibuat otomatis, jalankan perintah berikut:
gcloud container clusters update CLUSTER_NAME \ --location=CONTROL_PLANE_LOCATION --enable-autoprovisioning \ --enable-autoprovisioning-blue-green-upgrade
Untuk menggunakan upgrade blue-green dan mengonfigurasi setelan default Anda sendiri untuk node pool baru yang dibuat otomatis, jalankan perintah berikut:
gcloud container clusters update CLUSTER_NAME \ --location=CONTROL_PLANE_LOCATION \ --enable-autoprovisioning \ --enable-autoprovisioning-blue-green-upgrade \ --autoprovisioning-node-pool-soak-duration=NODE_POOL_SOAK_DURATION \ --autoprovisioning-standard-rollout-policy=batch-node-count=BATCH_NODE_COUNT,batch-soak-duration=BATCH_SOAK_DURATION
Ganti kode berikut:
NODE_POOL_SOAK_DURATION
: durasi, dalam detik, yang ditunggu GKE setelah mengosongkan semua batch node di pool biru sebelum menghapus pool biru. Nilai defaultnya adalah3600
.BATCH_NODE_COUNT
: jumlah node yang akan dikosongkan dalam batch selama fase pengosongan pool biru. Nilai defaultnya adalah1
. Jika Anda menentukan nilai0
, GKE akan melewati fase pengosongan pool biru.BATCH_SOAK_DURATION
: durasi, dalam detik, yang ditunggu GKE untuk memulai operasi pengosongan batch setelah operasi pengosongan sebelumnya selesai. Nilai defaultnya adalah0
.
Mengonfigurasi boot disk node kustom
Untuk menentukan jenis dan ukuran boot disk yang dilampirkan GKE ke setiap VM node di node pool yang dibuat otomatis, pilih salah satu opsi berikut:
ComputeClass
Gunakan kolom
bootDiskType
danbootDiskSize
di kolomspec.priorities.storage
di ComputeClass:apiVersion: cloud.google.com/v1 kind: ComputeClass metadata: name: COMPUTE_CLASS spec: priorities: - machineFamily: n4 storage: bootDiskType: BOOT_DISK_TYPE bootDiskSize: BOOT_DISK_SIZE - machineFamily: n4d storage: bootDiskType: BOOT_DISK_TYPE bootDiskSize: BOOT_DISK_SIZE whenUnsatisfiable: ScaleUpAnyway nodePoolAutoCreation: enabled: true
Ganti kode berikut:
BOOT_DISK_TYPE
: jenis disk yang akan digunakan sebagai disk boot node. Nilai yang Anda tentukan harus didukung oleh jenis mesin Compute Engine yang digunakan GKE untuk aturan prioritas tersebut. Nilainya harus berupa salah satu dari berikut:pd-balanced
: Persistent Disk seimbang.pd-standard
: Persistent Disk standar.pd-ssd
: Persistent Disk performa (SSD).hyperdisk-balanced
: Google Cloud Hyperdisk Seimbang.
BOOT_DISK_SIZE
: ukuran boot disk node, dalam GiB. Nilai minimum adalah10
.
Terapkan manifes ComputeClass ke cluster:
kubectl apply -f PATH_TO_COMPUTECLASS_MANIFEST
Ganti
PATH_TO_COMPUTECLASS_MANIFEST
dengan jalur ke file manifes ComputeClass.
gcloud
Di file konfigurasi, tentukan kolom
diskSizeGb
dandiskType
:diskSizeGb: BOOT_DISK_SIZE diskType: BOOT_DISK_TYPE
Ganti kode berikut:
BOOT_DISK_TYPE
: jenis disk yang akan digunakan sebagai disk boot node. Nilai yang Anda tentukan harus didukung oleh jenis mesin Compute Engine yang digunakan GKE untuk aturan prioritas tersebut. Nilainya harus berupa salah satu dari berikut:pd-balanced
: Persistent Disk seimbang.pd-standard
: Persistent Disk standar.pd-ssd
: Persistent Disk performa (SSD).hyperdisk-balanced
: Google Cloud Hyperdisk Seimbang.
BOOT_DISK_SIZE
: ukuran boot disk node, dalam GiB. Nilai minimum adalah10
.
Jika file konfigurasi Anda memiliki setelan lain, jangan ubah setelan tersebut. Setiap modifikasi atau penghapusan dalam file konfigurasi juga akan memodifikasi setelan tingkat cluster yang sesuai.
Berikan file konfigurasi ke GKE dengan menentukan flag
--autoprovisioning-config-file
dan flag--enable-autoprovisioning
untuk cluster baru atau yang sudah ada:gcloud container clusters create CLUSTER_NAME \ --location=CONTROL_PLANE_LOCATION \ --enable-autoprovisioning \ --autoprovisioning-config-file=PATH_TO_CONFIGURATION_FILE
Ganti kode berikut:
CLUSTER_NAME
: nama cluster.PATH_TO_CONFIGURATION_FILE
: jalur ke file konfigurasi.
GKE mencadangkan sebagian boot disk node untuk fungsionalitas sistem dan untuk penyimpanan sementara. Untuk mengetahui informasi selengkapnya, lihat Penyimpanan sementara yang didukung oleh boot disk node.
Mengonfigurasi node pool yang dibuat otomatis untuk skenario umum
Bagian berikut menunjukkan cara meminta node pool yang dibuat otomatis untuk kasus penggunaan GKE umum tertentu. Untuk mengetahui informasi selengkapnya tentang kasus penggunaan tambahan dan konfigurasi yang didukung, lihat dokumentasi untuk kasus penggunaan spesifik Anda.
Pilih seri mesin atau jenis mesin
Untuk memilih jenis mesin atau seri mesin Compute Engine yang didukung, pilih salah satu opsi berikut:
ComputeClass
Dalam manifes ComputeClass, tentukan salah satu kolom berikut di kolom
spec.priorities
. Anda dapat menentukan kedua kolom ini dalam manifes ComputeClass yang sama, tetapi tidak dalam aturan prioritas yang sama.Untuk memilih seri mesin, tentukan kolom
machineFamily
dalam aturan prioritas:apiVersion: cloud.google.com/v1 kind: ComputeClass metadata: name: COMPUTE_CLASS spec: priorities: - machineFamily: MACHINE_SERIES whenUnsatisfiable: ScaleUpAnyway nodePoolAutoCreation: enabled: true
Ganti
MACHINE_SERIES
dengan seri mesin Compute Engine, sepertin4
.Untuk memilih jenis mesin, tentukan kolom
machineType
dalam aturan prioritas:apiVersion: cloud.google.com/v1 kind: ComputeClass metadata: name: COMPUTE_CLASS spec: priorities: - machineType: MACHINE_TYPE whenUnsatisfiable: ScaleUpAnyway nodePoolAutoCreation: enabled: true
Ganti
MACHINE_TYPE
dengan jenis mesin Compute Engine, sepertic4-standard-96
. Di GKE versi 1.33.2-gke.1111000 dan yang lebih baru, Anda juga dapat menentukan jenis mesin kustom di kolom ini.
Anda tidak dapat menentukan kolom
machineFamily
dan kolommachineType
dalam aturan prioritas yang sama.Terapkan manifes ComputeClass ke cluster:
kubectl apply -f PATH_TO_COMPUTECLASS_MANIFEST
Ganti
PATH_TO_COMPUTECLASS_MANIFEST
dengan jalur ke file manifes ComputeClass.
Spesifikasi pod
Dalam manifes Pod, pilih salah satu label node berikut:
Untuk memilih seri mesin, gunakan label node
cloud.google.com/machine-family
:apiVersion: v1 kind: Pod metadata: name: machine-series-pod spec: nodeSelector: cloud.google.com/machine-family: MACHINE_SERIES containers: - name: hello-app image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
Ganti
MACHINE_SERIES
dengan seri mesin Compute Engine, sepertin4
.Untuk memilih jenis mesin yang telah ditentukan, gunakan label node
cloud.google.com/machine-family
dannode.kubernetes.io/instance-type
:apiVersion: v1 kind: Pod metadata: name: machine-series-pod spec: nodeSelector: cloud.google.com/machine-family: MACHINE_SERIES node.kubernetes.io/instance-type: MACHINE_TYPE containers: - name: hello-app image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
Ganti
MACHINE_TYPE
dengan jenis mesin Compute Engine dalam seri mesin yang ditentukan. Misalnya, jika Anda menentukann4
untukMACHINE_SERIES
, Anda dapat menentukann4-standard-80
untukMACHINE_TYPE
.Di GKE versi 1.33.2-gke.1111000, Anda juga dapat menentukan jenis mesin kustom di kolom ini.
Buat Pod:
kubectl apply -f PATH_TO_POD_MANIFEST
Ganti
PATH_TO_POD_MANIFEST
dengan jalur ke manifes Pod.
Memilih GPU
Untuk meminta GPU bagi node pool yang dibuat secara otomatis, pilih salah satu opsi berikut:
ComputeClass
Dalam manifes ComputeClass, tentukan kolom
spec.priorities.gpu
:apiVersion: cloud.google.com/v1 kind: ComputeClass metadata: name: COMPUTE_CLASS spec: priorities: - gpu: type: GPU_TYPE count: GPU_COUNT driverVersion: DRIVER_VERSION whenUnsatisfiable: DoNotScaleUp nodePoolAutoCreation: enabled: true
Ganti kode berikut:
GPU_TYPE
: Jenis GPU yang akan dilampirkan, sepertinvidia-l4
.GPU_COUNT
: jumlah GPU yang akan dipasang ke setiap node. Nilai ini harus minimal1
.DRIVER_VERSION
: versi driver GPU yang akan diinstal. Nilai ini harus berupadefault
ataulatest
. Kolom ini memerlukan GKE versi 1.31.1-gke.1858000 atau yang lebih baru.
Terapkan manifes ComputeClass ke cluster:
kubectl apply -f PATH_TO_COMPUTECLASS_MANIFEST
Ganti
PATH_TO_COMPUTECLASS_MANIFEST
dengan jalur ke file manifes ComputeClass.Pilih ComputeClass dalam workload GPU, seperti dalam contoh berikut:
apiVersion: v1 kind: Pod metadata: name: my-gpu-pod spec: nodeSelector: cloud.google.com/compute-class: nvidia-l4-class containers: - name: my-gpu-container image: nvidia/cuda:11.0.3-runtime-ubuntu20.04 command: ["/bin/bash", "-c", "--"] args: ["while true; do sleep 600; done;"] resources: limits: nvidia.com/gpu: 1
Spesifikasi pod
Untuk memilih GPU dalam spesifikasi Pod, Anda harus mengonfigurasi penyediaan otomatis node tingkat cluster dan menetapkan batas resource untuk jenis GPU tersebut. Untuk mengonfigurasi batas resource GPU dan memilih GPU di Pod, ikuti langkah-langkah berikut:
- Konfigurasi batas resource tingkat cluster untuk GPU yang ingin Anda gunakan, seperti yang dijelaskan di bagian Mengonfigurasi batas resource untuk pembuatan otomatis node pool.
Pilih GPU menggunakan label node dalam spesifikasi Pod:
apiVersion: v1 kind: Pod metadata: name: my-gpu-pod spec: nodeSelector: cloud.google.com/gke-accelerator: GPU_TYPE cloud.google.com/gke-accelerator-count: GPU_COUNT cloud.google.com/gke-gpu-driver-version: DRIVER_VERSION containers: - name: my-gpu-container image: nvidia/cuda:11.0.3-runtime-ubuntu20.04 command: ["/bin/bash", "-c", "--"] args: ["while true; do sleep 600; done;"] resources: limits: nvidia.com/gpu: GPU_QUANTITY
Ganti kode berikut:
GPU_TYPE
: Jenis GPU yang akan dilampirkan, sepertinvidia-l4
.GPU_COUNT
: jumlah GPU yang akan dipasang ke setiap node. Nilai ini harus minimal1
.DRIVER_VERSION
: versi driver GPU yang akan diinstal. Nilai ini harus berupadefault
ataulatest
. Di GKE versi 1.32.2-gke.1297000 dan yang lebih baru, GKE otomatis menginstal versi driverdefault
. Label node ini memerlukan GKE versi 1.29.2-gke.1108000 atau yang lebih baru. Untuk mengetahui informasi selengkapnya, lihat Menginstal driver menggunakan penyediaan otomatis node dengan GPU.GPU_QUANTITY
: jumlah GPU yang akan dipasang ke Pod. Nilai ini harus kurang dari atau sama dengan nilaiGPU_COUNT
.
Pilih TPU
Anda dapat meminta TPU dalam spesifikasi ComputeClass atau Pod. Bagian ini mengasumsikan bahwa Anda sudah memahami pemilihan Cloud TPU, dan Anda mengetahui jenis, topologi, dan jumlah TPU yang ingin digunakan. Langkah-langkah yang Anda ikuti bergantung pada cara Anda memilih TPU:
- ComputeClasses: lihat Menyediakan TPU menggunakan class komputasi kustom.
- Spesifikasi pod:
- Konfigurasi batas resource tingkat cluster untuk TPU yang ingin Anda gunakan, seperti yang dijelaskan di bagian Mengonfigurasi batas resource untuk pembuatan otomatis node pool.
- Konfigurasi pemilih dan permintaan resource dalam spesifikasi Pod Anda, seperti yang dijelaskan dalam Menjalankan workload Anda di node slice TPU.
Membatasi runtime node yang dibuat otomatis
Anda dapat menentukan durasi maksimum setelah GKE menghentikan node yang dibuat secara otomatis. Batasan Compute Engine berlaku untuk batas waktu ini.
Pilih salah satu opsi berikut:
ComputeClass
Dalam manifes ComputeClass, gunakan kolom
spec.priorities.maxRunDurationSeconds
. Kolom ini tersedia di GKE versi 1.32.1-gke.1159000 dan yang lebih baru.apiVersion: cloud.google.com/v1 kind: ComputeClass metadata: name: COMPUTE_CLASS spec: priorities: - machine-family: n4 maxRunDurationSeconds: MAX_RUN_DURATION whenUnsatisfiable: DoNotScaleUp nodePoolAutoCreation: enabled: true
Ganti
MAX_RUN_DURATION
dengan waktu, dalam detik, saat node yang dibuat otomatis dapat berjalan sebelum GKE menghentikan node.Terapkan manifes ComputeClass ke cluster:
kubectl apply -f PATH_TO_COMPUTECLASS_MANIFEST
Ganti
PATH_TO_COMPUTECLASS_MANIFEST
dengan jalur ke file manifes ComputeClass.
Spesifikasi pod
Dalam manifes Pod, gunakan pemilih node untuk label node
cloud.google.com/gke-max-run-duration-seconds
. Label node ini tersedia di GKE versi 1.31.2-gke.1518000 dan yang lebih baru.apiVersion: v1 kind: Pod metadata: name: machine-series-pod spec: nodeSelector: cloud.google.com/machine-family: n4 cloud.google.com/gke-max-run-duration-seconds: MAX_RUN_DURATION containers: - name: hello-app image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
Ganti
MAX_RUN_DURATION
dengan waktu, dalam detik, saat node yang dibuat otomatis dapat berjalan sebelum GKE menghentikan node.Buat Pod:
kubectl apply -f PATH_TO_POD_MANIFEST
Ganti
PATH_TO_POD_MANIFEST
dengan jalur ke manifes Pod.
Menentukan platform CPU minimum
Penyediaan otomatis node mendukung pembuatan node pool dengan platform CPU minimum yang ditentukan. Anda dapat menentukan platform CPU minimum di tingkat workload (direkomendasikan) atau di tingkat cluster.
Menonaktifkan pembuatan otomatis node pool
Bagian berikut menunjukkan cara menonaktifkan pembuatan otomatis node pool untuk node pool tertentu atau untuk seluruh cluster. Anda juga dapat menonaktifkan pembuatan otomatis node pool di ComputeClass dengan menentukan nilai false
di kolom nodePoolAutoCreation.enabled
ComputeClass. Namun, sebaiknya jangan menonaktifkan pembuatan otomatis untuk ComputeClass, karena pembuatan otomatis adalah manfaat utama ComputeClass yang memungkinkan Anda menggunakan fitur seperti migrasi aktif dan prioritas penggantian.
Menonaktifkan pembuatan otomatis untuk node pool tertentu
Anda dapat menghentikan GKE mengelola node di node pool yang dibuat otomatis. Tindakan ini memiliki efek berikut:
- Autoscaler cluster berhenti membuat atau menghapus node di node pool tersebut. Jika Anda ingin GKE melakukan penskalaan otomatis pada node, Anda dapat mengaktifkan autoscaler cluster untuk node pool tersebut secara terpisah.
- GKE tidak menghapus node pool saat jumlah node adalah nol.
- GKE akan terus menempatkan Pod yang tertunda di node yang ada di node pool tersebut yang memiliki ketersediaan. Jika penyediaan otomatis node masih diaktifkan untuk cluster, GKE juga dapat membuat node pool baru untuk Pod yang tertunda sesuai kebutuhan.
Untuk menonaktifkan pembuatan otomatis bagi node pool tertentu, jalankan perintah berikut:
gcloud container node-pools update NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION \
--no-enable-autoprovisioning
Menonaktifkan penyediaan otomatis node untuk cluster
Anda dapat menonaktifkan pembuatan otomatis node pool untuk seluruh cluster dengan menonaktifkan setelan cluster penyediaan otomatis node. Tindakan ini memiliki efek berikut:
- Autoscaler cluster berhenti membuat dan menghapus node di node pool yang ada yang dibuat secara otomatis. Node pool yang dibuat secara manual dan menggunakan autoscaler cluster tidak terpengaruh.
- GKE tidak otomatis membuat node pool baru untuk workload yang tertunda. Pantau cluster Anda untuk menghindari Pod yang macet.
Jika cluster memenuhi persyaratan berikut, GKE akan terus membuat node pool baru untuk ComputeClass yang mengaktifkan pembuatan otomatis:
- Menggunakan GKE versi 1.33.3-gke.1136000 atau yang lebih baru.
- Terdaftar di saluran rilis Cepat.
Jika cluster tidak memenuhi persyaratan ini, GKE tidak akan membuat node pool baru untuk ComputeClass yang mengaktifkan pembuatan otomatis.
Jika Anda mengaktifkan kembali setelan penyediaan otomatis node tingkat cluster nanti, GKE tidak akan mengaktifkan kembali pembuatan otomatis node pool di node pool yang ada. Anda harus menandai setiap node pool sebagai dibuat otomatis.
Untuk menonaktifkan setelan penyediaan otomatis node tingkat cluster, pilih salah satu opsi berikut:
Konsol
Di konsol Google Cloud , buka halaman Kubernetes clusters:
Klik nama cluster yang akan diubah. Halaman Cluster details akan terbuka.
Klik tab Detail.
Di bagian Automation, di baris Node auto-provisioning, klik Edit. Panel Edit penyediaan otomatis node akan muncul.
Hapus centang pada kotak Enable node auto-provisioning.
Klik Simpan perubahan.
gcloud
gcloud container clusters update CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION \
--no-enable-autoprovisioning
Langkah berikutnya
- Pelajari lebih lanjut autoscaler cluster.
- Pelajari node pool lebih lanjut.
- Pelajari lebih lanjut strategi upgrade node.