从零开始入门 K8s | 调度器的调度流程和算法介绍(13)
selector 选择的是所有 lable 符合 app=foo 的 pod , 必须在 zone 级别是打散的 , 允许最大不均衡数为 1 。
集群中有三个 zone , 上图中 label 的值 app=foo 的 Pod 在 zone1 和 zone2 中都分配了一个 pod 。
计算不均衡数量公式为:ActualSkew = count[topo
- min(count[topo
)
首先 , 依据 selector 获取到符合条件的 Pod 列表
其次 , 会按照 topologyKey 去分组得到 count[topo
如上图所示:
假设 maxSkew 为 1 , 如果分配到 zone1/zone2 , skew 的值为2 , 大于前面设置的 maxSkew 。 这是不匹配的 , 所以只能分配到 zone3 。 如果分配到 zone3 的话 , min(count[topo
) 为1 , count[topo
为 1 , 那 skew 就等于 0 , 因此只能分配到 zone2 。
假设 maxSkew 为 2 , 分配到 z1(z2) , skew 的值为 2/1/0(1/2/0) , 最大值为 2 , 满足 <=maxSkew 。 那 z1/z2/z3 都是允许被选择的 。
通过 EvenPodsSpread 可以实现一组 Pod 在某个 TopologyKey 上的均衡打散需求 , 如果必须要求每个 topo 上都均衡可以设 maxSkew 为1 , 当然这个描述缺乏了一些控制 , 例如必须分配在多少个 topologyValue 上的限制 。
推荐阅读
- 手机游戏|LOL手游福利送完,开始努力割韭菜?新皮肤玉剑传说即将上线
- 侠盗猎车手4|LOL转会期开始!小虎去留成谜,滔博,FPX和RNG大概率拆队重建?
- DOTA|48岁阿姨:如果你最开始接触的是DOTA,就很难再喜欢别的游戏了!
- 原神|原神:为啥这4个角色,前期被玩家称为真神,后期却开始无人问津
- ig|Dota2-刀圈地震来了?继小象宣布解散后,iG领队也开始“暗示”了
- 成吉思汗|16号2款新皮上线,新英雄开始预热,澜新传说巨帅,成吉思汗哭了
- 电子竞技|武将外号,你都知道几个?老玩家:这不是我先开始这么叫的吗!
- 金铲铲之战|为了防腾讯米哈游抢人,游戏厂商也开始内卷,育碧竟被偷家?
- 梦幻西游|梦幻西游:战神阿轩开启梦幻新玩法!放弃强P,开始升堂审案,为民做主?
- 吃鸡游戏|之前是“吃鸡”大主播,现成功转战联盟,为何越来越多主播开始转型?