欢迎光临散文网 会员登陆 & 注册

深究Kubernetes源码- Scheduler-2 调度器流程分析

2022-09-19 11:41 作者:黑暗光影DIY  | 我要投稿

分析基于kubernetes v1.26 

1 启动加载

通过Cobra框架生成Command,最终执行Scheduler.Run运行Scheduler.scheduleOne协程,scheduleOne是Pod调度的核心流程,下面会详细介绍。

Setup是初始化SchedulerQueue、Cache、Framework和Scheduler结构体的关键方法。

NewInTreeRegistry会载入所有InTreePlugin

默认加载的Plugin Profile配置如下


其中addAllEventHandlers处理了所有的Informer EventHandler注册

2调度流程

调度流程分为两个阶段,schedulingCycle和bindingCycle,根据Framework介绍,很明显schedulingCycle主要是过滤和打分,bindingCycle主要是处理绑定

schedulingCycle主要分为两个阶段,Filter和Score,在得出ScheduleResulet后进行Reserve和Permit,涉及Framework扩展调用点的地方为深绿色流程。

bindingCycle相对简单,其流程是在并发的协程中,当schedulingCycle Permint之后,执行Pod的binding操作,核心是执行Framework的PreBind/Bind/PostBind


深究Kubernetes源码- Scheduler-2 调度器流程分析的评论 (共 条)

分享到微博请遵守国家法律