searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

k8s调度器

2023-10-17 07:38:33
5
0

k8s调度实际上就是将Pod调度到合适的节点Node的过程,这个过程有k8s调度器kube-scheduler处理。

kube-scheduler内部调度过程分为三个部分:入队、调度、绑定,而每个部分可能有几个阶段组成,本文重点讨论调度部分的过程。

 

调度部分被设计为是可扩展的,如果内置调度插件不满足调度需要,可以通过实现几个阶段的接口进行扩展。

调度部分包含三大阶段:过滤、打分、选择

 

过滤阶段

PreFilter

过滤前的预处理阶段

 

Filter

过滤阶段,根据过滤逻辑以及策略侧配置及请求侧配置进行节点过滤,被过滤的节点不会流转到下个阶段

 

PostFilter

过滤后的回调阶段

 

PreScore

打分前的预处理阶段

 

Score

打分阶段,根据过滤逻辑以及策略侧配置及请求侧配置进行节点打分,每个打分插件都会有一个范围来定义最小和最大分数;

 

NormalizeScore

根据权重对不同打分插件在打分阶段所生成的分数进行归一化处理

 

Reserve

保留阶段是为了防止调度程序等待绑定成功时出现竞争情况。如果保留阶段或者后续阶段失败,则会触发取消保留阶段。

 

Permit

在Pod调度周期结束时调用,可以决定Pod是否进入下个阶段

 

0条评论
作者已关闭评论
李****瑛
5文章数
0粉丝数
李****瑛
5 文章 | 0 粉丝
李****瑛
5文章数
0粉丝数
李****瑛
5 文章 | 0 粉丝
原创

k8s调度器

2023-10-17 07:38:33
5
0

k8s调度实际上就是将Pod调度到合适的节点Node的过程,这个过程有k8s调度器kube-scheduler处理。

kube-scheduler内部调度过程分为三个部分:入队、调度、绑定,而每个部分可能有几个阶段组成,本文重点讨论调度部分的过程。

 

调度部分被设计为是可扩展的,如果内置调度插件不满足调度需要,可以通过实现几个阶段的接口进行扩展。

调度部分包含三大阶段:过滤、打分、选择

 

过滤阶段

PreFilter

过滤前的预处理阶段

 

Filter

过滤阶段,根据过滤逻辑以及策略侧配置及请求侧配置进行节点过滤,被过滤的节点不会流转到下个阶段

 

PostFilter

过滤后的回调阶段

 

PreScore

打分前的预处理阶段

 

Score

打分阶段,根据过滤逻辑以及策略侧配置及请求侧配置进行节点打分,每个打分插件都会有一个范围来定义最小和最大分数;

 

NormalizeScore

根据权重对不同打分插件在打分阶段所生成的分数进行归一化处理

 

Reserve

保留阶段是为了防止调度程序等待绑定成功时出现竞争情况。如果保留阶段或者后续阶段失败,则会触发取消保留阶段。

 

Permit

在Pod调度周期结束时调用,可以决定Pod是否进入下个阶段

 

文章来自个人专栏
k8s调度器
2 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0