更新时间:2024-10-25 GMT+08:00

配置无条件触发自动切流

集群管理员进行集群升级等操作,若出现升级策略不恰当、升级配置有误、操作人员执行失误等问题,可能会导致集群不可用。本小节指导您在进行集群升级前,通过创建无条件触发的Remedy对象,将MCI流量从目标集群上摘除。

创建Remedy对象可在特定触发条件下执行特定动作。集群管理员准备升级目标集群时(如member1),可以创建如下Remedy对象,将MCI流量从member1上摘除。

示例YAML定义了一个Remedy对象,触发条件为空,表示无条件触发,集群联邦控制器会立即将member1上的流量摘除。在集群升级成功之后,删除该Remedy对象,member1上的流量会自动恢复,由此保证单集群的升级不会影响服务的高可用。详细的Remedy对象参数说明请参见表1

apiVersion: remedy.karmada.io/v1alpha1
kind: Remedy
metadata:
  name: foo
spec:
  clusterAffinity:
    clusterNames:
      - member1
  actions:
  - TrafficControl
表1 Remedy参数说明

参数

描述

spec.clusterAffinity.clusterNames

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

spec.decisionMatches

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

conditionType

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

operator

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

conditionStatus

触发条件的状态。

actions

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