华为云云容器引擎CCE | Volcano调度篇:节点池亲和性调度

举报
云容器大未来 发表于 2025/11/25 15:13:13 2025/11/25
【摘要】 华为云云容器引擎CCE支持多种资源与任务调度策略,有助于提升应用性能和集群整体资源利用率,CPU资源调度、GPU/NPU异构资源调度以及Volcano调度的主要功能。本系列文章将介绍Volcano在华为云云容器引擎CCE中的应用,本文重点介绍:节点池亲和性调度。

华为云云容器引擎CCE支持多种资源与任务调度策略,有助于提升应用性能和集群整体资源利用率,CPU资源调度、GPU/NPU异构资源调度以及Volcano调度的主要功能。本系列文章将介绍Volcano调度在华为云云容器引擎CCE中的运用。

Volcano是一个基于Kubernetes的批处理平台,提供了机器学习、深度学习、生物信息学、基因组学及其他大数据应用所需要而Kubernetes当前缺失的一系列特性,提供了高性能任务调度引擎、高性能异构芯片管理、高性能任务运行管理等通用计算能力。

volcano社区.jpg

在华为云云容器引擎CCE使用Volcano的调度中,在替换节点池、节点滚动升级等场景,需要使用新节点池替换旧节点池。在这些场景下,为做到业务不感知,可以在业务触发变更时,将业务的Pod软亲和调度到新的节点池上。这种软亲和调度会尽量将新创建的Pod或者重调度的Pod调度到新的节点池,如果新节点池资源不足,或者新节点池无法调度,也要能将Pod调度到旧节点池上。节点池替换、节点滚动升级等场景中,业务不需要也不应该感知,所以不会在业务负载中声明节点亲和配置,而需要在集群调度层面,使用软亲和方式,在业务变更时将Pod尽量调度到新的节点池上。

Volcano的目标是在业务负载未配置节点软亲和时,在调度层将业务的Pod软调度到指定节点上。

  调度优先级介绍  

节点池软亲和调度,是通过节点池上的标签(Label)进行软亲和,具体是通过给每一个节点进行打分的机制来排序筛选最优节点。

📝 原则:尽可能把Pod调度到带有相关标签的节点上。

🔍 打分公式如下:score = weight * MaxNodeScore * haveLabel

参数说明:

  • weight:节点池软亲和plugin的权重。
  • MaxNodeScore:节点最大得分,值为100。
  • haveLabel:节点上是否存在插件中配置的label,如果有,值为1,如果节点上没有,值为0。

  前提条件  

✅ 已创建v1.19.16及以上版本的集群,具体操作请参见购买Standard/Turbo集群

✅ 集群中已安装1.11.5及以上版本的Volcano插件,具体操作请参见Volcano调度器

  配置Volcano节点池软亲和调度策略  

1、在节点池上配置用于亲和调度的标签。

  • 登录CCE控制台,单击集群名称进入集群。
  • 在左侧选择“节点管理”,在右侧选择“节点池”页签。
  • 单击节点池名称后的“更新”,在弹出的“更新节点池”页面中配置参数,在“K8s标签”中配置对应的标签。
    示例如下:

亲和池1.png

2、单击左侧导航栏的“配置中心”,切换至“调度配置”页面,选择Volcano调度器找到对应的“专家模式”,单击“开始使用”。

亲和池2.png

3、设置Volcano调度器配置参数,JSON格式的配置示例如下

...
    "default_scheduler_conf": {
        "actions": "allocate, backfill, preempt",
        "tiers": [
            {
                "plugins": [
                    {
                        "name": "priority"
                    },
                    {
                        "name": "gang"
                    },
                    {
                        "name": "conformance"
                    }
                ]
            },
            {
                "plugins": [
                    {
                        "name": "drf"
                    },
                    {
                        "name": "predicates"
                    },
                    {
                        "name": "nodeorder"
                    }
                ]
            },
            {
                "plugins": [
                    {
                        "name": "cce-gpu-topology-predicate"
                    },
                    {
                        "name": "cce-gpu-topology-priority"
                    },
                    {
                        "name": "cce-gpu"
                    },
                    {
                        // 开启节点池亲和性调度
                        "name": "nodepoolaffinity", 
                        // 节点池亲和性调度权重及标签设置
                        "arguments": { 
                            "nodepoolaffinity.weight": 10000,
                            "nodepoolaffinity.label": "nodepool=nodepool1"
                        }
                    }
                ]
            },
            {
                "plugins": [
                    {
                        "name": "nodelocalvolume"
                    },
                    {
                        "name": "nodeemptydirvolume"
                    },
                    {
                        "name": "nodeCSIscheduling"
                    },
                    {
                        "name": "networkresource"
                    }
                ]
            }
        ]
    },
...

4、 完成以上配置后,单击“确定”。

 


🌍 Volcano 是业界首个云原生批量计算引擎,也是 CNCF 首个和唯一的批量计算项目。项目主要用于 AI、大数据、基因、渲染等诸多高性能计算场景,对主流通用计算框架均有很好的支持。目前,Volcano在人工智能、大数据、基因测序等海量数据计算和分析场景已得到快速应用,已完成对 Spark、Flink、Ray、 Tensorflow、PyTorch、Argo、MindSpore、Paddlepaddle 、Kubeflow、MPI、Horovod、Mxnet、KubeGene 等众多主流计算框架的支持,并构建起完善的上下游生态。

📌 更多Volcano云原生批量计算 技术应用,请访问社区仓库或官网:

1️⃣ Volcano云原生批量计算社区官网:https://volcano.sh

2️⃣ Volcano GitHub 仓库: https://github.com/volcano-sh/volcano

3️⃣ Volcano云原生批量计算公开课:https://edu.huaweicloud.com/roadmap/cloudnative.html

4️⃣ 华为云云容器引擎CCEhttps://www.huaweicloud.com/product/cce.html

 

容器模仿.png

更多云原生技术动向

关注容器魔方

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。