配置无条件触发自动切流
集群管理员进行集群升级等操作,若出现升级策略不恰当、升级配置有误、操作人员执行失误等问题,可能会导致集群不可用。本小节指导您在进行集群升级前,通过创建无条件触发的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
参数 |
描述 |
---|---|
spec.clusterAffinity.clusterNames |
策略关注的集群名列表。仅在该列表中的集群会执行指定动作,为空时不会执行任何动作。 |
spec.decisionMatches |
触发条件列表。当上述集群列表中指定的集群满足任一触发条件时,即会执行指定动作。当列表为空时,表示无条件触发。 |
conditionType |
触发条件的类型。当前仅支持ServiceDomainNameResolutionReady类型,即CPD上报的CoreDNS域名解析状态。 |
operator |
判断逻辑,仅支持Equal和NotEqual两种值,即等于和不等于。 |
conditionStatus |
触发条件的状态。 |
actions |
策略要执行的动作,目前仅支持TrafficControl,即流量控制。 |