K8S调度器优选策略讲解(1)简介

2021-06-11 15:38:40 浏览数 (1)

在K8S集群中,调度器负责将客户提交的pod绑到某个node节点上,完成pod调度的调度工作。

在这个调度过程中,调度器的优选策略会对集群中的每个node节点都打上一个分数(score),得分最高的节点,调度器将调度pod到该节点上运行。

调度器的优选策略及相关说明

(基于k8s 1.18版本)

名称

权重(weight)

插件(plugin)

说明

默认

相关特性

取值

决定因素

SelectorSpreadPriority

1

DefaultPodTopologySpread

最小化同一节点或者zone上的Pod数量(属于同一服务或复制控制器)

0-100

InterPodAffinityPriority

1

InterPodAffinity

pod应该或不应该与其他pod放置在相同的拓扑域中

preferredDuringSchedulingIgnoredDuringExecution配置中的weight字段相关

亲和性调度的preferredDuringSchedulingIgnoredDuringExecution配置

NodeAffinityPriority

1

NodeAffinity

优先调度pod到node标签匹配了nodeAffinity的节点

preferredDuringSchedulingIgnoredDuringExecution配置中的weight字段相关

亲和性调度的preferredDuringSchedulingIgnoredDuringExecution配置

TaintTolerationPriority

1

TaintToleration

调度pod到容忍了污点的node

0

节点是否有配置污点,且effect值为PreferNoSchedule

ImageLocalityPriority

1

ImageLocality

优先调度pod到已经具有需求的镜像的node

0-100

节点是否已经具有pod所需求的镜像

BalancedResourceAllocation

1

NodeResourcesBalancedAllocation

平衡node的资源使用

0-100

node节点的资源情况

LeastRequestedPriority

1

NodeResourcesLeastAllocated

优先调度pod到requested使用最少的节点

0-100

node节点的资源情况

MostRequestedPriority

1

NodeResourcesMostAllocated

优先调度pod到requested使用最多的节点

0-100

node节点的资源情况

RequestedToCapacityRatioPriority

1

RequestedToCapacityRatio

待补充

0

NodePreferAvoidPodsPriority

10000

NodePreferAvoidPods

根据节点的注释" scheduler.alpha.kubernetes.io/preferAvoidPods"对节点进行优先级排序

0或者1000000

节点是否配置annotation: "scheduler.alpha.kubernetes.io/preferAvoidPods"

EvenPodsSpreadPriority

1

PodTopologySpread

pod的拓扑扩展约束

EvenPodsSpread

0-100

是否配置拓扑扩展约束

ResourceLimitsPriority

1

NodeResourceLimits

待补充

ResourceLimitsPriorityFunction

1

补充说明:

1 优选策略都会使用某个具体的打分插件来进行打分。

2 插件的打分逻辑中一般都有score逻辑,部分插件还提供了preScore和NormalizeScore逻辑。

3 优选策略EvenPodsSpreadPriorityResourceLimitsPriority是通过特性开启的。虽然不在默认列表中,但是如果对应的特性有开启,则开始工作。

0 人点赞