- 文档首页
容器服务
容器服务 VKE
用户指南
调度管理
负载感知调度
负载感知调度
本文主要描述如何使用容器服务提供的负载感知调度能力,实现节点负载均衡的目标。
功能概述
负载感知调度是容器服务提供的基于节点真实负载,进行合理调度的策略。调度过程中,通过参考节点负载的历史统计,将 Pod 优先调度到负载较低的节点,实现节点负载均衡的目标,避免出现因单个节点负载过高而导致的应用程序或节点故障。
前提条件
- 集群处于 运行中 状态,且集群中存在两个及以上节点需要均衡节点的负载情况。详细操作,请参见 新增节点。
- 集群 Kubernetes 版本需要满足如下要求,才能支持负载感知调度能力。详细操作,请参见 升级集群。
使用方法
步骤一:开启调度器的负载感知调度功能
- LoadAwareSchedulingEnabled 参数配置为 true。
- LoadAwareSchedulingConfig 参数下的 Scope 子参数配置为 pod。
步骤二:为 Pod 添加启用负载感知调度的 Annotation
通过在 Pod 中添加 Annotations 来标识该 Pod 是否基于节点的真实负载情况,开启负载感知调度。
YAML 文件示例如下所示。
vke.volcengine.com/load-aware-enabled: "true"
使用示例
本文以集群中存在 3 个节点(4 Core、16 GiB 规格)为例,对比使用负载感知调度前后的节点负载差异,介绍如何将业务 Pod 调度到负载较小的节点上,实现节点负载均衡的方法。
未使用负载感知调度
- 创建工作负载的 YAML 文件。下文以创建 Deployment 为例,示例文件stress-test.yaml代码如下所示。
kubectl apply -f stress-test.yaml
- 查看上一步创建的工作负载的 Pod 被调度到的节点。
kubectl get pods -o wide
- 预期返回结果如下所示,表示 Pod 被调度到192.168.1.5和192.168.1.3节点上。
-
- 预期返回结果如下所示,表示192.168.1.5和192.168.1.3节点是高负载节点。
-
使用负载感知调度
上述结果表示节点的负载不均衡,期望后续将 Pod 尽量调度到192.168.1.4节点时,按如下说明,在业务 Pod 中添加 Annotations,开启负载感知调度。
- 创建有 6 个 Pod 的工作负载并启用负载感知调度,每个 Pod 的容器申请 500 mCore CPU。
vke.volcengine.com/load-aware-enabled: "true"
- 查看上一步创建的工作负载的 Pod 被调度到的节点。
- 预期返回结果如下所示,6 个 Pod 均被调度到192.168.1.4节点上。
-
最近更新时间:2025.12.05 17:52:16