Kumpulan node adalah sekelompok node di dalam cluster yang memiliki konfigurasi yang sama. Semua node di cluster Anda harus termasuk dalam kumpulan node. Ada tiga jenis node kumpulan di cluster Google Distributed Cloud: bidang kontrol, load balancer, dan node worker Google Cloud.
Halaman ini menjelaskan cara memeriksa status kumpulan node pekerja, serta cara menambah, memperbarui, dan menghapus kumpulan node pekerja.
Memilih alat untuk mengelola kumpulan node
Cara mengelola kumpulan node bergantung pada jenis cluster dan cluster pengguna, apakah cluster dikelola oleh GKE On-Prem API. Cluster pengguna adalah 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 tersebut dibuat menggunakan
bmctl
, tetapi dikonfigurasi untuk dikelola oleh GKE On-Prem API.
Jika GKE On-Prem API mengelola cluster pengguna, Anda dapat menggunakan
atau gcloud CLI untuk mengelola node pool. Jika
cluster pengguna tidak dikelola oleh GKE On-Prem API, gunakan kubectl
di admin
untuk mengelola kumpulan node. Anda juga menggunakan kubectl
untuk mengelola node
kumpulan untuk semua jenis cluster yang dapat berisi kumpulan node pekerja (hibrida,
mandiri, dan pengguna).
Jika Anda berencana menggunakan gcloud CLI, lakukan hal berikut di komputer yang telah menginstal gcloud CLI:
Sign in menggunakan Account Google Anda
gcloud auth login
Perbarui komponen:
gcloud components update
Periksa status node
Sebelum menambahkan atau menghapus kumpulan node, periksa status node dan node kumpulan node yang terkait.
kubectl
Dengan kubectl
, Anda bisa mendapatkan status node di namespace tertentu atau
di seluruh cluster. Contoh berikut menunjukkan status node
kumpulan dalam namespace cluster cluster-abm-cluster
:
kubectl get nodepools.baremetal.cluster.gke.io -n cluster-abm-cluster
Sistem menampilkan hasil yang mirip dengan berikut ini:
NAME READY RECONCILING STALLED UNDERMAINTENANCE UNKNOWN
abm-cluster 3 0 0 0 0
default-pool 2 0 0 0 0
backup-pool 3 0 0 0 0
Setiap kolom dalam tabel menunjukkan berbagai status yang dimiliki node. Setiap baris dalam tabel adalah jumlah node per kumpulan node di setiap node status.
Saat Anda menambahkan node, awalnya node tersebut akan memiliki status Reconciling
sedangkan node
disediakan. Setelah node menjadi bagian dari cluster, status node
perubahan menjadi Ready
.
Anda juga dapat memeriksa status node dalam cluster dengan menjalankan perintah berikut berikut:
kubectl get nodes --kubeconfig=PATH_TO_KUBECONFIG
Konsol
Di konsol, buka Ringkasan cluster Google Kubernetes Engine kami.
Pilih project Google Cloud tempat cluster pengguna berada.
Dalam daftar cluster, klik nama cluster, lalu klik Detail selengkapnya di panel Details.
Klik tab Nodes.
Daftar kumpulan node akan ditampilkan.
gcloud CLI
Buat daftar kumpulan node pada cluster:
gcloud container bare-metal node-pools list \ --cluster=USER_CLUSTER_NAME \ --project=FLEET_HOST_PROJECT_ID \ --location=LOCATION
Ganti kode berikut:
USER_CLUSTER_NAME
: Nama cluster pengguna yang berisi kumpulan node.FLEET_HOST_PROJECT_ID
: ID project yang tempat cluster dibuat.LOCATION
: Lokasi Google Cloud yang terkait dengan cluster pengguna.
Menjelaskan kumpulan node:
gcloud container bare-metal node-pools describe NODE_POOL_NAME \ --cluster=USER_CLUSTER_NAME \ --project=FLEET_HOST_PROJECT_ID \ --location=LOCATION
Ganti
NODE_POOL_NAME
dengan nama kumpulan node.
Jika Anda memerlukan informasi lebih lanjut tentang cara mendiagnosis cluster, lihat Buat snapshot untuk mendiagnosis cluster.
Menambahkan kumpulan node baru
kubectl
Perhatikan aturan berikut saat menambahkan kumpulan node ke cluster:
Cluster admin dapat berisi kumpulan node load balancer dan node bidang kontrol kumpulan, tetapi tidak dapat berisi kumpulan node pekerja: mencoba menambahkan node pekerja ke cluster admin akan menghasilkan error.
Sebuah cluster hanya dapat berisi satu kumpulan node bidang kontrol, dan satu beban node pool. Anda tidak dapat menambahkan bidang kontrol atau load balancing tambahan kumpulan node ke cluster.
Anda dapat menambahkan kumpulan node baru ke cluster dengan membuat
nodepools.baremetal.cluster.gke.io
resource di cluster. Dalam
misalnya, kumpulan node baru bernama "machine-learning-pool" ditambahkan ke manifes. Yang baru
kumpulan node terdiri dari dua node dengan alamat IP 10.200.0.7
dan 10.200.0.8
:
apiVersion: baremetal.cluster.gke.io/v1
kind: NodePool
metadata:
name: machine-learning-pool
namespace: cluster-abm-cluster
spec:
clusterName: abm-cluster
nodes:
- address: 10.200.0.7
- address: 10.200.0.8
taints:
- key: TAINT_KEY
value: TAINT_VALUE
effect: NoSchedule
labels:
key1: LABEL_1
key2: LABEL_2
Simpan konfigurasi dalam file bernama machine-learning-pool.yaml
dan terapkan
ke cluster dengan perintah berikut:
kubectl apply -f machine-learning-pool.yaml
Fakta berikut harus dipertimbangkan saat menambahkan kumpulan node ke cluster:
NodePool.spec.taints
danNodePool.spec.labels
akan direkonsiliasi ke node. Semua taint dan label yang yang ditambahkan langsung ke node. Bidang kontrol tidak menghapus taint dan label yang Anda tambahkan langsung selama proses sinkronisasi. Kepada melewati langkah rekonsiliasi ini, Anda bisa menganotasi node denganbaremetal.cluster.gke.io/label-taint-no-sync
.Resource kumpulan node harus dibuat dalam namespace yang sama dengan dan resource kumpulan node harus merujuk pada nama cluster di Kolom
spec.clusterName
.
Konsol
Di konsol, buka Ringkasan cluster Google Kubernetes Engine kami.
Pilih project Google Cloud tempat cluster pengguna berada.
Dalam daftar cluster, klik nama cluster, lalu klik Detail selengkapnya di panel Details.
Klik
Add Node Pool.Masukkan nama untuk kumpulan node.
Di kolom Alamat node 1, masukkan alamat IP pekerja mesin node.
Jika Anda memiliki lebih dari satu mesin node pekerja untuk ditambahkan, klik
Tambahkan Alamat.Secara opsional, tambahkan Label Kubernetes dan/atau taint Kubernetes.
Klik Create.
Status kumpulan node ditampilkan di tab Node. Anda mungkin harus memuat ulang halaman untuk melihat status yang diperbarui.
gcloud CLI
gcloud container bare-metal node-pools create NODE_POOL_NAME \ --cluster=USER_CLUSTER_NAME \ --project=FLEET_HOST_PROJECT_ID \ --location=LOCATION \ --node-configs-from-file=NODE_POOL_CONFIG
Ganti kode berikut:
NODE_POOL_NAME
: Nama pilihan Anda untuk node kolam renang. Namanya harus:- berisi maksimal 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.FLEET_HOST_PROJECT_ID
: ID project yang tempat cluster dibuat.LOCATION
: Lokasi Google Cloud yang Anda yang ditentukan saat Anda membuat cluster.NODE_POOL_CONFIG
: Jalur file konfigurasi yang mendeskripsikan kumpulan node. Contoh:nodeConfigs: - nodeIP: 10.200.0.10 labels: key1: value1 key2: value2 - nodeIP: 10.200.0.11 labels: key3: value3 key4: value4
Secara opsional, Anda dapat menentukan hal berikut:
--node-labels=KEY=VALUE,...
: J daftar yang dipisahkan koma, Label Kubernetes (key-value pair) yang diterapkan ke setiap node dalam kumpulan.--node-taints=KEY=VALUE:EFFECT,...
Daftar yang dipisahkan koma dari taint Kubernetes
diterapkan ke setiap
node dalam kumpulan. Taint adalah pasangan nilai kunci yang terkait dengan
suatu efek. Taint digunakan dengan toleransi untuk penjadwalan Pod. Tentukan salah satu
dari hal berikut untuk EFFECT
: NoSchedule
,
PreferNoSchedule
, NoExecute
.
--validate-only
Tentukan tanda ini jika Anda ingin memvalidasi update, tetapi tidak membuat perubahan apa pun.
Memperbarui node pool
kubectl
Anda mengupdate node pool dengan mengubah
nodepools.baremetal.cluster.gke.io
resource di cluster. Anda dapat
mengupdate resource secara langsung menggunakan kubectl edit
, atau Anda dapat mengupdate
file YAML dan gunakan kubectl apply
.
Konsol
Di konsol, buka Ringkasan cluster Google Kubernetes Engine kami.
Pilih project Google Cloud tempat cluster pengguna berada.
Dalam daftar cluster, klik nama cluster, lalu klik Detail selengkapnya di panel Details.
Klik tab Nodes.
Pada daftar, klik kumpulan node yang ingin Anda perbarui.
Di halaman Detail node pool, klik
Edit.Ubah setelan sesuai kebutuhan, lalu klik Simpan.
gcloud CLI
Atau, cantumkan kumpulan node di cluster untuk mendapatkan nama kumpulan node yang ingin Anda perbarui.
gcloud container bare-metal node-pools list \ --cluster=USER_CLUSTER_NAME \ --project=FLEET_HOST_PROJECT_ID \ --location=LOCATION
Ganti kode berikut:
USER_CLUSTER_NAME
: Nama cluster pengguna yang berisi kumpulan node.FLEET_HOST_PROJECT_ID
: ID project yang tempat cluster dibuat.LOCATION
: Lokasi Google Cloud yang terkait dengan cluster pengguna.
Jalankan perintah berikut:
gcloud container bare-metal node-pools update NODE_POOL_NAME \ --cluster=USER_CLUSTER_NAME \ --project=FLEET_HOST_PROJECT_ID \ --location=LOCATION \ --node-configs-from-file=NODE_CONFIG_FILE
Ganti kode berikut:
NODE_POOL_NAME
dengan nama kumpulan node.NODE_CONFIG_FILE
: Jalur file konfigurasi yang mendeskripsikan kumpulan node. Contoh:
nodeConfigs: - nodeIP: 10.200.0.10 labels: key1: value1 - nodeIP: 10.200.0.11
Secara opsional, Anda dapat menentukan hal berikut:
--node-labels=KEY=VALUE,...
: J daftar yang dipisahkan koma, Label Kubernetes (key-value pair) yang diterapkan ke setiap node dalam kumpulan.--node-taints=KEY=VALUE:EFFECT,...
Daftar yang dipisahkan koma dari taint Kubernetes. diterapkan ke setiap node dalam kumpulan. Taint adalah pasangan nilai kunci yang terkait dengan suatu efek. Taint digunakan dengan toleransi untuk penjadwalan Pod. Tentukan salah satu nilai berikut untuk EFFECT:NoSchedule
,PreferNoSchedule
,NoExecute
.--validate-only
Tentukan tanda ini jika Anda ingin memvalidasi update, tetapi tidak membuat perubahan apa pun.
Contoh:
gcloud container bare-metal node-pools create default-pool \ --cluster=user-cluster-1 \ --location=us-west1 \ --node-configs-from-file=node-pool-config.yaml \ --node-taints=key1=val1:NoSchedule,key2=val2:NoExecute
Menghapus kumpulan node
kubectl
Anda menghapus kumpulan node dengan kubectl delete
. Misalnya, untuk menghapus node
kumpulan yang ditambahkan di bagian sebelumnya, machine-learning-pool
, gunakan
perintah berikut:
kubectl delete nodepool machine-learning-pool -n cluster-abm-cluster
Perlu diingat bahwa kumpulan node bidang kontrol dan kumpulan node load balancer sangat penting untuk fungsi cluster dan tidak dapat dihapus dari .
Konsol
Di konsol, buka Ringkasan cluster Google Kubernetes Engine kami.
Pilih project Google Cloud tempat cluster pengguna berada.
Dalam daftar cluster, klik nama cluster, lalu klik Detail selengkapnya di panel Details.
Klik tab Nodes, lalu klik kumpulan node yang ingin Anda hapus.
Klik
Delete.Pada dialog konfirmasi, masukkan nama kumpulan node dan klik Konfirmasi.
gcloud CLI
gcloud container bare-metal node-pools delete NODE_POOL_NAME \ --cluster=USER_CLUSTER_NAME \ --project=FLEET_HOST_PROJECT_ID \ --location=LOCATION
Ganti kode berikut:
NODE_POOL_NAME
dengan nama kumpulan node.USER_CLUSTER_NAME
: Nama cluster pengguna yang berisi kumpulan node.FLEET_HOST_PROJECT_ID
: ID project yang tempat cluster dibuat.LOCATION
: Lokasi Google Cloud yang terkait dengan cluster pengguna.
Menghapus kumpulan node pekerja dalam cluster dapat menyebabkan Gangguan Pod. Jika ada PodDisruptionBudget (PDB), Anda mungkin tidak dapat menghapus node kolam renang. Untuk mengetahui informasi selengkapnya tentang kebijakan gangguan pod, lihat Menghapus node yang diblokir oleh Anggaran Gangguan Pod.
Langkah selanjutnya
Jika persyaratan workload berubah setelah membuat node pool, Anda dapat memperbarui kumpulan node pekerja untuk menambah atau menghapus node. Untuk menambahkan atau menghapus node dari pekerja node pool, lihat Menambahkan atau menghapus node dalam cluster.