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

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

SchedulingQueue是Pod的調(diào)度隊列,通過PodInformer機制,沒有分配Node且ScheduleName匹配的Pod會進入隊列,等待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


標簽: