Ringkasan pedoman
Guardrails Apigee hybrid adalah mekanisme yang akan memberi tahu pelanggan tentang potensi masalah sebelum masalah tersebut dapat memengaruhi instance Hybrid. Dengan kata lain, Hybrid Guardrails akan menghentikan perintah jika perintah tersebut berisiko mengganggu stabilitas instance Hybrid. Baik karena konfigurasi yang salah maupun resource yang tidak memadai, Hybrid Guardrails akan mencegah modifikasi apa pun pada instance Hybrid hingga risiko masalah tersebut dihilangkan. Hal ini menghemat waktu pelanggan dalam menangani masalah yang biasanya memerlukan waktu berjam-jam atau berhari-hari untuk diselesaikan.
Menggunakan Guardrails dengan Apigee hybrid
Untuk menggunakan Hybrid Guardrails, jalankan perintah penginstalan Hybrid Helm atau upgrade Hybrid Helm yang sama seperti yang didokumentasikan dalam petunjuk penginstalan Hybrid. Tidak diperlukan perintah tambahan untuk menjalankan Guardrails.
Saat Anda mengeluarkan perintah Helm untuk Apigee hybrid, dua hal akan terjadi sebelum perintah helm menerapkan konfigurasi ke instance hybrid Anda:
- Helm membuat pod Guardrails sementara dengan konfigurasi yang Anda terapkan. Jika pod Guardrails aktif dalam status responsif, pod akan menguji instance hybrid Anda terhadap konfigurasi yang diterapkan. Jika pengujian lulus, pod Guardrails akan dihentikan dan konfigurasi Anda akan diterapkan ke instance Apigee hybrid.
- Jika pengujian gagal, pod Guardrails akan dibiarkan dalam status tidak responsif untuk memungkinkan diagnosis pod. Perintah helm akan menampilkan pesan error yang melaporkan bahwa pod Guardrails gagal.
Contoh berikut menunjukkan penggunaan Guardrails untuk menguji konektivitas jaringan dari instance Hybrid ke bidang kontrol Apigee sebagai bagian dari penginstalan komponen apigee-datastore. Anda dapat menggunakan urutan yang sama untuk semua komponen hybrid Apigee:
Instal komponen apigee-datastore menggunakan perintah berikut:
helm upgrade datastore apigee-datastore/ \ --install \ --namespace apigee \ --atomic \ -f overrides.yaml
Jika terjadi error langsung, perintah Helm juga akan menampilkan pesan error yang menunjukkan bahwa pemeriksaan Guardrails gagal seperti dalam contoh berikut:
helm upgrade datastore apigee-datastore/ \
--install \
--namespace apigee \
-f my-overrides.yaml
. . .
Error: UPGRADE FAILED: pre-upgrade hooks failed: 1 error occurred:
* pod apigee-hybrid-helm-guardrail-datastore failedUntuk melihat pemeriksaan yang gagal dan alasannya, periksa log pod Guardrails seperti contoh berikut:
kubectl logs -n apigee apigee-hybrid-helm-guardrail-datastore
{"level":"INFO","timestamp":"2024-02-01T20:28:55.934Z","msg":"logging enabled","log-level":"INFO"}
{"level":"INFO","timestamp":"2024-02-01T20:28:55.935Z","msg":"","checkpoint":"upgrade","component":"apigee-datastore"}
{"level":"INFO","timestamp":"2024-02-01T20:28:55.935Z","msg":"initiating pre-install checks"}
{"level":"INFO","timestamp":"2024-02-01T20:28:55.935Z","msg":"check validation starting...","check":"controlplane_connectivity"}
{"level":"ERROR","timestamp":"2024-02-01T20:28:55.961Z","msg":"connectivity test failed","check":"controlplane_connectivity","host":"https://apigee.googleapis.com","error":"Get \"https://apigee.googleapis.com\": dial tcp: lookup apigee.googleapis.com on 10.92.0.10:53: no such host"}Dalam contoh ini, pesan kegagalan pengujian yang sebenarnya adalah bagian ini:
{"level":"ERROR","timestamp":"2024-02-01T20:28:55.961Z","msg":"connectivity test failed","check":"controlplane_connectivity","host":"https://apigee.googleapis.com","error":"Get \"https://apigee.googleapis.com\": dial tcp: lookup apigee.googleapis.com on 10.92.0.10:53: no such host"}Pod Guardrails disediakan secara otomatis saat Anda mengeluarkan perintah helm. Jika Uji Konektivitas Bidang Kontrol Apigee lulus, pod Guardrails akan dihentikan pada akhir eksekusi.
Periksa status pod dengan cepat setelah mengeluarkan perintah helm install. Contoh output berikut menunjukkan pod Guardrail dalam status sehat, yang berarti uji konektivitas bidang kontrol lulus:
kubectl get pods -n apigee -w
NAME READY STATUS RESTARTS AGE
apigee-hybrid-helm-guardrail-datastore 0/1 Pending 0 0s
apigee-hybrid-helm-guardrail-datastore 0/1 Pending 0 1s
apigee-hybrid-helm-guardrail-datastore 0/1 ContainerCreating 0 1s
apigee-hybrid-helm-guardrail-datastore 0/1 Completed 0 2s
apigee-hybrid-helm-guardrail-datastore 0/1 Completed 0 3s
apigee-hybrid-helm-guardrail-datastore 0/1 Terminating 0 3s
apigee-hybrid-helm-guardrail-datastore 0/1 Terminating 0 3sJika uji konektivitas bidang kontrol Apigee gagal, pod Guardrails akan tetap dalam status Error seperti contoh output berikut:
kubectl get pods -n apigee -w
NAME READY STATUS RESTARTS AGE
apigee-hybrid-helm-guardrail-datastore 0/1 Pending 0 0s
apigee-hybrid-helm-guardrail-datastore 0/1 Pending 0 0s
apigee-hybrid-helm-guardrail-datastore 0/1 ContainerCreating 0 0s
apigee-hybrid-helm-guardrail-datastore 0/1 Error 0 4s
apigee-hybrid-helm-guardrail-datastore 0/1 Error 0 5s
apigee-hybrid-helm-guardrail-datastore 0/1 Error 0 6sMenonaktifkan sementara Guardrails
Jika Anda perlu menonaktifkan pemeriksaan Guardrails, tambahkan flag --no-hooks ke perintah Helm. Contoh berikut menunjukkan flag --no-hooks dalam perintah Helm:
helm upgrade datastore apigee-datastore/ \ --install \ --namespace apigee \ -f overrides.yaml \ --no-hooks
Pemeriksaan Guardrails
Tabel berikut mencantumkan detail untuk beberapa pemeriksaan Guardrails yang dikirimkan sebagai bagian dari Apigee hybrid versi 1.15.| Nama | Checkpoint | Deskripsi |
|---|---|---|
cassandra_backup_enabled |
upgrade |
Diperkenalkan di versi: 1.14.0
Tingkat keparahan: Pemeriksaan yang mengharuskan pencadangan diaktifkan sebelum upgrade. Pencadangan diperlukan sebelum mengupgrade untuk mendukung pemulihan ke versi sebelumnya, jika diperlukan. Lihat Pencadangan dan pemulihan Cassandra untuk mengetahui detail tentang opsi pencadangan yang tersedia. |
cassandra_recent_backup_csi |
upgrade |
Diperkenalkan di versi: 1.14.0
Tingkat keparahan: Pemeriksaan yang memerlukan cadangan dalam 24 jam terakhir sebelum upgrade jika pencadangan CSI diaktifkan. Tindakan ini akan meminimalkan potensi kehilangan data jika pemulihan ke versi sebelumnya diperlukan. Lihat Pencadangan CSI untuk mengetahui detail tentang pencadangan dan pemulihan CSI. |
Mengonfigurasi Guardrails di file penggantian
Mulai Apigee hybrid versi 1.12, Guardrails dikonfigurasi secara default di setiap diagram. Anda dapat mengganti URL image, tag, dan kebijakan pull image di file overrides.
Misalnya, URL, tag, dan kebijakan pull image Guardrails di bawah akan ditambahkan ke file penggantian Anda:
# Apigee Ingressgateway
ingressGateway:
image:
pullPolicy: Always
## NOTE: The Guardrails config is below. The ingressgateway config above is for position reference only and is NOT required for Guardrails config.
# Apigee Guardrails
guardrails:
image:
url: "gcr.io/ng-hybrid/guardrails/apigee-watcher"
tag: "1.15.9"
pullPolicy: Always
Menggunakan toleransi Kubernetes dengan Guardrails
Anda juga dapat menambahkan toleransi ke Guardrails di file overrides. Jika tidak ada toleransi yang ditentukan dalam konfigurasi overrides Guardrails, Guardrails akan menggunakan toleransi yang ditentukan secara global.
Misalnya, untuk menyertakan toleransi secara khusus di bagian Guardrails pada file overrides, Anda dapat menambahkan stanza yang mirip dengan berikut ini:
# Apigee Guardrails
guardrails:
image:
url: "gcr.io/ng-hybrid/guardrails/apigee-watcher"
tag: "1.15.9"
pullPolicy: Always
tolerations:
- key: "say"
operator: "Equal"
value: "taunt"
effect: "NoSchedule"