Tentang node pool
Node pool
adalah sekelompok node dalam cluster yang semuanya memiliki konfigurasi yang sama.
Biasanya, Anda menentukan kumpulan node terpisah jika memiliki pod dengan persyaratan resource yang berbeda.
Misalnya, pod apigee-cassandra
memerlukan penyimpanan persisten, sedangkan pod hybrid Apigee lainnya tidak.
Topik ini membahas cara mengonfigurasi node pool khusus untuk penginstalan hybrid.
Menggunakan nodeSelector default
Praktik terbaiknya adalah menyiapkan dua node pool khusus: satu untuk pod Cassandra dan satu untuk semua pod runtime lainnya. Dengan menggunakan konfigurasi nodeSelector default, penginstal akan menetapkan pod Cassandra ke kumpulan node stateful bernama apigee-data
dan semua pod lainnya ke kumpulan node stateless bernama apigee-runtime
. Anda hanya perlu
membuat kumpulan node dengan nama ini, dan Apigee Hybrid akan menangani detail penjadwalan pod
untuk Anda:
Nama node pool default | Deskripsi |
---|---|
apigee-data |
Node pool stateful. |
apigee-runtime |
Node pool stateless. |
Berikut adalah konfigurasi nodeSelector
default. Properti apigeeData
menentukan node pool untuk pod Cassandra. apigeeRuntime
menentukan node
pool untuk semua pod lainnya. Anda dapat mengganti setelan default ini di file penggantian, seperti yang dijelaskan nanti dalam topik ini:
nodeSelector: requiredForScheduling: true apigeeRuntime: key: "cloud.google.com/gke-nodepool" value: "apigee-runtime" apigeeData: key: "cloud.google.com/gke-nodepool" value: "apigee-data"
Untuk memastikan pod Anda dijadwalkan di node yang benar, buat dua node pool dengan nama apigee-data
dan apigee-runtime
.
Properti requiredForScheduling
Bagian konfigurasi nodeSelector
memiliki properti yang disebut
requiredForScheduling
:
nodeSelector: requiredForScheduling: false apigeeRuntime: key: "cloud.google.com/gke-nodepool" value: "apigee-runtime" apigeeData: key: "cloud.google.com/gke-nodepool" value: "apigee-data"
Jika disetel ke false
, pod pokok akan dijadwalkan terlepas dari apakah node pool
ditentukan dengan nama yang diperlukan atau tidak. Artinya, jika Anda lupa membuat node pool
atau jika Anda secara tidak sengaja memberi nama node pool selain apigee-runtime
atau
apigee-data
, penginstalan runtime hybrid akan berhasil. Kubernetes
akan memutuskan tempat untuk menjalankan pod Anda.
Jika Anda menyetel requiredForScheduling
ke true
(default), penginstalan akan gagal
kecuali ada kumpulan node yang cocok dengan kunci dan nilai nodeSelector
yang dikonfigurasi.
Menggunakan nama kumpulan node kustom
Jika tidak ingin menggunakan node pool dengan nama default, Anda dapat membuat node pool dengan
nama kustom dan menentukan nama tersebut di bagian
nodeSelector
. Misalnya, konfigurasi berikut menetapkan
pod Cassandra ke pool bernama my-cassandra-pool
dan semua pod lainnya ke pool
bernama my-runtime-pool
:
nodeSelector: requiredForScheduling: false apigeeRuntime: key: "cloud.google.com/gke-nodepool" value: "my-runtime-pool" apigeeData: key: "cloud.google.com/gke-nodepool" value: "my-cassandra-pool"
Mengganti node pool untuk komponen tertentu di GKE
Anda juga dapat mengganti konfigurasi kumpulan node
di tingkat komponen individual. Misalnya, konfigurasi berikut menetapkan
node pool dengan nilai
apigee-custom
ke komponen runtime
:
runtime: nodeSelector: key: cloud.google.com/gke-nodepool value: apigee-custom
Anda dapat menentukan kumpulan node kustom pada salah satu komponen berikut:
istio
mart
synchronizer
runtime
cassandra
udca
logger
Konfigurasi node pool GKE dan Google Distributed Cloud
Di platform GKE dan Google Distributed Cloud (GDC), node pool harus memiliki nama unik yang Anda berikan saat membuat pool, dan GKE/GDC secara otomatis memberi label pada setiap node dengan label berikut:
cloud.google.com/gke-nodepool=THE_NODE_POOL_NAME
Selama Anda membuat node pool bernama apigee-data
dan apigee-runtime
,
tidak ada konfigurasi lebih lanjut yang diperlukan. Jika Anda ingin menggunakan nama node kustom, lihat
Menggunakan nama kumpulan node kustom.
Konfigurasi node pool di platform Kubernetes lainnya.
Lihat dokumentasi platform Kubernetes Anda untuk mengetahui informasi tentang pemberian label dan pengelolaan kumpulan node.
Meskipun node pool secara otomatis memberi label pada node pekerja secara default, Anda dapat secara opsional memberi label pada node pekerja secara manual dengan langkah-langkah berikut:
- Jalankan perintah berikut untuk mendapatkan daftar node pekerja di cluster Anda:
kubectl -n APIGEE_NAMESPACE get nodes
Jika Anda menggunakan label node pool kustom, pastikan setiap pasangan nilai kunci unik. Contoh:
nodeSelector: requiredForScheduling: true apigeeRuntime: key: "pool1-key" value: "pool1-label" apigeeData: key: "pool2-key" value: "pool2-label"
Mengganti node pool untuk komponen tertentu
Anda juga dapat mengganti konfigurasi kumpulan node di tingkat komponen individual. Misalnya, konfigurasi berikut menetapkan node pool dengan nilai
apigee-custom
ke komponenruntime
:runtime: nodeSelector: key: apigee.com/apigee-nodepool value: apigee-custom
Anda dapat menentukan kumpulan node kustom pada salah satu komponen berikut:
apigeeingressgateway
cassandra
logger
mart
metrics
runtime
synchronizer
udca