Tentang node pool
Node pool adalah grup node dalam cluster yang semuanya memiliki konfigurasi yang sama.
Biasanya, Anda menentukan kumpulan node terpisah saat memiliki pod dengan persyaratan resource yang berbeda.
Misalnya, pod apigee-cassandra
memerlukan penyimpanan persisten, sedangkan
pod hibrida Apigee lainnya tidak.
Topik ini membahas cara mengonfigurasi node pool khusus untuk penginstalan hybrid.
Menggunakan nodeSelectors 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
. Yang perlu Anda lakukan adalah membuat node pool 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
dalam 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 ditetapkan ke false
, pod yang mendasarinya akan dijadwalkan, terlepas dari apakah node pool ditentukan dengan nama yang diperlukan atau tidak. Artinya, jika Anda lupa membuat node pool atau jika Anda tidak sengaja memberi nama node pool selain apigee-runtime
atau apigee-data
, penginstalan runtime hybrid akan berhasil. Kubernetes
akan menentukan tempat untuk menjalankan pod Anda.
Jika Anda menetapkan requiredForScheduling
ke true
(default), penginstalan akan gagal kecuali jika 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 dalam stanza nodeSelector
. Misalnya, konfigurasi berikut menetapkan pod Cassandra ke kumpulan yang bernama my-cassandra-pool
dan semua pod lainnya ke kumpulan yang 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 di salah satu komponen berikut:
istio
mart
synchronizer
runtime
cassandra
udca
logger
Konfigurasi node pool GKE
Di GKE, node pool harus memiliki nama unik yang Anda berikan saat membuat kumpulan, dan GKE akan otomatis memberi label pada setiap node dengan hal berikut:
cloud.google.com/gke-nodepool=THE_NODE_POOL_NAME
Selama Anda membuat node pool bernama apigee-data
dan apigee-runtime
,
tidak diperlukan konfigurasi lebih lanjut. Jika Anda ingin menggunakan nama node kustom, lihat
Menggunakan nama kumpulan node kustom.
Memberi label node secara manual
Apigee hybrid saat ini hanya didukung di Anthos 1.1.1. Versi Anthos ini tidak mendukung fitur node pool; oleh karena itu, Anda harus memberi label pada node pekerja secara manual seperti yang dijelaskan di bawah. Lakukan langkah-langkah berikut setelah cluster hibrida Anda aktif dan berjalan:
- Jalankan perintah berikut untuk mendapatkan daftar node pekerja di cluster Anda:
kubectl -n APIGEE_NAMESPACE get nodes
Contoh output:
NAME STATUS ROLES AGE VERSION apigee-092d639a-4hqt Ready <none> 7d v1.14.6-gke.2 apigee-092d639a-ffd0 Ready <none> 7d v1.14.6-gke.2 apigee-109b55fc-5tjf Ready <none> 7d v1.14.6-gke.2 apigee-c2a9203a-8h27 Ready <none> 7d v1.14.6-gke.2 apigee-c70aedae-t366 Ready <none> 7d v1.14.6-gke.2 apigee-d349e89b-hv2b Ready <none> 7d v1.14.6-gke.2
- Beri label pada setiap node untuk membedakan antara node runtime dan node data.
Gunakan perintah ini untuk memberi label pada node:
kubectl label node NODE_NAME KEY=VALUE
Contoh:
$ kubectl label node apigee-092d639a-4hqt apigee.com/apigee-nodepool=apigee-runtime $ kubectl label node apigee-092d639a-ffd0 apigee.com/apigee-nodepool=apigee-runtime $ kubectl label node apigee-109b55fc-5tjf apigee.com/apigee-nodepool=apigee-runtime $ kubectl label node apigee-c2a9203a-8h27 apigee.com/apigee-nodepool=apigee-data $ kubectl label node apigee-c70aedae-t366 apigee.com/apigee-nodepool=apigee-data $ kubectl label node apigee-d349e89b-hv2b apigee.com/apigee-nodepool=apigee-data
Mengganti node pool untuk komponen tertentu di Anthos GKE
Anda juga dapat mengganti konfigurasi node pool
di tingkat komponen individual untuk penginstalan Anthos GKE. Misalnya, konfigurasi
berikut menetapkan
node pool dengan nilai
apigee-custom
ke komponen runtime
:
runtime: nodeSelector: key: apigee.com/apigee-nodepool value: apigee-custom
Anda dapat menentukan kumpulan node kustom di salah satu komponen berikut:
istio
mart
synchronizer
runtime
cassandra
udca
logger