Mengelola komponen bidang runtime

Topik ini menjelaskan cara mengonfigurasi dan mengelola komponen bidang runtime Apigee Hybrid. Untuk mengetahui daftar komponen bidang runtime yang dapat Anda konfigurasi, lihat Ringkasan konfigurasi layanan runtime.

Tentang file penggantian

Saat pertama kali menginstal runtime hybrid ke dalam cluster, Anda harus membuat file penggantian konfigurasi. File ini memungkinkan Anda mengganti nilai konfigurasi default sesuai kebutuhan, mengonfigurasi lingkungan, mereferensikan sertifikat TLS dan kunci akun layanan, menetapkan kumpulan node Kubernetes ke komponen hybrid tertentu, dan sebagainya.

Langkah-langkah penginstalan hybrid menjelaskan proses pembuatan file penggantian dan penerapan konfigurasi ke cluster. Jika Anda ingin mengubah konfigurasi nanti, ubah file penggantian yang Anda buat dan terapkan kembali.

Melakukan perubahan konfigurasi

Untuk membuat perubahan konfigurasi pada komponen bidang runtime hybrid, edit file penggantian dan gunakan Helm untuk mengupgrade diagram yang sesuai dengan komponen. Diagram berikut menunjukkan diagram mana yang sesuai dengan komponen hybrid Apigee:

CakupanKomponenDiagram Helm
Operator Apigee Operator Apigee apigee-operator
Penyimpanan Cassandra apigee-datastore
Penyimpanan dalam memori Redis apigee-redis
Pelaporan Logger
Metrics
apigee-telemetry
Ingress Gateway masuk Apigee apigee-ingress-manager
Organisasi Apigee Connect Agent
MART
UDCA
Watcher
apigee-org
Lingkungan Runtime
Synchronizer
apigee-env
Grup lingkungan virtualhost apigee-virtualhost

Misalnya, untuk mengubah jumlah replika di Message processor, ikuti langkah-langkah berikut:

  1. Buka file OVERRIDES.yaml Anda. Pastikan untuk menggunakan file penggantian yang sama yang digunakan untuk menginstal runtime hybrid ke dalam cluster.
  2. Temukan elemen runtime dalam file. Contoh:
    runtime:
      nodeSelector:
        key: cloud.google.com/gke-nodepool
        value: apigee-runtime
      replicaCountMin: 1
      replicaCountMax: 2
    ...
  3. Ubah properti jumlah replika sesuai kebutuhan. Contoh:
    runtime:
      nodeSelector:
        key: cloud.google.com/gke-nodepool
        value: apigee-runtime
      replicaCountMin: 2
      replicaCountMax: 20
    ...
  4. Upgrade lingkungan.
  5. Anda harus menginstal satu lingkungan dalam satu waktu. Tentukan lingkungan dengan --set env=ENV_NAME.

    Uji coba:

    helm upgrade ENV_RELEASE_NAME apigee-env/ \
    --install \
    --namespace APIGEE_NAMESPACE \
    --set env=ENV_NAME \
    -f OVERRIDES_FILE \
    --dry-run=server
    
    • ENV_RELEASE_NAME adalah nama yang Anda gunakan sebelumnya untuk menginstal diagram apigee-env. Di hybrid v1.10, biasanya apigee-env-ENV_NAME. Di Hybrid v1.11 dan yang lebih baru, biasanya ENV_NAME.
    • ENV_NAME adalah nama lingkungan yang Anda upgrade.
    • OVERRIDES_FILE adalah file penggantian baru Anda untuk v.1.13.4
  6. Mengupgrade diagram:
  7. helm upgrade ENV_RELEASE_NAME apigee-env/ \
    --install \
    --namespace APIGEE_NAMESPACE \
    --set env=ENV_NAME \
    -f OVERRIDES_FILE
    
  8. Verifikasi bahwa aplikasi sudah aktif dan berjalan dengan memeriksa status env masing-masing:
  9. kubectl -n APIGEE_NAMESPACE get apigeeenv
    
    NAME                          STATE       AGE   GATEWAYTYPE
    apigee-org1-dev-xxx            running     2d

Properti konfigurasi mana yang dapat Anda ubah?

Anda dapat menemukan daftar lengkap properti yang dapat dikonfigurasi di Referensi properti konfigurasi. Referensi hanya mencantumkan properti yang dapat Anda ubah; jika Anda mencoba mengubah properti yang tidak ada dalam referensi, perubahan akan diabaikan.

Cara menggunakan referensi konfigurasi

Referensi properti konfigurasi menggunakan notasi titik untuk mendeskripsikan elemen konfigurasi, dengan item pertama adalah nama elemen tingkat teratas yang diikuti dengan properti dan properti turunan. Contoh:

ao.image.pullPolicy

Dalam file penggantian, properti diformat dalam YAML yang tepat. Untuk contoh di atas, elemen ao tingkat teratas diberi indentasi kiri dan properti sub-elemen diberi indentasi di bawahnya. Selain itu, YAML memerlukan titik dua di akhir setiap elemen dan sub-elemen.

Misalnya, untuk menyetel properti ao.image.pullPolicy ke Always, temukan stanza YAML ini dalam file penggantian dan tetapkan seperti berikut:

ao:
  image:
    pullPolicy: Always

Sebagai contoh lain, properti cassandra.auth.admin.password (seperti yang tercantum dalam Referensi properti konfigurasi) digunakan untuk menetapkan sandi admin Cassandra. Untuk mengubahnya, temukan YAML berikut dalam file penggantian dan tetapkan seperti berikut:

cassandra:
  auth:
    admin:
      password: abc123

Ingat, Referensi properti konfigurasi menjelaskan semua properti yang dapat Anda tetapkan pada komponen bidang runtime hybrid. Ikuti pola yang dijelaskan di atas untuk mengubah elemen ini dalam file penggantian sebelum menerapkan perubahan ke cluster Anda.

Menggunakan file penggantian contoh yang telah ditentukan sebelumnya

Saat Anda pertama kali menginstal runtime hybrid, Apigee merekomendasikan agar Anda menggunakan salah satu file penggantian contoh yang telah dikonfigurasi sebelumnya. Contoh ini memberikan serangkaian lengkap properti konfigurasi untuk skenario penginstalan tertentu, seperti untuk menyiapkan penginstalan produksi atau pengujian. Yang perlu Anda lakukan adalah memberikan nilai yang sesuai untuk properti dan menerapkan file penggantian ke cluster Anda. Lihat Langkah 6: Buat penggantian untuk mengetahui informasi selengkapnya.

Tentang default konfigurasi

Apigee mempertahankan konfigurasi komponen defaultnya dalam file HYBRID_ROOT_DIR/config/values.yaml. File penggantian Anda mengikuti struktur YAML yang sama dengan values.yaml.

File penggantian biasanya hanya menyertakan subset properti konfigurasi yang ditemukan di values.yaml. Ingat, tidak semua properti dapat diedit. Saat Anda menerapkan konfigurasi ke cluster, penggantian Anda akan digabungkan dengan setelan default untuk membuat konfigurasi cluster Kubernetes yang lengkap. Lihat juga Menguji konfigurasi yang digabungkan.

Kode berikut menunjukkan konfigurasi default untuk komponen mart seperti yang ditemukan di values.yaml. Perhatikan bahwa beberapa nilai memiliki default, sementara yang lain seperti sslCertPath dan sslKeyPath tidak. Anda harus memberikan nilai yang hilang ini dalam file penggantian, seperti yang dijelaskan dalam langkah penginstalan. Jika Anda ingin mengubah salah satu nilai default, pastikan nilai tersebut dapat diedit dengan memeriksanya di Referensi properti konfigurasi.

...
mart:
  replicaCountMin: 2
  replicaCountMax: 4
  targetCPUUtilizationPercentage: 75
  terminationGracePeriodSeconds: 30
  sslCertPath:
  sslKeyPath:
  hostAlias:
  nodeSelector:
    key:
    value:
  revision: blue
  image:
    url: "gcr.io/apigee-release/hybrid/apigee-mart-server"
    tag: "1.13.4"
    pullPolicy: IfNotPresent
  resources:
    requests:
      cpu: 500m
      memory: 512Mi
  initCheckCF:
    resources:
      requests:
        cpu: 10m
  livenessProbe:
    timeoutSeconds: 1
    failureThreshold: 12
    periodSeconds: 5
    initialDelaySeconds: 15
  readinessProbe:
    timeoutSeconds: 1
    successThreshold: 1
    failureThreshold: 2
    periodSeconds: 5
    initialDelaySeconds: 15
  metricsURL: "/v1/server/metrics"
  cwcAppend: |
...

Jika Anda ingin mengubah default komponen dan komponen tersebut belum ada di file penggantian, Anda dapat menyalin YAML-nya dari values.yaml ke file penggantian dan mengubahnya di sana.

Anotasi kustom

Anotasi adalah peta nilai/kunci yang digunakan untuk melampirkan metadata ke pod Kubernetes hybrid Apigee. Anda dapat membuat anotasi kustom untuk properti berikut yang tercantum dalam Referensi properti konfigurasi:

Untuk menambahkan anotasi kustom, tambahkan stanza ke file OVERRIDES.yaml untuk komponen masing-masing.

Contoh berikut menggambarkan cara anotasi dapat ditentukan dalam pod runtime:

runtime:
  annotations:
    businessunit: "bu1"

Menguji konfigurasi gabungan

Anda dapat menggunakan tanda --dry-run untuk menguji file konfigurasi yang digabungkan tanpa benar-benar menerapkannya ke cluster Anda. Opsi ini berguna untuk men-debug masalah penginstalan karena opsi ini menunjukkan dengan tepat apa yang akan diterapkan ke cluster. Sebaiknya juga uji konfigurasi dan simpan di kontrol sumber sehingga Anda memiliki referensi resource yang diinstal dan dikonfigurasi di cluster.

kubectl apply -k  apigee-operator/etc/crds/default/
      
helm upgrade operator apigee-operator/ \
  --install \
  --namespace APIGEE_NAMESPACE \
  --atomic \
  -f OVERRIDES_FILE.yaml \
  --dry-run=server
helm upgrade ingress-manager apigee-ingress-manager/ /
  --install \
  --namespace APIGEE_NAMESPACE \
  --atomic \
  -f OVERRIDES_FILE.yaml \
  --dry-run=server

Buat beberapa file penggantian sesuai kebutuhan

Anda dapat membuat file penggantian sebanyak yang Anda inginkan, dengan masing-masing file memenuhi persyaratan tertentu. Misalnya, Anda mungkin memiliki file penggantian yang menyesuaikan cluster untuk produksi, dan file lainnya untuk membuat cluster pengujian. Kemudian, Anda dapat mengelola file ini di sistem kontrol sumber Anda.

Contoh:

helm upgrade test-1-env apigee-env/ \
  --namespace APIGEE_NAMESPACE \
  --atomic \
  --set env=test-1-env \
  -f test-1-env-overrides.yaml

Menghapus komponen bidang runtime khusus hybrid

Komponen bidang runtime mencakup synchronizer, mart, runtime, cassandra, dan udca.

Untuk menghapus komponen bidang runtime khusus hybrid dari cluster Anda, gunakan perintah helm delete. Pastikan untuk menentukan file penggantian yang sama dengan yang Anda gunakan untuk menginstal komponen runtime.

Contoh:

Dengan Helm, Anda harus menghapus setiap komponen satu per satu. Misalnya, untuk menghapus komponen cassandra, gunakan perintah berikut:

helm -n APIGEE_NAMESPACE delete datastore

Pada contoh di atas, komponen datastore diinstal dengan nama "datastore". Jika Anda menginstalnya dengan nama yang berbeda, Anda harus memberikan nama tersebut untuk menghapus komponen. Misalnya, jika Anda menginstal diagram apigee-datastore dengan helm install my-cassandra-storage apigee-datastore/. Anda dapat menghapusnya dengan perintah berikut:

helm delete -n apigee my-cassandra-storage

Untuk membuat ulang komponen tertentu (grup lingkungan dalam contoh ini):

helm upgrade ENV_GROUP apigee-virtualhost/ \
  --install \
  --namespace APIGEE_NAMESPACE \
  --atomic \
  --set envgroup=ENV_GROUP_NAME \
  -f OVERRIDES_FILE.yaml