深究Kubernetes源码-Scheduler-1 调度器模块分析
分析基于kubernetes v1.26
kube-schedule的核心功能是根据Pod的调度策略,将Pod于Node进行绑定,首先看下Scheduler关键类图,其核心模块包括Cache、SchedulingQueue、Extender和Framework。

Cache的核心是保存Node/Pod/Image的状态信息,通过NodeInformer PodInformer触发Node Pod等添加更新,在调度时生成Snapshot用于Filter/Score

SchedulingQueue是Pod的调度队列,通过PodInformer机制,没有分配Node且ScheduleName匹配的Pod会进入队列,等待Schedule流程取出调度

Framework的核心是加载Filter/Score/Bind等Plugin,并执行Plugin

https://kubernetes.io/docs/concepts/scheduling-eviction/scheduling-framework/ 按照官方给出的Framework Extension Point,包括QueueSortPlugin/PreFilterPlugin/FilterPlugin/PostFilterPlugin/PreScorePlugin/ScorePlugin/ReservePlugin/PermitPlugin/PreBindPlugin/BindPlugin/PostBindPlugin



