从零开始入门 K8s | 调度器的调度流程和算法介绍(22)

这里看一下策略文件的配置内容 , 如下图所示:

这里可以看到配置的过滤器 predicates , 配置的打分器 priorities , 以及我们配置的扩展调度器 。 这里有一个比较有意思的参数就是:alwaysCheckAllPredicates 。 它是用来控制当过滤列表有个返回 false 时 , 是否继续往下执行?默认的肯定是 false;如果配置成 true , 它会把每个插件都走一遍 。

如何扩展调度器

Scheduler Extender

首先来看一下 Schedule Extender 能做什么?在启动官方调度器之后 , 可以再启动一个扩展调度器 。

通过配置文件 , 如上文提到的 Polic 文件中 extender 的配置 , 包括 extender 服务的 URL 地址、是否 https 服务 , 以及服务是否已经有 NodeCache 。 如果有 NodeCache , 那调度器只会传给 nodenames 列表 。 如果没有开启 , 那调度器会把所有 nodeinfo 完整结构都传递过来 。

ignorable 这个参数表示调度器在网络不可达或者是服务报错 , 是否可以忽略扩展调度器 。 managedResources , 官方调度器在遇到这个 Resource 时会用扩展调度器 , 如果不指定表示所有的都会使用扩展调度器 。

推荐阅读