Fitur manajemen alert multi-cluster memungkinkan Anda membuat atau memodifikasi aturan alert secara terpusat pada instance Fleet. Namun, aturan alert yang disebarkan identik di semua kluster terkait. Saat aturan alert berbeda diperlukan per kluster, gunakan override aturan alert agar kluster yang berbeda dapat menggunakan konfigurasi alert yang sesuai.
Prasyarat
Fitur Fleet Management telah diaktifkan.
Dua kluster terkait dengan instance Fleet (kluster penyedia layanan dan kluster konsumen layanan).
Informasi Latar Belakang
Prinsip konfigurasi aturan alert terdiferensiasi sejalan dengan konfigurasi aplikasi terdiferensiasi. Ini menggunakan KubeVela open-source untuk mendefinisikan dan menyebarkan kebijakan override pada instance Fleet. Anda dapat mendefinisikan aturan alert terpadu pada instance Fleet dan membuat kebijakan override untuk konfigurasi terdiferensiasi pada kluster tertentu. Contohnya termasuk mengaktifkan alert terkait GPU, menetapkan ambang batas peringatan yang berbeda, dan mengonfigurasi kontak yang berbeda. Aturan alert dengan kebijakan override yang diterapkan kemudian disebarkan ke kluster terkait yang ditargetkan.
Gambar berikut menunjukkan bagaimana konfigurasi alert dibedakan untuk kluster. Kebijakan override dibuat pada instance Fleet. Konfigurasi terdiferensiasi dengan kebijakan override yang diterapkan dikirim ke ACK Cluster 2, sementara ACK Cluster 1 mempertahankan konfigurasi alert aslinya.
Langkah 1: Buat kontak dan grup kontak
Langkah 2: Sebarkan aturan alert terdiferensiasi
Diferensiasi aturan alert diimplementasikan melalui KubeVela, di mana kebijakan override didefinisikan dan disebarluaskan di tingkat Fleet.
Jalankan perintah berikut untuk menanyakan ID kluster tempat Anda ingin menyebarkan aturan alert:
kubectl get managedclusterOutput yang diharapkan:
NAME HUB ACCEPTED MANAGED CLUSTER URLS JOINED AVAILABLE AGE c565e4**** true True True 12d cbaa12**** true True True 12dCatatanAnda juga dapat memilih kluster dengan menentukan label kluster. Untuk informasi lebih lanjut, lihat bagian Metode 2: Tentukan label dalam pemilih kluster dari topik "Pilih kluster untuk mendistribusikan aplikasi".
Buat file bernama ackalertrule-app-override.yaml berdasarkan konten berikut untuk mendefinisikan konfigurasi yang akan dioverride:
Dalam contoh ini,
ack-cluster-1adalah kluster yang dipercepat CPU danack-cluster-2adalah kluster yang dipercepat GPU. Contoh ini menunjukkan cara mengoverride aturan alertack-cluster-2. Kebijakan override mengaktifkan alert GPU, memodifikasi ambang batas alert, dan mengubah kontak.apiVersion: core.oam.dev/v1alpha1 # Tentukan kluster tempat aturan alert disebarkan berdasarkan ID kluster. kind: Policy metadata: name: cluster-cpu namespace: kube-system type: topology properties: clusters: ["<ack-cluster-1>"] # Ganti <ack-cluster-1> dengan ID kluster ack cluster 1. --- apiVersion: core.oam.dev/v1alpha1 # Tentukan kluster tempat aturan alert disebarkan berdasarkan ID kluster. kind: Policy metadata: name: cluster-gpu namespace: kube-system type: topology properties: clusters: ["<ack-cluster-2>"] # Ganti <ack-cluster-2> dengan ID kluster ack cluster 2. --- apiVersion: core.oam.dev/v1alpha1 # Definisikan kebijakan override. kind: Policy metadata: name: override-gpu namespace: kube-system type: override properties: components: - name: ackalertrules # Nama komponen dalam aplikasi terkait. traits: - type: alert-rule # trait alert-rule digunakan untuk memodifikasi aturan alert. properties: groups: # Konfigurasi override, yang strukturnya sama dengan aturan alert. Anda dapat mendefinisikan beberapa grup dan aturan alert untuk dioverride. - name: res-exceptions # Tentukan nama grup alert yang akan dioverride. rules: - contactGroups: # Override grup kontak. - arms_contact_group_id: "12345" cms_contact_group_name: ack_Default Contact Group id: "1234" enable: enable # Ubah nilai menjadi enable. name: node_cpu_util_high # Tentukan nama aturan alert yang akan dioverride. thresholds: # Modifikasi ambang batas. - key: CMS_ESCALATIONS_CRITICAL_Threshold unit: percent value: "60" - name: cluster-error # Tentukan nama grup alert untuk dioverride. rules: - enable: enable # Ubah nilai menjadi enable. name: gpu-xid-error # Tentukan nama aturan alert untuk dioverride. --- apiVersion: core.oam.dev/v1alpha1 # Definisikan alur kerja KubeVela. kind: Workflow metadata: name: deploy-ackalertrules namespace: kube-system steps: - type: deploy name: deploy-cpu properties: policies: ["cluster-cpu"] # Sebarkan aturan alert ke cluster-cpu. - type: deploy name: deploy-gpu properties: policies: ["override-gpu", "cluster-gpu"] # Terapkan kebijakan override untuk mengoverride aturan alert cluster-gpu. --- apiVersion: core.oam.dev/v1beta1 # Definisikan aplikasi KubeVela. kind: Application metadata: name: alertrules namespace: kube-system annotations: app.oam.dev/publishVersion: version1 # Resebarkan aturan alert saat sumber daya diperbarui. Nilai publishVersion harus dimodifikasi. spec: components: - name: ackalertrules type: ref-objects properties: objects: - resource: ackalertrules # Referensi aturan alert yang dibuat di Langkah 3. name: default workflow: ref: deploy-ackalertrules # Gunakan aturan propagasi yang didefinisikan dalam alur kerja untuk menyebarkan aturan alert.Jalankan perintah berikut untuk menerapkan kebijakan override dan mengoverride aturan alert:
kubectl apply -f ackalertrule-app-override.yamlJalankan perintah berikut untuk melihat kemajuan penyebaran aturan alert:
kubectl amc appstatus alertrules -n kube-system --tree --detailOutput yang diharapkan:
CLUSTER NAMESPACE RESOURCE STATUS APPLY_TIME DETAIL c565e4**** (ack-cluster-1)─── kube-system─── AckAlertRule/default updated 2022-**-** **:**:** Age: ** cbaa12**** (ack-cluster-2)─── kube-system─── AckAlertRule/default updated 2022-**-** **:**:** Age: **