文档中心>容器服务>TKE 调度>作业调度>Default-scheduler 调度策略配置

Default-scheduler 调度策略配置

最近更新时间:2024-11-12 17:25:12

我的收藏

背景

在 Kubernetes 集群中,资源调度的有效性直接影响资源利用效率。随着集群规模的增长和应用种类的多样化,单一调度策略往往难以满足所有需求。为了满足不同场景下的调度需求,Kubernetes 提供了灵活的调度策略选项。其中,Default-scheduler 作为系统内置的默认调度器,负责将 Pod 调度至集群节点。通过配置调度策略,可以综合考虑节点的资源可用性、亲和性与反亲和性规则以及其他调度限制,从而实现 Pod 的高效调度。

版本限制

仅支持 v1.20-1.28 的 Kubernetes 版本。具体的小版本要求如下:
v1.20: v1.20.6-tke.20 及以上
v1.22: v1.22.5-tke.5 及以上
v1.24: v1.24.4-tke.3 及以上
v1.26: v1.26.1-tke.1 及以上
v1.28: v1.28.3-tke.1 及以上

默认调度策略

我们将开放以下七种调度策略(含紧凑优先调度),确保 Pod 能够根据业务需求和集群状态,被高效、合理地调度到最佳节点上,为您提供更全面的解决方案。具体配置方法请参阅后续使用说明。
说明:
在 v1.20 和 v1.22 版本中,默认启用 NodeResourcesLeastAllocated 调度策略,如果开启紧凑优先调度,即启用 NodeResourcesMostAllocated 调度策略,禁用 NodeResourcesLeastAllocated 策略。
在 v1.24 及以上版本中,NodeResourcesFit 策略默认值是 LeastAllocated,如果开启紧凑优先调度,则 type 自动变更为 MostAllocated。
如果 LeastAllocated 和 MostAllocated 同时启用,则两个策略同时失效。请避免这样的情况。
调度策略名称
描述
默认权重
配置范围
备注
v1.20和v1.22
v1.24及以上
v1.20和v1.22
v1.24及以上
MostRequestedPriority
NodeResourcesFit
优先选择资源请求量高的节点来部署 Pod,以提高集群资源利用率。
默认不开启
默认 type:LeastAllocated
默认值为1
0-100
如果希望紧凑优先调度,权重建议设置为5。
不建议配置为0,可能引起集群装箱率低,利用率低。
启用时会禁用 LeastRequestedPriority,否则两者都不生效。
LeastRequestedPriority
优先选择资源请求量低的节点来部署 Pod,以平衡集群资源利用率。
1
0-100
不建议配置为0,可能导致集群的资源利用率不均衡。
InterPodAffinityPriority
InterPodAffinity
基于 Pod 间的亲和性及反亲和性规则进行调度。
1
2
0-100
不建议配置为0,可能导致 Pod 不及预期。
BalancedResourceAllocation
NodeResourcesBalancedAllocation
确保节点的 CPU 和内存资源使用保持均衡,避免某一类资源成为瓶颈。
1
1
0-100
不建议配置为0,可能导致资源使用不平衡,某些节点可能会单一资源上成为瓶颈,影响集群的整体性能。
EvenPodsSpreadPriority
PodTopologySpread
将一组相关联的 Pod 平均分散到不同的节点上,以提高应用程序的可靠性和容错能力。
2
2
0-100
不建议配置为0,可能无法完全满足将相关联的 Pod 分散到不同节点上的需求,导致 Pod不及预期。
NodeAffinityPriority
NodeAffinity
根据节点亲和性规则进行调度,确保 Pod 调度到符合亲和性规则的节点上。
1
2
0-100
不建议配置为0,可能导致 Pod 不及预期。
TaintTolerationPriority
TaintToleration
根据节点的污点和 Pod 的容忍度进行调度,确保 Pod 只调度到它们可以容忍的节点上。
1
3
0-100
不建议配置为0,可能违反节点的调度偏好。
ImageLocalityPriority
ImageLocality
优先将 Pod 调度到已经拥有该 Pod 所需镜像的节点上,从而避免从远程存储库拉取镜像,节省网络带宽和时间。
1
1
0-100
不建议配置为0,可能导致 Pod 不及预期。

操作步骤

进入配置页面

1. 登录 容器服务控制台,选择左侧导航栏中的 集群
2. 在集群列表选择需要配置调度策略的集群,进入集群基本信息页。
3. 选择节点管理 > Master&Etcd,新增 kube-scheduler 调度策略,可看到当前调度策略配置情况,单击右上角编辑




配置调度策略

在编辑页面中,可以修改 kube-scheduler 的调度策略。
注意:
1. 在配置调度策略时,请确保充分了解业务需求和集群资源状况,以避免不必要的资源浪费或性能下降。
2. 在调整调度策略时,建议先在测试环境中验证效果,再应用到生产环境。

紧凑优先调度设置

如果开启紧凑优先调度,NodeResourceFit 的 type 将自动变更为 MostAllocated,权重默认为1,可自定义权重1-100(若希望紧凑优先调度策略的优先级更高,建议设置为5)。
如果不开启紧凑优先调度,NodeResourceFit 的 type 默认为 LeastAllocated,权重默认为1,可自定义权重1-100。

其他调度策略权重设置

可自定义权重1-100。权重越高,表示该调度策略在调度决策中的优先级越高。