华为云UCS-UCS双集群可靠性提升建议:通过kubectl命令恢复集群级/AZ级故障(可选)

时间:2025-03-18 14:32:57

通过kubectl命令恢复集群级/AZ级故障(可选)

集群关键系统组件出现故障或者集群升级策略不当、升级配置有误、操作人员执行有误等人为因素导致集群整体不可用或者出现AZ站点级别的故障时,U CS 提供手动切流的能力。通过创建Remedy对象将MultiClusterIngress流量从故障集群上摘除。

通过Kubectl命令恢复故障步骤如下:

  1. 使用kubectl连接集群联邦,详细操作请参见通过kubectl连接集群联邦
  2. 集群故障后,在执行机上创建并编辑remedy.yaml文件,文件内容如下所示,参数定义请参见表1

    vi remedy.yaml

    示例YAML定义了一个Remedy对象,触发条件为空,表示无条件触发,集群联邦控制器会立即将ucs01上的流量摘除。在集群故障恢复后,删除该Remedy对象,ucs01上的流量会自动恢复,由此保证单集群的故障不会影响服务的可用性。
    apiVersion: remedy.karmada.io/v1alpha1
    kind: Remedy
    metadata:
      name: foo
    spec:
      clusterAffinity:
        clusterNames:
          - ucs01
      actions:
      - TrafficControl
    表1 Remedy参数说明

    参数

    描述

    spec.clusterAffinity.clusterNames

    策略关注的集群名列表。仅在该列表中的集群会执行指定动作,为空时不会执行任何动作。

    spec.decisionMatches

    触发条件列表。当上述集群列表中指定的集群满足任一触发条件时,即会执行指定动作。当列表为空时,表示无条件触发。

    conditionType

    触发条件的类型。当前仅支持ServiceDomainNameResolutionReady类型,即CPD上报的CoreDNS 域名 解析状态。

    operator

    判断逻辑,仅支持Equal和NotEqual两种值,即等于和不等于。

    conditionStatus

    触发条件的状态。

    actions

    策略要执行的动作,目前仅支持TrafficControl,即流量控制。

  3. 集群故障恢复后,删除该Remedy对象。

    kubectl delete remedy foo

  4. 检查集群ucs01上的流量已自动恢复,手动切流成功。
support.huaweicloud.com/bestpractice-ucs/ucs_03_0022.html