文章目录
六 调度器
调度器工作原理
主要对调度器的整体工作原理进行说明,一个 Pod 是如何进入调度器,如何开启调度,又是如何调度完成,绑定到节点上去的。
kube-scheduler 是 kubernetes 的核心组件之一,主要负责整个集群资源的调度功能,根据特定的调度算法和策略,将 Pod 调度到最优的工作节点上面去,从而更加合理、更加充分的利用集群的资源,这也是我们选择使用 kubernetes 一个非常重要的理由。如果一门新的技术不能帮助企业节约成本、提供效率,我相信是很难推进的。
调度流程
默认情况下,kube-scheduler 提供的默认调度器能够满足我们绝大多数的要求,我们前面和大家接触的示例也基本上用的默认的策略,都可以保证我们的 Pod 可以被分配到资源充足的节点上运行。但是在实际的线上项目中,可能我们自己会比 kubernetes 更加了解我们自己的应用,比如我们希望一个 Pod 只能运行在特定的几个节点上,或者这几个节点只能用来运行特定类型的应用,这就需要我们的调度器能够可控。
kube-scheduler 的主要作用就是根据特定的调度算法和调度策略将 Pod 调度到合适的 Node 节点上去,是一个独立的二进制程序,启动之后会一直监听 API Server,获取到 PodSpec.NodeName 为空的 Pod,对每个 Pod 都会创建一个 binding。<

本文深入剖析了 Kubernetes 调度器的工作原理,包括调度流程、调度框架、扩展点及其功能。调度器通过预选和优选过程,依据插件化策略选择最佳节点。文章详细介绍了预选阶段的过滤和优选阶段的打分策略,如 NodeResourcesFit 和 PodTopologySpread 插件。同时,讨论了自定义调度器的扩展,包括插件注册、实现和部署。此外,文中还涵盖了调度器的启动流程,如参数配置和节点选择策略。通过对调度器源码的分析,读者可以理解 Kubernetes 如何高效、智能地管理集群资源。
订阅专栏 解锁全文
&spm=1001.2101.3001.5002&articleId=128699837&d=1&t=3&u=d2040cede2954a52b587c4cd5c9180ad)
928

被折叠的 条评论
为什么被折叠?



