检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
组调度(Gang) 组调度(Gang)满足了调度过程中“All or nothing”的调度需求,避免Pod的任意调度导致集群资源的浪费,主要应用于AI、大数据等多任务协作场景。启用该能力后,可以解决分布式训练任务之间的资源忙等待和死锁等痛点问题,大幅度提升整体训练性能。 前提条件
2。 图1 DRF调度示意图 配置公平调度策略 安装Volcano后,您可通过“配置中心 > 调度配置”选择开启或关闭DRF调度能力,默认开启。 登录CCE控制台。 单击集群名称进入集群,在左侧选择“配置中心”,在右侧选择“调度配置”页签。 在“AI任务性能增强调度”配置中,选择是否开启“公平调度
AI任务性能增强调度 公平调度(DRF) 组调度(Gang) 父主题: Volcano调度
Volcano调度 Volcano调度概述 使用Volcano调度工作负载 资源利用率优化调度 业务优先级保障调度 AI任务性能增强调度 NUMA亲和性调度 应用扩缩容优先级策略 父主题: 调度
使用Kubernetes默认GPU调度 CCE支持在容器中使用GPU资源。 前提条件 创建GPU类型节点,具体请参见创建节点。 集群中需要安装GPU插件,且安装时注意要选择节点上GPU型号对应的驱动,具体请参见CCE AI套件(NVIDIA GPU)。 在v1.27及以下的集群中使用默认GPU调度能力时,
调度策略 如何让多个Pod均匀部署到各个节点上? 如何避免节点上的某个容器被驱逐? 为什么Pod在节点不是均匀分布? 如何驱逐节点上的所有Pod? 如何查看Pod是否使用CPU绑核? 节点关机后Pod不重新调度 如何避免非GPU/NPU负载调度到GPU/NPU节点? 为什么Pod调度不到某个节点上?
装箱调度(Binpack) 装箱调度(Binpack)是一种优化算法,以最小化资源使用量为目标,将资源合理地分配给每个任务,使所有资源都可以实现最大化的利用价值。在集群工作负载的调度过程中使用Binpack调度策略,调度器会优先将Pod调度到资源消耗较多的节点,减少各节点空闲资源碎片,提高集群资源利用率。
普通任务(Job)和定时任务(CronJob) 普通任务(Job)和定时任务(CronJob) Job和CronJob是负责批量处理短暂的一次性任务(short lived one-off tasks),即仅执行一次的任务,它保证批处理任务的一个或多个Pod成功结束。 Job:是
Scheduler工作流 Volcano Scheduler的工作流程如下: 客户端提交的Job被调度器识别到并缓存起来。 周期性开启会话,一个调度周期开始。 将没有被调度的Job发送到会话的待调度队列中。 遍历所有的待调度Job,按照定义的次序依次执行enqueue、allocate、preempt
等多项功能。 一般情况下,Kubernetes在调度工作负载时会使用自带的默认调度器,若需要使用Volcano调度器的能力,您可以为工作负载指定调度器。关于Kubernetes调度器的详情请参见为Pod指定调度器。 约束与限制 调度大量工作负载的场景下,Volcano会打印较多的
HPC作业类型混合部署。 多队列场景调度优化:支持分队列调度,提供队列优先级、多级队列等复杂任务调度能力。 多种高级调度策略:支持gang-scheduling、公平调度、资源抢占、GPU拓扑等高级调度策略。 多任务模板:支持单一Job多任务模板定义,打破Kubernetes原生资源束缚,Volcano
开启负载感知调度能力。 安装Volcano后,您可通过“配置中心 > 调度配置”选择开启或关闭负载感知调度能力,默认关闭。 登录CCE控制台。 单击集群名称进入集群,在左侧选择“配置中心”,在右侧选择“调度配置”页签。 在“资源利用率优化调度”配置中,修改负载感知调度配置。 为达
5及以上版本的Volcano插件,具体操作请参见Volcano调度器。 约束与限制 重调度之后的Pod,需要调度器进行调度,重调度器并未进行任何对于Pod和节点的标记行为,所以被驱逐的Pod调度到节点的行为完全被调度器控制,存在驱逐之后,被驱逐的Pod调度到原来节点的可能性。 重调度功能暂不支持Pod间存在反亲和
算框架容器化运行在Kubernetes上。 高级调度:面向批量计算、高性能计算场景提供丰富的高级调度能力,包括成组调度,优先级抢占、装箱、资源预留、任务拓扑关系等。 队列管理:支持分队列调度,提供队列优先级、多级队列等复杂任务调度能力。 目前Volcano项目已经在Github开
业务优先级保障调度 AI任务性能增强调度 根据AI任务的工作性质、资源的使用情况,设置对应的调度策略,可以增强集群业务的吞吐量,提高业务运行性能。 AI任务性能增强调度 NUMA亲和性调度 Volcano可解决调度程序NUMA拓扑感知的限制,实现以下目标: 避免将Pod调度到NUMA拓扑不匹配的节点。
com/ascend-310参数指定NPU数量时,requests和limits值需要保持一致。 指定huawei.com/ascend-310后,在调度时不会将负载调度到没有NPU的节点。如果缺乏NPU资源,会报类似“0/2 nodes are available: 2 Insufficient huawei
心业务的调度运行。 CCE集群支持的优先级调度如表1所示。 表1 业务优先级保障调度 调度类型 说明 基于优先级调度 调度器优先保障高优先级业务运行,但不会主动驱逐已运行的低优先级业务。基于优先级调度配置默认开启,不支持关闭。 基于优先级抢占调度 当集群资源不足时,调度器主动驱逐
的节点进行调度。 Pod可配置的拓扑策略 Pod调度时筛选节点行为说明 1.根据Pod设置的拓扑策略,筛选可调度的节点 2.筛选可调度的节点后,进一步筛选CPU拓扑满足策略的节点进行调度 none 针对配置了以下几种拓扑策略的节点,调度时均无筛选行为: none:可调度 best-effort:可调度
节点池亲和性调度 在替换节点池、节点滚动升级等场景中,需要使用新节点池替换旧节点池。在这些场景下,为做到业务不感知,可以在业务触发变更时,将业务的Pod软亲和调度到新的节点池上。这种软亲和调度会尽量将新创建的Pod或者重调度的Pod调度到新的节点池,如果新节点池资源不足,或者新节
s对Pod的调度策略: 表1 工作负载调度策略 调度策略 YAML字段定义 说明 参考文档 节点选择 nodeSelector 最简单的调度形式,通过节点所具有的标签选择希望调度的目标节点,Kubernetes只会将Pod调度到拥有指定标签的节点上。 设置指定节点调度(nodeSelector)