Saat membuat cluster pengguna, Anda harus mengonfigurasi setidaknya satu node pool, yang merupakan grup node yang semuanya memiliki konfigurasi yang sama. Setelah cluster dibuat, Anda dapat menambahkan node pool baru, memperbarui setelan node pool, dan menghapus node pool.
Memilih alat untuk mengelola node pool
Cara Anda membuat, memperbarui, dan menghapus node pool bergantung pada apakah cluster dikelola oleh GKE On-Prem API. Cluster pengguna dikelola oleh GKE On-Prem API jika salah satu kondisi berikut terpenuhi:
Cluster dibuat di konsol Google Cloud atau menggunakan Google Cloud CLI (gcloud CLI), yang secara otomatis mengonfigurasi GKE On-Prem API untuk mengelola cluster.
Cluster dibuat menggunakan
gkectl
, tetapi dikonfigurasi untuk dikelola oleh GKE On-Prem API.
Jika GKE On-Prem API mengelola cluster pengguna, Anda dapat menggunakan
konsol atau gcloud CLI untuk mengelola node pool. Jika
cluster pengguna tidak dikelola oleh GKE On-Prem API, gunakan gkectl
di workstation admin untuk mengelola node pool.
Jika Anda berencana menggunakan gcloud CLI, lakukan langkah-langkah berikut di komputer yang telah menginstal gcloud CLI:
Login dengan Akun Google Anda
gcloud auth login
Perbarui komponen:
gcloud components update
Menambahkan node pool
Jika cluster dikelola oleh GKE On-Prem API, Anda dapat menggunakan konsol atau gcloud CLI untuk menambahkan node pool; namun, Anda harus menggunakan gkectl
di workstation admin untuk mengonfigurasi setelan node pool berikut:
- Windows untuk jenis image OS
- Datastore vSphere
Tag vSphere Jika Anda ingin melampirkan tag ke semua VM di kumpulan node, akun pengguna vCenter Anda harus memiliki hak istimewa pemberian tag vSphere berikut:
- Pemberian Tag vSphere.Tetapkan atau Batalkan Penetapan Tag vSphere
- Pemberian Tag vSphere.Menetapkan atau Membatalkan Penetapan Tag vSphere pada Objek (vSphere 7)
Sebelum menambahkan kumpulan node lain, pastikan ada cukup alamat IP yang tersedia di cluster.
gkectl
Lakukan tindakan berikut di workstation admin Anda:
Di file konfigurasi cluster pengguna, isi bagian
nodePools
.Anda harus menentukan kolom berikut:
nodePools.[i].name
nodePools[i].cpus
nodePools.[i].memoryMB
nodePools.[i].replicas
Kolom berikut bersifat opsional. Jika Anda tidak menyertakan
nodePools[i].bootDiskSizeGB
ataunodePools[i].osImageType
, nilai default akan digunakan.nodePools[i].labels
nodePools[i].taints
nodePools[i].bootDiskSizeGB
nodePools[i].osImageType
nodePools[i].vsphere.datastore
nodePools[i].vsphere.tags
Jalankan perintah berikut:
gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
Ganti kode berikut:
ADMIN_CLUSTER_KUBECONFIG
dengan jalur file kubeconfig untuk cluster admin Anda.USER_CLUSTER_CONFIG
dengan jalur file konfigurasi cluster pengguna Anda.
Contoh konfigurasi
Dalam konfigurasi contoh berikut, ada empat node pool, masing-masing dengan atribut yang berbeda:
pool-1
: hanya atribut wajib minimum yang ditentukanpool-2
: mencakupvsphere.datastore
danvsphere.tags
pool-3
: mencakuptaints
danlabels
pool-4
: mencakuposImageType
danbootDiskSizeGB
nodePools:
- name: pool-1
cpus: 4
memoryMB: 8192
replicas: 5
- name: pool-2
cpus: 8
memoryMB: 16384
replicas: 3
vsphere:
datastore: my_datastore
tags:
- category: "purpose"
name: "testing"
- name: pool-3
cpus: 4
memoryMB: 8192
replicas: 5
taints:
- key: "example-key"
effect: NoSchedule
labels:
environment: production
app: nginx
- name: pool-4
cpus: 4
memoryMB: 8192
replicas: 5
osImageType: cos
bootDiskSizeGB: 40
Konsol
Di konsol, buka halaman ringkasan cluster Google Kubernetes Engine.
Pilih project Google Cloud tempat cluster pengguna berada.
Di daftar cluster, klik nama cluster, lalu klik Lihat detail di panel Detail.
Klik
Add node pool.Konfigurasi node pool:
- Masukkan Nama node pool.
- Masukkan jumlah vCPUs untuk setiap node di pool (minimal 4 per pekerja cluster pengguna).
- Masukkan ukuran memori dalam mebibyte (MiB) untuk setiap node di pool (minimum 8192 MiB per node pekerja cluster pengguna dan harus kelipatan 4).
- Di kolom Nodes, masukkan jumlah node dalam pool (minimum 3).
Pilih jenis image OS: Ubuntu Containerd atau COS.
Masukkan Boot disk size dalam gibibyte (GiB) (default adalah 40 GiB).
Di bagian Metadata kumpulan node (opsional), jika Anda ingin menambahkan label dan taint Kubernetes, lakukan hal berikut:
- Klik + Tambahkan Label Kubernetes. Masukkan Kunci dan Nilai untuk label. Ulangi jika perlu.
- Klik + Add Taint. Masukkan Kunci, Nilai, dan Efek untuk taint. Ulangi jika perlu.
Klik Buat.
Konsol Google Cloud menampilkan Status cluster: perubahan sedang berlangsung. Klik Tampilkan Detail untuk melihat Kondisi status resource dan Pesan status.
gcloud CLI
Jalankan perintah berikut untuk membuat node pool:
gcloud container vmware node-pools create NODE_POOL_NAME \ --cluster=USER_CLUSTER_NAME \ --project=FLEET_HOST_PROJECT_ID \ --location=LOCATION \ --image-type=IMAGE_TYPE \ --boot-disk-size=BOOT_DISK_SIZE \ --cpus=vCPUS \ --memory=MEMORY \ --replicas=NODES
Ganti kode berikut:
NODE_POOL_NAME
: Nama pilihan Anda untuk node pool. Nama harus:- berisi paling banyak 40 karakter
- hanya berisi karakter alfanumerik huruf kecil atau tanda hubung (
-
) - diawali dengan karakter alfabet
- diakhiri dengan karakter alfanumerik
USER_CLUSTER_NAME
: Nama cluster pengguna tempat node pool akan dibuat.
FLEET_HOST_PROJECT_ID
: ID project tempat cluster terdaftar.LOCATION
: Google Cloud Lokasi yang terkait dengan cluster pengguna.IMAGE_TYPE
: Jenis image OS yang akan dijalankan di VM dalam node pool. Tetapkan ke salah satu opsi berikut:ubuntu_containerd
ataucos
.BOOT_DISK_SIZE
: Ukuran boot disk dalam gibibyte (GiB) untuk setiap node di dalam kumpulan. Minimumnya adalah 40 GiB.vCPUs
: Jumlah vCPU untuk setiap node di node pool. Nilai minimum adalah 4.MEMORY
: Ukuran memori dalam mebibyte (MiB) untuk setiap node dalam pool. Minimumnya adalah 8192 MiB per node pekerja cluster pengguna dan nilainya harus kelipatan 4.NODES
: Jumlah node di node pool. Nilai minimumnya adalah 3.
Contoh:
gcloud container vmware node-pools create default-pool \ --cluster=user-cluster-1 \ --location=us-west1 \ --image-type=ubuntu_containerd \ --boot-disk-size=40 \ --cpus=8 \ --memory=8192 \ --replicas=5
Secara opsional, Anda dapat menentukan hal berikut:
--enable-load-balancer
: Hanya relevan untuk load balancer MetalLB. Jika ditentukan, memungkinkan speaker MetalLB berjalan di node dalam pool. Setidaknya satu node pool harus diaktifkan untuk load balancer MetalLB.--image=IMAGE
: Nama image OS di vCenter.--node-labels=KEY=VALUE,...
: Daftar label Kubernetes yang dipisahkan koma (pasangan nilai kunci) yang diterapkan ke setiap node dalam kumpulan.--node-taints=KEY=VALUE:EFFECT,...
Daftar taint Kubernetes yang dipisahkan koma dan diterapkan ke setiap node dalam kumpulan. Taint adalah pasangan nilai kunci yang terkait dengan efek. Taint digunakan dengan toleransi untuk penjadwalan Pod. Tentukan salah satu dari berikut untuk EFFECT:NoSchedule
,PreferNoSchedule
,NoExecute
.
Contoh:
gcloud container vmware node-pools create default-pool \ --cluster=user-cluster-1 \ --location=us-west1 \ --image-type=ubuntu_containerd \ --boot-disk-size=40 \ --cpus=8 \ --memory=8192 \ --replicas=5 \ --node-taints=key1=val1:NoSchedule,key2=val2:NoExecute
Untuk mengetahui informasi tentang flag opsional lainnya, lihat referensi gcloud.
Memperbarui node pool
Saat Anda menambah jumlah replika, Google Distributed Cloud akan menambahkan jumlah node yang diperlukan ke cluster pengguna, dan saat Anda mengurangi jumlah replika, node akan dihapus. Mengubah jumlah replika untuk node pool tidak mengganggu workload. Pastikan Anda memiliki alamat IP yang tersedia jika Anda menambah jumlah replika.
Jika Anda mengupdate kolom node pool lainnya, hal ini akan memicu update berkelanjutan di cluster. Dalam update bertahap, Google Distributed Cloud membuat node baru, lalu menghapus node lama. Proses ini diulang hingga semua node lama diganti dengan node baru. Proses ini tidak menyebabkan periode nonaktif, tetapi cluster harus memiliki alamat IP tambahan yang tersedia untuk digunakan selama update.
Misalkan kumpulan node akan memiliki N node di akhir update. Kemudian, Anda harus memiliki setidaknya N + 1 alamat IP yang tersedia untuk node di kumpulan tersebut. Artinya, jika Anda mengubah ukuran cluster dengan menambahkan node ke satu atau beberapa pool, Anda harus memiliki setidaknya satu alamat IP lebih banyak daripada jumlah total node yang akan ada di semua node pool cluster pada akhir pengubahan ukuran. Untuk mengetahui informasi selengkapnya, lihat Memastikan ketersediaan alamat IP yang cukup.
Untuk mengupdate node pool di cluster pengguna:
gkectl
Ubah nilai untuk kolom yang ingin Anda ubah di bagian
nodePools
file konfigurasi cluster pengguna.Update cluster:
gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
Ganti kode berikut:
ADMIN_CLUSTER_KUBECONFIG
dengan jalur file kubeconfig untuk cluster admin Anda.USER_CLUSTER_CONFIG
dengan jalur file konfigurasi cluster pengguna Anda.
Memperbarui osImageType
yang digunakan oleh node pool
Untuk mengupdate node pool agar menggunakan osImageType
yang berbeda, Anda harus menggunakan command line. Untuk mengubah osImageType
yang digunakan oleh node pool, perbarui file konfigurasi untuk node pool, seperti yang ditunjukkan pada contoh berikut, lalu jalankan gkectl update cluster
.
nodePools: - name: np-1 cpus: 4 memoryMB: 8192 replicas: 3 osImageType: ubuntu_containerd
Konsol
Anda hanya dapat memperbarui kolom berikut menggunakan konsol:
- Jumlah replika
- Memori
- Jumlah vCPU
Untuk memperbarui kolom lain, gunakan gcloud CLI atau gkectl
.
Di konsol, buka halaman ringkasan cluster Google Kubernetes Engine.
Pilih project Google Cloud tempat cluster pengguna berada.
Di daftar cluster, klik nama cluster, lalu klik Lihat detail di panel Detail.
Klik tab Nodes.
Klik nama node pool yang ingin diubah.
Klik
Edit di samping kolom yang ingin Anda ubah, lalu klik Selesai.Klik
untuk kembali ke halaman sebelumnya.Konsol Google Cloud menampilkan Status cluster: perubahan sedang berlangsung. Klik Tampilkan Detail untuk melihat Kondisi status resource dan Pesan status.
gcloud CLI
Secara opsional, cantumkan node pool untuk mendapatkan nama node pool yang ingin Anda perbarui:
gcloud container vmware node-pools list \ --cluster=USER_CLUSTER_NAME \ --project=FLEET_HOST_PROJECT_ID \ --location=LOCATION
Jalankan perintah berikut untuk mengupdate node pool:
gcloud container vmware node-pools update NODE_POOL_NAME \ --cluster=USER_CLUSTER_NAME \ --project=FLEET_HOST_PROJECT_ID \ --location=LOCATION \ --ATTRIBUTE_TO_UPDATE \ ...
Ganti kode berikut:
NODE_POOL_NAME
: Nama node pool yang akan diupdate.USER_CLUSTER_NAME
: Nama cluster pengguna yang berisi node pool.LOCATION
: Google Cloud Lokasi yang terkait dengan cluster pengguna.ATTRIBUTE_TO_UPDATE
: Satu atau beberapa flag untuk memperbarui atribut node pool. Misalnya, untuk mengubah jumlah vCPU dan node di pool, jalankan perintah berikut.
gcloud container vmware node-pools update default-pool \ --cluster=user-cluster-1 \ --project=example-project-12345 --location=us-west1 \ --cpus=10 \ --replicas=6
Untuk mengetahui informasi tentang atribut kumpulan node yang dapat Anda perbarui, lihat referensi gcloud.
Memverifikasi perubahan Anda
Untuk memverifikasi bahwa node pool Anda telah dibuat atau diupdate sesuai keinginan, periksa node cluster:
gkectl
Jalankan perintah berikut:
kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get nodes -o wide
Jika Anda perlu mengembalikan perubahan, edit file konfigurasi cluster dan
jalankan gkectl update cluster
.
Konsol
Di konsol, buka halaman ringkasan cluster Google Kubernetes Engine.
Pilih project Google Cloud tempat cluster pengguna berada.
Di daftar cluster, klik nama cluster, lalu klik Lihat detail di panel Detail.
Klik tab Nodes.
Klik nama node pool yang ingin Anda lihat.
gcloud CLI
Jalankan perintah berikut:
gcloud container vmware node-pools describe NODE_POOL_NAME \ --cluster=USER_CLUSTER_NAME \ --project=FLEET_HOST_PROJECT_ID \ --location=LOCATION
Menghapus node pool
Meskipun Anda dapat menghapus node pool, cluster pengguna Anda harus memiliki setidaknya satu node pool. Menghapus node pool akan menyebabkan penghapusan langsung node pool terlepas dari apakah node tersebut menjalankan workload atau tidak.
Untuk menghapus node pool dari cluster pengguna:
gkectl
Pastikan tidak ada workload yang berjalan di node yang terpengaruh.
Hapus definisinya dari bagian
nodePools
file konfigurasi cluster pengguna.Update cluster:
gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
Ganti kode berikut:
[ADMIN_CLUSTER_KUBECONFIG]
dengan jalur file kubeconfig untuk cluster admin Anda.[USER_CLUSTER_CONFIG]
dengan jalur file konfigurasi cluster pengguna Anda.
Konsol
Pastikan tidak ada workload yang berjalan di node yang terpengaruh.
Di konsol, buka halaman ringkasan cluster Google Kubernetes Engine.
Pilih project Google Cloud tempat cluster pengguna berada.
Di daftar cluster, klik nama cluster, lalu klik Lihat detail di panel Detail.
Klik tab Nodes.
Klik nama node pool yang ingin Anda hapus.
Klik
Delete.Klik
untuk kembali ke halaman sebelumnya.Konsol Google Cloud menampilkan Status cluster: perubahan sedang berlangsung. Klik Tampilkan Detail untuk melihat Kondisi status resource dan Pesan status.
gcloud CLI
Secara opsional, cantumkan kumpulan node untuk mendapatkan nama kumpulan node yang ingin Anda hapus:
gcloud container vmware node-pools list \ --cluster=USER_CLUSTER_NAME \ --project=FLEET_HOST_PROJECT_ID \ --location=LOCATION
Jalankan perintah berikut untuk menghapus node pool:
gcloud container vmware node-pools delete NODE_POOL_NAME \ --cluster=USER_CLUSTER_NAME \ --project=FLEET_HOST_PROJECT_ID \ --location=LOCATION
Ganti kode berikut:
NODE_POOL_NAME
: Nama node pool yang akan dihapus.USER_CLUSTER_NAME
: Nama cluster pengguna yang berisi node pool.LOCATION
: Google Cloud Lokasi yang terkait dengan cluster pengguna.
Pemecahan masalah
Secara umum, perintah
gkectl update cluster
memberikan informasi spesifik saat gagal. Jika perintah berhasil dan Anda tidak melihat node, Anda dapat memecahkan masalah dengan panduan Mendiagnosis masalah cluster.Mungkin ada resource cluster yang tidak mencukupi seperti kurangnya alamat IP yang tersedia selama pembuatan atau update node pool. Lihat topik Mengubah ukuran cluster pengguna untuk mengetahui detail tentang cara memverifikasi ketersediaan alamat IP.
Anda juga dapat meninjau Memecahkan masalah update Google Distributed Cloud.
Tidak akan melanjutkan melewati
Creating node MachineDeployment(s) in user cluster…
.Mungkin perlu waktu beberapa saat untuk membuat atau mengupdate node pool di cluster pengguna Anda. Namun, jika waktu tunggu sangat lama dan Anda mencurigai ada yang mungkin gagal, Anda dapat menjalankan perintah berikut:
- Jalankan
kubectl get nodes
untuk mendapatkan status node Anda. - Untuk setiap node yang belum siap, jalankan
kubectl describe node NODE_NAME
untuk mendapatkan detail.
- Jalankan