配置调度与差异化
集群调度策略
当前界面支持集群权重和自动均衡两种策略。
通过控制台配置调度策略
集群权重的计算方法
计算方法
对于基于集群权重的调度策略,在您设置各个集群的权重后,相应的集群分配Pod数的计算方法如下所述。
- 按照权重计算各个集群的分配Pod数(向下取整)。
- 计算剩余Pod数。
- 若剩余Pod数不为0,则按照集群权重大小排序后再次分配,一次分配一个Pod。排序后,若各个集群设置的权重相同,则会由系统随机选择成员集群进行Pod分配。
计算示例
Pod总数共7个,分配至三个集群member1、member2和member3,设置的集群权重为2 : 1 : 1。
- 计算各集群分配Pod数
member1分配Pod数 = 7 * 2 / 4,向下取整后为3。
member2分配Pod数 = 7 * 1 / 4,向下取整后为1。
member3分配Pod数 = 7 * 1 / 4,向下取整后为1。
也就是说,首次分配的结果为member1分配3个Pod,为member2分配1个Pod,为member3分配1个Pod。
- 计算剩余Pod数
- 按照集群权重大小排序后再次分配
权重排序为member1权重 > member2权重 = member3权重,则再次分配的结果为:member1分配1个Pod,剩余的一个Pod在member2、member3中由系统随机选择一个集群进行分配。
集群容忍策略
集群容忍策略允许调度器将Pod调度至带有对应污点的集群上,需要与集群污点配合使用。
默认的集群容忍策略
在创建工作负载时,UCS会默认为您的负载配置如下的容忍策略。默认的容忍策略会容忍表2所示的污点,该污点是在集群出现故障后自动为其添加的。。
- key: cluster.karmada.io/not-ready
operator: Exists
- key: cluster.karmada.io/unreachable
operator: Exists
因为UCS会配置了默认的集群容忍策略,即使在创建负载时另外单独配置了集群异常状态的污点容忍时间,当集群出现异常时,也不会自动驱逐集群上的pod,当前的默认行为是负载会容忍异常的集群