Tentang node pool
Kumpulan node
adalah sekelompok node di dalam sebuah cluster yang semuanya memiliki konfigurasi yang sama.
Biasanya, Anda menentukan kumpulan node terpisah jika Anda memiliki pod dengan persyaratan resource yang berbeda-beda.
Misalnya, pod apigee-cassandra
memerlukan penyimpanan persisten, sedangkan
pod hybrid Apigee lainnya tidak memilikinya.
Topik ini membahas cara mengonfigurasi kumpulan node khusus untuk penginstalan hybrid.
Menggunakan nodeSelectors default
Praktik terbaiknya adalah menyiapkan dua kumpulan node khusus: satu untuk Cassandra
dan satu lagi untuk semua pod runtime lainnya. Menggunakan default
nodeSelector,
penginstal akan menetapkan pod Cassandra ke kumpulan node stateful bernama apigee-data
dan semua
pod lainnya ke kumpulan node stateless bernama apigee-runtime
. Yang harus Anda lakukan adalah
membuat node pool dengan nama ini, dan Apigee Hybrid menangani detail penjadwalan pod
untuk Anda:
Nama kumpulan node default | Deskripsi |
---|---|
apigee-data |
Kumpulan node stateful. |
apigee-runtime |
Kumpulan node stateless. |
Berikut adalah konfigurasi nodeSelector
default. apigeeData
menentukan kumpulan node untuk pod Cassandra. apigeeRuntime
menentukan node
gabungan untuk semua pod lainnya. Anda dapat mengganti setelan default ini
setelan di file penggantian, seperti yang akan 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"
Sekali lagi, untuk memastikan pod Anda dijadwalkan pada node yang benar, yang perlu 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
, pod dasar akan dijadwalkan terlepas dari apakah kumpulan node tersebut atau tidak
didefinisikan dengan nama yang diperlukan. Ini berarti bahwa jika Anda lupa
membuat kumpulan node
atau jika Anda tidak sengaja menamai
kumpulan node selain apigee-runtime
atau
apigee-data
, penginstalan runtime hybrid akan berhasil. Kubernetes
akan menentukan tempat menjalankan pod Anda.
Jika Anda menyetel 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 kumpulan node dengan nama default, Anda dapat membuat kumpulan node dengan
nama kustom Anda dan menentukan
nama-nama tersebut dalam
nodeSelector
bait. Misalnya, konfigurasi berikut menetapkan
Pod Cassandra ke kumpulan bernama my-cassandra-pool
dan semua pod lainnya di dalam kolam
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 node pool
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 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 Google Cloud, dan GKE secara otomatis melabeli setiap {i>node<i} dengan kode berikut:
cloud.google.com/gke-nodepool=THE_NODE_POOL_NAME
Selama Anda membuat kumpulan node bernama apigee-data
dan apigee-runtime
,
tidak diperlukan konfigurasi lebih lanjut. Jika ingin menggunakan nama node kustom, lihat
Menggunakan nama kumpulan node kustom.
Konfigurasi node pool Anthos
Apigee Hybrid saat ini hanya didukung di Anthos 1.1.1. Versi Anthos ini tidak mendukung kumpulan node fitur; Oleh karena itu, Anda harus memberi label secara manual node pekerja seperti yang dijelaskan di bawah ini. Lakukan langkah-langkah berikut setelah hybrid cluster 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
di level komponen individu untuk penginstalan Anthos GKE. Misalnya,
menetapkan konfigurasi
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 berikut:
istio
mart
synchronizer
runtime
cassandra
udca
logger