华为云UCS-UCS双集群可靠性提升建议:通过kubectl命令恢复集群级/AZ级故障(可选)
通过kubectl命令恢复集群级/AZ级故障(可选)
集群关键系统组件出现故障或者集群升级策略不当、升级配置有误、操作人员执行有误等人为因素导致集群整体不可用或者出现AZ站点级别的故障时,U CS 提供手动切流的能力。通过创建Remedy对象将MultiClusterIngress流量从故障集群上摘除。
通过Kubectl命令恢复故障步骤如下:
- 使用kubectl连接集群联邦,详细操作请参见通过kubectl连接集群联邦。
- 集群故障后,在执行机上创建并编辑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,即流量控制。
- 集群故障恢复后,删除该Remedy对象。
kubectl delete remedy foo
- 检查集群ucs01上的流量已自动恢复,手动切流成功。