Mengonfigurasi node pool khusus

Tentang node pool

Node pool adalah sekelompok node dalam cluster yang semuanya memiliki konfigurasi yang sama. Biasanya, Anda menentukan kumpulan node terpisah jika 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: 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 disetel ke false, pod pokok 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 (default), 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-custom

Anda dapat menentukan kumpulan node kustom pada salah satu komponen berikut:

  • istio
  • mart
  • synchronizer
  • runtime
  • cassandra
  • udca
  • logger

Konfigurasi node pool GKE dan Google Distributed Cloud

Di platform GKE dan Google Distributed Cloud (GDC), node pool harus memiliki nama unik yang Anda berikan saat membuat pool, dan GKE/GDC 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 kumpulan node kustom.

Konfigurasi node pool di platform Kubernetes lainnya.

Lihat dokumentasi platform Kubernetes Anda untuk mengetahui informasi tentang pemberian label dan pengelolaan kumpulan node.

Meskipun node pool secara otomatis memberi label pada node pekerja secara default, Anda dapat secara opsional memberi label pada node pekerja secara manual dengan langkah-langkah berikut:

  1. Jalankan perintah berikut untuk mendapatkan daftar node pekerja di cluster Anda:
    kubectl -n APIGEE_NAMESPACE get nodes

    Jika Anda menggunakan label node pool kustom, pastikan setiap pasangan nilai kunci unik. Contoh:

    nodeSelector:
      requiredForScheduling: true
      apigeeRuntime:
        key: "pool1-key"
        value: "pool1-label"
      apigeeData:
        key: "pool2-key"
        value: "pool2-label"
    

    Mengganti node pool untuk komponen tertentu

    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: apigee.com/apigee-nodepool
        value: apigee-custom

    Anda dapat menentukan kumpulan node kustom pada salah satu komponen berikut:

    • apigeeingressgateway
    • cassandra
    • logger
    • mart
    • metrics
    • runtime
    • synchronizer
    • udca