K8s 调度框架设计与 scheduler plugins 开发部署示例(2024)

K8s 调度框架设计与 scheduler plugins 开发部署示例(2024)

💡 原文中文,约18900字,阅读约需45分钟。
📝

内容提要

本文介绍了Kubernetes调度框架及其扩展插件机制,重点讲解了如何实现固定宿主机调度插件。通过示例代码,展示了在K8s v1.28中注册和使用调度插件,以确保虚拟机在故障恢复后仍能调度到相同节点。

🎯

关键要点

  • Kubernetes调度框架提供了扩展调度功能的插件机制,允许用户实现自定义调度逻辑。
  • 在K8s v1.28中,用户可以通过注册调度插件来实现固定宿主机调度,确保虚拟机在故障恢复后仍能调度到相同节点。
  • 调度过程分为调度周期和绑定周期,调度周期选择节点,绑定周期则在节点上创建持久卷。
  • 用户可以编写自己的调度插件,分为内置插件和外部插件,外部插件不需要修改K8s代码。
  • 实现固定宿主机调度需要在多个扩展点注册调度函数,包括PreFilter、Filter和PostBind。
  • 通过示例代码展示了如何在K8s中实现StickyVM调度插件,确保虚拟机在故障后仍能调度到相同节点。

延伸问答

Kubernetes调度框架的主要功能是什么?

Kubernetes调度框架提供了扩展调度功能的插件机制,允许用户实现自定义调度逻辑。

如何在K8s v1.28中实现固定宿主机调度?

在K8s v1.28中,通过注册调度插件实现固定宿主机调度,确保虚拟机在故障恢复后仍能调度到相同节点。

调度过程中的调度周期和绑定周期有什么区别?

调度周期选择节点,绑定周期则在节点上创建持久卷。

用户如何编写自己的调度插件?

用户可以编写内置插件和外部插件,外部插件不需要修改K8s代码,可以独立部署。

实现固定宿主机调度需要注册哪些扩展点?

需要在多个扩展点注册调度函数,包括PreFilter、Filter和PostBind。

StickyVM调度插件的作用是什么?

StickyVM调度插件确保虚拟机在故障后仍能调度到相同节点,保持数据一致性。

➡️

继续阅读