检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
多种类型作业混合部署:支持AI、大数据、HPC作业类型混合部署。 多队列场景调度优化:支持分队列调度,提供队列优先级、多级队列等复杂任务调度能力。 多种高级调度策略:支持gang-scheduling、公平调度、资源抢占、GPU拓扑等高级调度策略。 多任务模板:支持单一Job多任务模板定义,打破Ku
Volcano调度 Volcano调度概述 使用Volcano调度工作负载 资源利用率优化调度 业务优先级保障调度 AI任务性能增强调度 NUMA亲和性调度 应用扩缩容优先级策略 父主题: 调度
调度策略 如何让多个Pod均匀部署到各个节点上? 如何避免节点上的某个容器被驱逐? 为什么Pod在节点不是均匀分布? 如何驱逐节点上的所有Pod? 如何查看Pod是否使用CPU绑核? 节点关机后Pod不重新调度 如何避免非GPU/NPU负载调度到GPU/NPU节点? 为什么Pod调度不到某个节点上?
使用Kubernetes默认GPU调度 CCE支持在容器中使用GPU资源。 前提条件 创建GPU类型节点,具体请参见创建节点。 集群中需要安装GPU插件,且安装时注意要选择节点上GPU型号对应的驱动,具体请参见CCE AI套件(NVIDIA GPU)。 在v1.27及以下的集群中使用默认GPU调度能力时,
com/ascend-310参数指定NPU数量时,requests和limits值需要保持一致。 指定huawei.com/ascend-310后,在调度时不会将负载调度到没有NPU的节点。如果缺乏NPU资源,会报类似“0/2 nodes are available: 2 Insufficient huawei
机调度。 指定节点池调度:指定插件实例部署的节点池。若不指定,将根据集群默认调度策略进行随机调度。 自定义亲和策略:填写期望插件部署的节点标签实现更灵活的调度策略,若不填写将根据集群默认调度策略进行随机调度。 同时设置多条自定义亲和策略时,需要保证集群中存在同时满足所有亲和策略的节点,否则插件实例将无法运行。
5及以上版本的Volcano插件,具体操作请参见Volcano调度器。 约束与限制 重调度之后的Pod,需要调度器进行调度,重调度器并未进行任何对于Pod和节点的标记行为,所以被驱逐的Pod调度到节点的行为完全被调度器控制,存在驱逐之后,被驱逐的Pod调度到原来节点的可能性。 重调度功能暂不支持Pod间存在反亲和
装箱调度(Binpack) 装箱调度(Binpack)是一种优化算法,以最小化资源使用量为目标,将资源合理地分配给每个任务,使所有资源都可以实现最大化的利用价值。在集群工作负载的调度过程中使用Binpack调度策略,调度器会优先将Pod调度到资源消耗较多的节点,减少各节点空闲资源碎片,提高集群资源利用率。
为什么Pod调度不到某个节点上? 请排查节点和docker是否正常,排查方法请参见排查项七:内部组件是否正常。 如果节点和docker正常,而pod调度不到节点上,请确认pod是否做了亲和,排查方法请参见排查项三:检查工作负载的亲和性配置。 如果节点上的资源不足,导致节点调度不上,请扩容或者新增节点。
变化,为防止Pod调度完成后,集群再次出现负载极端不均衡的情况下,Volcano同时提供重调度能力,通过负载感知和热点打散重调度结合使用,可以获得集群最佳的负载均衡效果。关于热点打散重调度能力的使用请参见重调度(Descheduler)。 工作原理 负载感知调度能力由Volcan
调度概述 CCE支持不同类型的资源调度及任务调度等,可提升应用的性能和集群整体资源的利用率。本文介绍CPU资源调度、GPU/NPU异构资源调度、Volcano调度的主要功能。 CPU调度 CCE提供CPU管理策略为应用分配完整的CPU物理核,提升应用性能,减少应用的调度延迟。 功能
心业务的调度运行。 CCE集群支持的优先级调度如表1所示。 表1 业务优先级保障调度 调度类型 说明 基于优先级调度 调度器优先保障高优先级业务运行,但不会主动驱逐已运行的低优先级业务。基于优先级调度配置默认开启,不支持关闭。 基于优先级抢占调度 当集群资源不足时,调度器主动驱逐
调度层将业务的Pod软调度到指定节点上。 调度优先级介绍 节点池软亲和调度,是通过节点池上的标签(Label)进行软亲和,具体是通过给每一个节点进行打分的机制来排序筛选最优节点。 原则:尽可能把Pod调度到带有相关标签的节点上。 打分公式如下: score = weight * MaxNodeScore
s对Pod的调度策略: 表1 工作负载调度策略 调度策略 YAML字段定义 说明 参考文档 节点选择 nodeSelector 最简单的调度形式,通过节点所具有的标签选择希望调度的目标节点,Kubernetes只会将Pod调度到拥有指定标签的节点上。 设置指定节点调度(nodeSelector)
Scheduler工作流 Volcano Scheduler的工作流程如下: 客户端提交的Job被调度器识别到并缓存起来。 周期性开启会话,一个调度周期开始。 将没有被调度的Job发送到会话的待调度队列中。 遍历所有的待调度Job,按照定义的次序依次执行enqueue、allocate、preempt
等多项功能。 一般情况下,Kubernetes在调度工作负载时会使用自带的默认调度器,若需要使用Volcano调度器的能力,您可以为工作负载指定调度器。关于Kubernetes调度器的详情请参见为Pod指定调度器。 约束与限制 调度大量工作负载的场景下,Volcano会打印较多的
亲和与反亲和调度 在守护进程集(DaemonSet)中讲到使用nodeSelector选择Pod要部署的节点,其实Kubernetes还支持更精细、更灵活的调度机制,那就是亲和(affinity)与反亲和(anti-affinity)调度。 Kubernetes支持节点和Pod两
已安装Volcano插件,详情请参见Volcano调度器。 组调度介绍 Gang调度策略是volcano-scheduler的核心调度算法之一,它满足了调度过程中的“All or nothing”的调度需求,避免Pod的任意调度导致集群资源的浪费。具体算法是,观察Job下的Pod已调度数量是否满足了最小运行
的节点进行调度。 Pod可配置的拓扑策略 Pod调度时筛选节点行为说明 1.根据Pod设置的拓扑策略,筛选可调度的节点 2.筛选可调度的节点后,进一步筛选CPU拓扑满足策略的节点进行调度 none 针对配置了以下几种拓扑策略的节点,调度时均无筛选行为: none:可调度 best-effort:可调度
2。 图1 DRF调度示意图 配置公平调度策略 安装Volcano后,您可通过“配置中心 > 调度配置”选择开启或关闭DRF调度能力,默认开启。 登录CCE控制台。 单击集群名称进入集群,在左侧选择“配置中心”,在右侧选择“调度配置”页签。 在“AI任务性能增强调度”配置中,选择是否开启“公平调度