Tentang node pool
Node pool
adalah sekelompok 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 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: false
apigeeRuntime:
key: "cloud.google.com/gke-nodepool"
value: "apigee-runtime"
apigeeData:
key: "cloud.google.com/gke-nodepool"
value: "apigee-data"
Sekali lagi, untuk memastikan pod Anda dijadwalkan di node yang benar, Anda hanya perlu
membuat 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"false (default), 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 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, 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-customAnda dapat menentukan kumpulan node kustom pada salah satu komponen berikut:
istiomartsynchronizerruntimecassandraudcalogger
Konfigurasi node pool GKE
Di GKE, node pool harus memiliki nama unik yang Anda berikan saat membuat kumpulan, dan GKE 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 node pool kustom.
Konfigurasi node pool Anthos
Saat ini, Apigee hybrid 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 hybrid Anda aktif dan berjalan:
- Jalankan perintah berikut untuk mendapatkan daftar node pekerja di cluster Anda:
kubectl -n apigee get nodes
Contoh output:
NAME STATUS ROLES AGE VERSION apigee-092d639a-4hqt Ready
7d v1.14.6-gke.2 apigee-092d639a-ffd0 Ready 7d v1.14.6-gke.2 apigee-109b55fc-5tjf Ready 7d v1.14.6-gke.2 apigee-c2a9203a-8h27 Ready 7d v1.14.6-gke.2 apigee-c70aedae-t366 Ready 7d v1.14.6-gke.2 apigee-d349e89b-hv2b Ready 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-customAnda dapat menentukan kumpulan node kustom pada salah satu komponen berikut:
istiomartsynchronizerruntimecassandraudcalogger