从事Kubernetes相关工作的同学对Kube-scheduler一定不会感到陌生,有的甚至还可能遇到过里面的一些问题,本篇主要介绍其中的一个优选策略:InterPodAffinity
的性能优化过程,希望可以帮助到一些还在深受其困扰的朋友们,没有使用过此策略或者没有使用过Kubernetes也不要紧,其本质还是在以某种算法去解决某种问题,下面我会尽量以通俗易懂的话来解释需要解决的问题及算法优化过程。
策略介绍
InterPodAffinity
作为优选策略就是在预选通过后的一堆宿主中找到一个最合适的宿主,寻找规则为按拓扑把宿主分类,针对拓扑级别,如果出现符合Pod要求的其他Pod,则为此拓扑下的所有Node计算一个得分,Pod的要求可以有多条,每一条都有一个权重(用来计算得分),同时得分也分正负,例如Pod期望拓扑下没有同类型的Pod,如果有则得分为负。下面通过一下生活中的例子来做个类比帮助理解要解决的问题,再引出对应的算法。