Tentang node pool
Kumpulan node
adalah sekelompok node di 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 nodeSelectors default
Praktik terbaiknya adalah menyiapkan dua kumpulan node 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 yang bernama apigee-runtime
. Anda hanya perlu membuat node pool dengan nama ini, dan Apigee Hybrid akan menangani detail penjadwalan pod untuk Anda:
Nama kumpulan node default | Deskripsi |
---|---|
apigee-data |
Kumpulan node stateful. |
apigee-runtime |
Kumpulan node stateless. |
Berikut ini adalah konfigurasi nodeSelector
default. Properti apigeeData
menentukan kumpulan node untuk pod Cassandra. apigeeRuntime
menentukan kumpulan node untuk semua pod lainnya. Anda dapat mengganti setelan default ini di file penggantian, seperti yang akan 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 pada node yang benar, yang harus Anda lakukan adalah membuat dua kumpulan node 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
(default), pod yang mendasarinya akan dijadwalkan terlepas dari apakah kumpulan node
ditentukan dengan nama yang diperlukan atau tidak. Artinya, jika Anda lupa membuat node pool, atau jika Anda tidak sengaja menamai kumpulan node selain apigee-runtime
atau apigee-data
, penginstalan hybrid runtime akan berhasil. Kubernetes akan menentukan tempat menjalankan pod.
Jika Anda menyetel requiredForScheduling
ke true
, 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 bisa membuat node pool dengan nama kustom dan menentukan nama tersebut di stanza nodeSelector
. Misalnya, konfigurasi berikut menetapkan
pod Cassandra ke kumpulan bernama my-cassandra-pool
dan semua pod lainnya ke kumpulan
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 kumpulan node untuk komponen tertentu di GKE
Anda juga dapat mengganti konfigurasi kumpulan node
pada level komponen individual. Misalnya, konfigurasi berikut menetapkan
kumpulan node 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 ini:
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 tersebut, dan GKE secara otomatis melabeli setiap node dengan hal berikut:
cloud.google.com/gke-nodepool=THE_NODE_POOL_NAME
Selama Anda membuat kumpulan node bernama apigee-data
dan apigee-runtime
, konfigurasi lebih lanjut tidak diperlukan. Jika Anda ingin menggunakan nama node kustom, lihat
Menggunakan nama kumpulan node kustom.
Konfigurasi kumpulan node Anthos
Apigee Hybrid saat ini hanya didukung di Anthos 1.1.1. Versi Anthos ini tidak mendukung fitur kumpulan node; sehingga, Anda harus memberi label worker node secara manual seperti yang dijelaskan di bawah. Lakukan langkah-langkah berikut setelah cluster hybrid Anda aktif dan berjalan:
- Jalankan perintah berikut untuk mendapatkan daftar worker node di cluster Anda:
kubectl -n apigee 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 kumpulan node untuk komponen tertentu di Anthos GKE
Anda juga dapat mengganti konfigurasi node pool
pada level komponen individual untuk penginstalan Anthos GKE. Misalnya, konfigurasi
berikut menetapkan
kumpulan node dengan nilai
apigee-custom
ke komponen runtime
:
runtime: nodeSelector: key: apigee.com/apigee-nodepool value: apigee-custom
Anda dapat menentukan kumpulan node kustom pada salah satu komponen ini:
istio
mart
synchronizer
runtime
cassandra
udca
logger