聊聊kube-scheduler如何完成调度和调整调度权重

💡 原文中文,约4400字,阅读约需11分钟。
📝

内容提要

本文介绍了kube-scheduler的调度流程和调度原理,包括预选、优选、绑定等阶段,以及自定义调度算法和调整调度结果的方法。

🎯

关键要点

  • Kube-scheduler是K8s集群的默认调度器,负责将未调度的Pod分配到合适的Node上。
  • 调度流程包括创建Pod、监听未调度Pod、预选、优选和绑定等阶段。
  • 预选阶段通过Predicate算法过滤不满足条件的节点,优选阶段通过打分机制选择得分最高的节点。
  • Kube-scheduler的调度框架称为Scheduler Framework,支持插件化调度算法。
  • 调度过程包括PreFilter、Filter、PostFilter、PreScore、Score、NormalizeScore、Reserve、Permit、PreBind、Bind和PostBind等阶段。
  • 调度器的filter阶段用于过滤不满足Pod调度条件的节点,score阶段用于为节点打分。
  • 可以通过修改调度器插件的权重来调整调度结果。
  • 示例中展示了如何通过调整InterPodAffinity和NodeAffinity的权重来影响Pod的调度结果。
➡️

继续阅读