All Products
Search
Document Center

Container Service for Kubernetes:Konfigurasi multi-cluster alert yang berbeda

Last Updated:Jul 02, 2025

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

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

  1. Buat kontak dan grup kontak.

  2. Dapatkan ID grup kontak.

  3. Buat aturan alert.

Langkah 2: Sebarkan aturan alert terdiferensiasi

Diferensiasi aturan alert diimplementasikan melalui KubeVela, di mana kebijakan override didefinisikan dan disebarluaskan di tingkat Fleet.

  1. Jalankan perintah berikut untuk menanyakan ID kluster tempat Anda ingin menyebarkan aturan alert:

    kubectl get managedcluster 

    Output yang diharapkan:

    NAME            HUB ACCEPTED   MANAGED CLUSTER URLS   JOINED   AVAILABLE   AGE
    c565e4****      true                                  True     True        12d
    cbaa12****      true                                  True     True        12d
    Catatan

    Anda 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".

  2. Buat file bernama ackalertrule-app-override.yaml berdasarkan konten berikut untuk mendefinisikan konfigurasi yang akan dioverride:

    Dalam contoh ini, ack-cluster-1 adalah kluster yang dipercepat CPU dan ack-cluster-2 adalah kluster yang dipercepat GPU. Contoh ini menunjukkan cara mengoverride aturan alert ack-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.
  3. Jalankan perintah berikut untuk menerapkan kebijakan override dan mengoverride aturan alert:

    kubectl apply -f ackalertrule-app-override.yaml
  4. Jalankan perintah berikut untuk melihat kemajuan penyebaran aturan alert:

    kubectl amc appstatus alertrules -n kube-system --tree --detail

    Output 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: **