すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:マルチクラスタアラート構成のオーバーライド

最終更新日:May 13, 2025

マルチクラスタ アラート管理機能を使用すると、Fleet インスタンスでアラート ルールを一元的に作成または変更できます。ただし、伝搬されるアラート ルールは、関連付けられているすべてのクラスタで同一です。クラスタごとに異なるアラート ルールが必要な場合は、アラート ルールをオーバーライドして、異なるクラスタで異なるアラート構成を使用できるようにします。

前提条件

背景情報

アラート ルールの差別化構成の原則は、アプリケーションの差別化構成と一致しています。オープンソースの KubeVela を使用して、Fleet インスタンスでオーバーライド ポリシーを定義および伝搬します。 Fleet インスタンスで統一されたアラート ルールを定義し、特定のクラスタで差別化構成のオーバーライド ポリシーを作成できます。たとえば、GPU 関連のアラートの有効化、異なるアラートしきい値の設定、異なる連絡先の構成などです。オーバーライド ポリシーが適用されたアラート ルールは、ターゲットの関連付けられたクラスタに伝搬されます。

次の図は、クラスタのアラート構成がどのように差別化されるかを示しています。オーバーライド ポリシーは Fleet インスタンスで作成されます。オーバーライド ポリシーが適用された差別化構成は ACK クラスタ 2 に配信されますが、ACK クラスタ 1 は元のアラート構成を保持します。

手順 1:連絡先と連絡先グループを作成する

  1. 連絡先と連絡先グループを作成する

  2. 連絡先グループ ID を取得する

  3. アラート ルールを作成する

手順 2:差別化されたアラート ルールを伝搬する

アラート ルールの差別化は KubeVela を介して実装されます。オーバーライド ポリシーは Fleet レベルで定義および伝搬されます。

  1. アラート ルールを伝搬するクラスタの ID をクエリするには、次のコマンドを実行します。

    kubectl get managedcluster 

    予想される出力:

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

    クラスタ ラベルを指定することで、クラスタを選択することもできます。詳細については、「アプリケーションを配布するクラスタを選択する」トピックの方法 2:クラスタ セレクタでラベルを指定するセクションをご参照ください。

  2. 次のコンテンツに基づいて ackalertrule-app-override.yaml という名前のファイルを作成し、オーバーライドする構成を定義します。

    この例では、ack-cluster-1 は CPU アクセラレーテッド クラスタ、ack-cluster-2 は GPU アクセラレーテッド クラスタです。この例では、ack-cluster-2 のアラート ルールをオーバーライドする方法を示します。オーバーライド ポリシーは、GPU アラートを有効にし、アラートしきい値を変更し、連絡先を変更します。

    apiVersion: core.oam.dev/v1alpha1  # クラスタ ID でアラート ルールが伝搬されるクラスタを指定します。
    kind: Policy
    metadata:
      name: cluster-cpu
      namespace: kube-system
    type: topology
    properties:
      clusters: ["<ack-cluster-1>"] # <ack-cluster-1> を ack cluster 1 のクラスタ ID に置き換えます。
    ---
    apiVersion: core.oam.dev/v1alpha1 # クラスタ ID でアラート ルールが伝搬されるクラスタを指定します。
    kind: Policy
    metadata:
      name: cluster-gpu
      namespace: kube-system
    type: topology
    properties:
      clusters: ["<ack-cluster-2>"] # <ack-cluster-2> を ack cluster 2 のクラスタ ID に置き換えます。
    ---
    apiVersion: core.oam.dev/v1alpha1 # オーバーライド ポリシーを定義します。
    kind: Policy
    metadata:
      name: override-gpu
      namespace: kube-system
    type: override
    properties:
      components:
      - name: ackalertrules  # 関連付けられたアプリケーションのコンポーネント名。
        traits:
        - type: alert-rule   # alert-rule トレイトは、アラート ルールを変更するために使用されます。
          properties:
            groups:           # オーバーライド構成。構造はアラート ルールと同じです。オーバーライドする複数のグループとアラート ルールを定義できます。
            - name: res-exceptions      # オーバーライドするアラート グループの名前を指定します。
              rules:
              - contactGroups:           # 連絡先グループをオーバーライドします。
                - arms_contact_group_id: "12345"
                  cms_contact_group_name: ack_Default Contact Group
                  id: "1234"
                enable: enable           # 値を enable に変更します。
                name: node_cpu_util_high # オーバーライドするアラート ルールの名前を指定します。
                thresholds:              # しきい値を変更します。
                - key: CMS_ESCALATIONS_CRITICAL_Threshold
                  unit: percent
                  value: "60"
            - name: cluster-error    # オーバーライドするアラート グループの名前を指定します。
              rules:
              - enable: enable       # 値を enable に変更します。
                name: gpu-xid-error  # オーバーライドするアラート ルールの名前を指定します。
    ---
    apiVersion: core.oam.dev/v1alpha1  # KubeVela ワークフローを定義します。
    kind: Workflow
    metadata:
      name: deploy-ackalertrules
      namespace: kube-system
    steps:
      - type: deploy
        name: deploy-cpu
        properties:
          policies: ["cluster-cpu"]   # アラート ルールを cluster-cpu にデプロイします。
      - type: deploy
        name: deploy-gpu
        properties:
          policies: ["override-gpu", "cluster-gpu"]  # オーバーライド ポリシーを適用して、cluster-gpu のアラート ルールをオーバーライドします。
    ---
    apiVersion: core.oam.dev/v1beta1   # KubeVela アプリケーションを定義します。
    kind: Application
    metadata:
      name: alertrules
      namespace: kube-system
      annotations:
        app.oam.dev/publishVersion: version1  # リソースが更新されたときにアラート ルールを再伝搬します。 publishVersion の値を変更する必要があります。
    spec:
      components:
        - name: ackalertrules
          type: ref-objects
          properties:
            objects:
              - resource: ackalertrules    # 手順 3 で作成したアラート ルールを参照します。
                name: default
      workflow:
        ref: deploy-ackalertrules  # ワークフローで定義された伝搬ルールを使用して、アラート ルールを伝搬します。
  3. 次のコマンドを実行して、オーバーライド ポリシーを適用し、アラート ルールをオーバーライドします。

    kubectl apply -f ackalertrule-app-override.yaml
  4. 次のコマンドを実行して、アラート ルールの伝搬の進行状況を表示します。

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

    予想される出力:

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