【博客495】k8s调度器如何自定义插件执行顺序
..plugins:reserve:enabled:disabled:preBind:enabled:disabled:args: >foo插件可以解析的任意内容假设默认插件 foo 实现了 reserve 扩展点,此时我们要添加一个插件 bar,想要在 foo 之前被调用,则应该先禁用 foo 再按照 bar foo 的顺序激活。
·
k8s调度器如何自定义插件执行顺序
kube-scheduler Configuration (v1)官方文档
https://kubernetes.io/docs/reference/config-api/kube-scheduler-config.v1/
调度配置实例
apiVersion: kubescheduler.config.k8s.io/v1
kind: KubeSchedulerConfiguration
profiles:
- schedulerName: default-scheduler
- schedulerName: no-scoring-scheduler
plugins:
preScore:
disabled:
- name: '*'
score:
disabled:
- name: '*'
调度器插件执行顺序
1、如果某个扩展点没有配置对应的扩展,调度框架将使用默认插件中的扩展
2、如果为某个扩展点配置且激活了扩展,则调度框架将先调用默认插件的扩展,再调用配置中的扩展
3、默认插件的扩展始终被最先调用,然后按照 KubeSchedulerConfiguration 中扩展的激活
enabled 顺序逐个调用扩展点的扩展
4、可以先禁用默认插件的扩展,然后在 enabled 列表中的某个位置激活默认插件的扩展,
这种做法可以改变默认插件的扩展被调用时的顺序
扩展自定义插件
下面的例子中的配置启用了一个实现了 reserve 和 preBind 扩展点的插件,并且禁用了另外一个插件,同时为插件 foo 提供了一些配置信息:
apiVersion: kubescheduler.config.k8s.io/v1alpha1
kind: KubeSchedulerConfiguration
...
plugins:
reserve:
enabled:
- name: foo
- name: bar
disabled:
- name: bar
preBind:
enabled:
- name: foo
disabled:
- name: bar
pluginConfig:
- name: foo
args: >
foo插件可以解析的任意内容
如何自定义插件的执行顺序
假设默认插件 foo 实现了 reserve 扩展点,此时我们要添加一个插件 bar,想要在 foo 之前被调用,则应该先禁用 foo 再按照 bar foo 的顺序激活。示例配置如下所示:
apiVersion: kubescheduler.config.k8s.io/v1alpha1
kind: KubeSchedulerConfiguration
...
plugins:
reserve:
enabled:
- name: bar
- name: foo
disabled:
- name: foo
更多推荐
已为社区贡献51条内容
所有评论(0)