50|动手实现一个Kubernetes调度器插件
孔令飞

你好,我是孔令飞。
本专栏我们介绍了 Kubernetes 的 kube-scheduler 组件的源码。kube-scheduler 通过插件化的方式实现了众多的调度器插件。本节课就带你实现一个 Kubernetes 调度器插件。
scheduler-plugins 项目介绍
kube-scheduler 虽然提供了比较丰富的原生调度策略,例如:NodeSelector、NodeResourcesBalancedAllocation、NodeAffinity 等。但是在真实的企业 Kuberentes 环境中,这些调度器插件还不能满足企业内对 Pod 调度的诉求。例如,在企业中,经常需要根据内部的 Node 真实的负载情况来调度 Pod。此时,就需要开发自己的调度策略。
为了让开发者更快捷的开发调度策略,Kubernetes 提供了 scheduler framework 框架。scheduler framework 分别在调度器的调度循环和绑定循环中提供了多个扩展点,来供开发者实现自己的调度能力。例如:Score 阶段可以实现自定义的 Node 打分策略,Filter 可以过滤掉不符合要求的 Node 节点。
为了更好的帮助开发者使用 out-of-tree 插件,Kubernetes 社区创建了 scheduler-plugins 项目。该项目集成了众多的调度插件,并且支持很轻松的开发自定义调度器插件。
公开
同步至部落
取消
完成
0/2000
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结

1. Kubernetes 的 kube-scheduler 组件支持插件化的调度器插件,企业通常需要根据内部 Node 的负载情况来调度 Pod,因此需要开发自定义调度策略。 2. Kubernetes 提供了 scheduler framework 框架,包括 Score 阶段和 Filter 等扩展点,可供开发者实现自定义调度能力。 3. Kubernetes 社区创建了 scheduler-plugins 项目,集成了多个调度插件,并支持轻松开发自定义调度器插件,以帮助开发者使用 out-of-tree 插件。 4. 实现自定义调度插件的步骤包括编写插件的主逻辑、注册逻辑和配置文件。 5. 开发完调度插件后,需要将插件注册到调度器中,以便调度器初始化时能够加载自定义插件。 6. Kubernetes 为调度器提供了标准的配置方式,可以通过配置文件指定调度器名称、插件使用情况以及其他参数。 7. 本地启动 scheduler-plugins 项目后,可以通过提交具有特定 annotation 的 Pod 进行测试,观察调度效果。 8. Kubernetes 原生调度器提供的调度插件通常不能满足企业需求,因此需要自行开发调度器插件。 9. 基于 scheduler-plugins 项目实现企业自己的调度器插件是目前流行的方式,本文通过一个极简的例子介绍了如何开发一个调度器插件,并给出了测试结果。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Kubernetes 源码剖析与实战》,新⼈⾸单¥68
《Kubernetes 源码剖析与实战》,新⼈⾸单¥68
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论