Mengonfigurasi kumpulan node khusus

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:

  1. 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
    
  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