日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

多集群報警差異化配置

通過多集群統一報警管理,您可以在Fleet實例中配置或修改報警規則。但由Fleet實例下發的報警規則在各個關聯集群中完全一致。如果在實際使用中,不同集群需要不同的報警規則,您可以通過多集群的報警差異化配置實現該功能。本文介紹如何定義多集群報警差異化,實現不同集群的報警差異化配置。

前提條件

  • 已開啟艦隊管理功能。具體操作,請參見開啟艦隊管理功能

  • 艦隊的Fleet實例已添加2個關聯集群(服務提供者集群、服務消費者集群)。具體操作,請參見添加關聯集群。

  • 在需要統一報警管理的集群上,已安裝報警管理相關組件。具體操作,請參見組件安裝與升級。

背景信息

報警規則的差異化配置和應用差異化配置的原理一致,通過開源KubeVela在Fleet實例上定義差異化配置并進行分發。您可以在Fleet實例中定義統一的報警規則,并針對特定的集群定義報警的差異化配置,例如開啟GPU報警,并設置不同的報警閾值和不同的報警聯系人等,再將統一的報警規則以及差異化后的報警規則分發到目標關聯集群中。

多集群報警差異化配置架構如下圖所示,在Fleet實例中定義差異化配置并下發到ACK Cluster 2中,在ACK Cluster 1中不使用差異化配置。

image

步驟一:創建報警聯系人與聯系人分組

創建報警聯系人與聯系人分組。具體操作,請參見步驟一:創建報警聯系人與聯系人分組。

步驟二:獲取報警聯系人分組ID

獲取報警聯系人分組ID。具體操作,請參見步驟二:獲取報警聯系人分組ID

步驟三:創建報警規則

創建報警規則。具體操作,請參見步驟三:創建報警規則。

步驟四:差異化配置報警規則并進行分發

報警規則的差異化配置通過開源KubeVela,在Fleet實例上定義差異化配置并通過Fleet實例進行分發。具體操作步驟如下。

  1. 執行以下命令,獲取分發的目標集群的Cluster ID。

    kubectl get managedcluster 

    預期輸出:

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

    您也可以通過給關聯集群打標的方式選擇目標集群。具體操作,請參見方式二:通過給關聯集群打標選擇目標集群。

  2. 使用以下內容,定義差異化配置ackalertrule-app-override.yaml。

    如下示例中,ack-cluster-1為CPU集群,ack-cluster-2為GPU集群,該示例可實現對ack-cluster-2即GPU集群的差異化配置,包括開啟GPU報警、修改報警閾值和告警聯系人。

    apiVersion: core.oam.dev/v1alpha1  # 定義分發目標集群,使用Cluster ID標識。
    kind: Policy
    metadata:
      name: cluster-cpu
      namespace: kube-system
    type: topology
    properties:
      clusters: ["<ack-cluster-1>"] # 替換<ack-cluster-1>為ack cluster 1的Cluster ID。
    ---
    apiVersion: core.oam.dev/v1alpha1 # 定義分發目標集群,使用Cluster ID標識。
    kind: Policy
    metadata:
      name: cluster-gpu
      namespace: kube-system
    type: topology
    properties:
      clusters: ["<ack-cluster-2>"] # 替換<ack-cluster-2>為ack cluster 2的Cluster ID。
    ---
    apiVersion: core.oam.dev/v1alpha1 # 定義Override規則。
    kind: Policy
    metadata:
      name: override-gpu
      namespace: kube-system
    type: override
    properties:
      components:
      - name: ackalertrules  # 關聯Application中的Component名稱。
        traits:
        - type: alert-rule   # alert-rule trait用于修改ack alert rule。
          properties:
            groups:           # 差異化配置,結構與ack alert rule的結構一致,可以定義多個Groups和alerts的差異化。
            - name: res-exceptions      # 選擇要修改的alert group。
              rules:
              - contactGroups:           # 修改contactGroups。
                - arms_contact_group_id: "12345"
                  cms_contact_group_name: ack_Default Contact Group
                  id: "1234"
                enable: enable           # 修改enable。
                name: node_cpu_util_high # 選擇要修改的alert name
                thresholds:              # 修改thresholds。
                - key: CMS_ESCALATIONS_CRITICAL_Threshold
                  unit: percent
                  value: "60"
            - name: cluster-error    # 選擇要修改的alert group。
              rules:
              - enable: enable       # 只修改enable。
                name: gpu-xid-error  # 選擇要修改的alert name。
    ---
    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"]  # 應用Override規則,并部署到分發目標cluster-gpu。
    ---
    apiVersion: core.oam.dev/v1beta1   # Kubevela Application定義。
    kind: Application
    metadata:
      name: alertrules
      namespace: kube-system
      annotations:
        app.oam.dev/publishVersion: version1  # 當任何資源改變,需要重新下發Alert時,需要修改publishVersion。
    spec:
      components:
        - name: ackalertrules
          type: ref-objects
          properties:
            objects:
              - resource: ackalertrules    # 引用步驟三創建的報警規則ack alert rules。
                name: default
      workflow:
        ref: deploy-ackalertrules  # 使用Workflow中定義的分發規則下發。
  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: **