深究Kubernetes源碼-Scheduler-1 調(diào)度器模塊分析
分析基于kubernetes v1.26?
kube-schedule的核心功能是根據(jù)Pod的調(diào)度策略,將Pod于Node進(jìn)行綁定,首先看下Scheduler關(guān)鍵類圖,其核心模塊包括Cache、SchedulingQueue、Extender和Framework。

Cache的核心是保存Node/Pod/Image的狀態(tài)信息,通過(guò)NodeInformer PodInformer觸發(fā)Node Pod等添加更新,在調(diào)度時(shí)生成Snapshot用于Filter/Score

SchedulingQueue是Pod的調(diào)度隊(duì)列,通過(guò)PodInformer機(jī)制,沒(méi)有分配Node且ScheduleName匹配的Pod會(huì)進(jìn)入隊(duì)列,等待Schedule流程取出調(diào)度

Framework的核心是加載Filter/Score/Bind等Plugin,并執(zhí)行Plugin

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


標(biāo)簽: