Kubernetes二次开发与源码分析(scheduler)

本文深入剖析了 Kubernetes 调度器的工作原理,包括调度流程、调度框架、扩展点及其功能。调度器通过预选和优选过程,依据插件化策略选择最佳节点。文章详细介绍了预选阶段的过滤和优选阶段的打分策略,如 NodeResourcesFit 和 PodTopologySpread 插件。同时,讨论了自定义调度器的扩展,包括插件注册、实现和部署。此外,文中还涵盖了调度器的启动流程,如参数配置和节点选择策略。通过对调度器源码的分析,读者可以理解 Kubernetes 如何高效、智能地管理集群资源。
摘要由CSDN通过智能技术生成

六 调度器

调度器工作原理

主要对调度器的整体工作原理进行说明,一个 Pod 是如何进入调度器,如何开启调度,又是如何调度完成,绑定到节点上去的。

kube-scheduler 是 kubernetes 的核心组件之一,主要负责整个集群资源的调度功能,根据特定的调度算法和策略,将 Pod 调度到最优的工作节点上面去,从而更加合理、更加充分的利用集群的资源,这也是我们选择使用 kubernetes 一个非常重要的理由。如果一门新的技术不能帮助企业节约成本、提供效率,我相信是很难推进的。

调度流程

默认情况下,kube-scheduler 提供的默认调度器能够满足我们绝大多数的要求,我们前面和大家接触的示例也基本上用的默认的策略,都可以保证我们的 Pod 可以被分配到资源充足的节点上运行。但是在实际的线上项目中,可能我们自己会比 kubernetes 更加了解我们自己的应用,比如我们希望一个 Pod 只能运行在特定的几个节点上,或者这几个节点只能用来运行特定类型的应用,这就需要我们的调度器能够可控。

kube-scheduler 的主要作用就是根据特定的调度算法和调度策略将 Pod 调度到合适的 Node 节点上去࿰

DolphinScheduler是一款开源的分布式任务调度系统,可以实现自动化地调度和执行各种任务。如果需要对DolphinScheduler进行二次开发,并进行打包,需要按照以下步骤进行: 1. 克隆DolphinScheduler的源代码:在Github上找到DolphinScheduler的仓库并将其克隆到本地。 2. 将开发代码添加到源代码中:根据自己的需求,在克隆的源代码中添加新的功能或修改现有功能。可以根据实际情况修改调度器、执行器、调度API等。 3. 配置、编译和打包:根据二次开发所需的配置信息,修改`conf`目录下的相关配置文件。使用maven对代码进行编译,可以运行`mvn clean package -Dmaven.test.skip=true`命令进行打包,该命令会在`target`目录下生成打包结果。 4. 部署和运行:将打包的结果部署到服务器上,包括调度服务器和执行器节点。根据DolphinScheduler的部署文档将相关的配置文件、依赖库、打包结果等拷贝到相应的位置。运行DolphinScheduler的启动脚本以启动调度服务器和执行器节点。 5. 测试和验证:根据自己的需求进行相应的测试和验证,确保二次开发的功能能够正常运行。进行功能测试、性能测试、兼容性测试等,确保系统的稳定性和可靠性。 需要注意的是,二次开发需要对DolphinScheduler的源代码有一定的了解和熟悉。在进行二次开发之前,可以先阅读官方文档、源代码以及相关的社区讨论,这样能更好地理解整个系统的架构和设计理念,更方便进行二次开发和定制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lcy~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值