-
华为云云容器引擎CCE支持多种资源与任务调度策略,有助于提升应用性能和集群整体资源利用率,CPU资源调度、GPU/NPU异构资源调度以及Volcano调度的主要功能。本系列文章将介绍Volcano调度在华为云云容器引擎CCE中的运用。Volcano是一个基于Kubernetes的批处理平台,提供了机器学习、深度学习、生物信息学、基因组学及其他大数据应用所需要而Kubernetes当前缺失的一系列特性,提供了高性能任务调度引擎、高性能异构芯片管理、高性能任务运行管理等通用计算能力。在华为云云容器引擎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标签”中配置对应的标签。示例如下:2、单击左侧导航栏的“配置中心”,切换至“调度配置”页面,选择Volcano调度器找到对应的“专家模式”,单击“开始使用”。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.sh2️⃣ Volcano GitHub 仓库: cid:link_53️⃣ Volcano云原生批量计算公开课:cid:link_34️⃣ 华为云云容器引擎CCE:cid:link_4 更多云原生技术动向关注容器魔方
-
华为云云容器引擎CCE支持多种资源与任务调度策略,有助于提升应用性能和集群整体资源利用率,CPU资源调度、GPU/NPU异构资源调度以及Volcano调度的主要功能。本系列文章将介绍Volcano调度在华为云云容器引擎CCE中的运用。Volcano是一个基于Kubernetes的批处理平台,提供了机器学习、深度学习、生物信息学、基因组学及其他大数据应用所需要而Kubernetes当前缺失的一系列特性,提供了高性能任务调度引擎、高性能异构芯片管理、高性能任务运行管理等通用计算能力。集群中的调度是将pending状态的Pod分配到节点运行的过程,在CCE集群之中,Pod的调度依赖于集群中的调度器(kube-scheduler或者Volcano调度器)。调度器是通过一系列算法计算出Pod运行的最佳节点,但是Kubernetes集群环境是存在动态变化的,例如某一个节点需要维护,这个节点上的所有Pod会被驱逐到其他节点,但是当维护完成后,之前被驱逐的Pod并不会自动回到该节点上来,因为Pod一旦被绑定了节点是不会触发重新调度的。由于这些变化,集群在一段时间之后就可能会出现不均衡的状态。为了解决上述问题,Volcano调度器可以根据设置的策略,驱逐不符合配置策略的Pod,让其重新进行调度,达到均衡集群负载、减少资源碎片化的目的。 重调度功能介绍 ▍负载感知重调度(LoadAware)在K8s集群治理过程中,常常会因CPU、内存等高使用率状况而形成热点,既影响了当前节点上Pod的稳定运行,也会导致节点发生故障的几率的激增。为了应对集群节负载不均衡等问题,动态平衡各个节点之间的资源使用率,需要基于节点的相关监控指标,构建集群资源视图,在集群治理阶段,通过实时监控,在观测到节点资源率较高、节点故障、Pod 数量较多等情况时,可以自动干预,迁移资源使用率高的节点上的一些Pod到利用率低的节点上。图1 LoadAware策略示意图 使用该插件时,highThresholds需要大于lowThresholds,否则重调度器无法启用。正常节点:资源利用率大于等于30%且小于等于80%的节点。此节点的负载水位区间是期望达到的合理区间范围。热点节点:资源利用率高于80%的节点。热点节点将驱逐一部分Pod,降低负载水位,使其不超过80%。重调度器会将热点节点上面的Pod调度到空闲节点上面。空闲节点:资源利用率低于30%的节点。▍CPU和内存资源碎片率整理策略(HighNodeUtilization)从分配率低的节点上驱逐Pod。这个策略必须与Volcano调度器的binpack策略或者kube-scheduler调度器的MostAllocated策略一起使用。阈值可以分为CPU和内存两种资源角度进行配置。 前提条件 ✅ 已创建v1.19.16及以上版本的集群,具体操作请参见购买Standard/Turbo集群。✅ 集群中已安装1.11.5及以上版本的Volcano插件,具体操作请参见Volcano调度器。 约束与限制 ❌ 重调度之后的Pod,需要调度器进行调度,重调度器并未进行任何对于Pod和节点的标记行为,所以被驱逐的Pod调度到节点的行为完全被调度器控制,存在驱逐之后,被驱逐的Pod调度到原来节点的可能性。❌ 重调度功能暂不支持Pod间存在反亲和性的场景。如果使用重调度功能驱逐某个Pod后,由于该Pod与其他已运行的Pod存在反亲和性,调度器仍可能将其调度回驱逐前的节点上。❌ 配置负载感知重调度(LoadAware)时,Volcano调度器需要同时开启负载感知调度;配置CPU和内存资源碎片率整理策略(HighNodeUtilization)时,Volcano调度器需要同时开启binpack调度策略。 配置负载感知重调度策略 配置负载感知重调度(LoadAware)时,Volcano调度器需要同时开启负载感知调度,示例步骤如下。1、登录CCE控制台,单击集群名称进入集群。2、单击左侧导航栏的“插件中心”,在右侧找到Volcano调度器,单击“编辑”,在“扩展功能”中开启“重调度”的开关,单击“确定”完成插件配置更新。3、单击左侧导航栏的“配置中心”,通过“调度配置”页面启用负载感知调度。详情请参见负载感知调度。4、在“调度配置”页面,选择Volcano调度器找到对应的“专家模式”,单击“开始使用”。5、配置负载感知重调度策略。使用Volcano 1.11.21及更新版本,JSON格式的重要参数配置示例如下,其他参数请参见控制台“开始使用”中的JSON示例。{ ... "deschedulerPolicy": { "profiles": [ { "name": "ProfileName", "pluginConfig": [ { "args": { "ignorePvcPods": true, "nodeFit": true, "priorityThreshold": { "value": 100 } }, "name": "DefaultEvictor" }, { "args": { "evictableNamespaces": { "exclude": ["kube-system"] }, "metrics": { "type": "prometheus_adaptor" }, "targetThresholds": { "cpu": 80, "memory": 85 }, "thresholds": { "cpu": 30, "memory": 30 } }, "name": "LoadAware" } ], "plugins": { "balance": { "enabled": ["LoadAware"] } } } ] }, "descheduler_enable": "true", "deschedulingInterval": "10m" ... }表1 集群重调度策略关键参数表2 deschedulerPolicy配置参数 6、完成以上配置后,单击“确定”。 配置资源碎片整理策略 配置CPU和内存资源碎片率整理策略(HighNodeUtilization)时,Volcano调度器需要同时开启binpack调度策略,示例步骤如下。1、登录CCE控制台,单击集群名称进入集群。2、单击左侧导航栏的“插件中心”,在右侧找到Volcano调度器,单击“编辑”,在“扩展功能”中开启“重调度”的开关,单击“确定”完成插件配置更新。3、单击左侧导航栏的“配置中心”,通过“调度配置”页面启用装箱策略(binpack)。详情请参见装箱调度(Binpack)。4、在“调度配置”页面,选择Volcano调度器找到对应的“专家模式”,单击“开始使用”。5、配置资源碎片整理策略,JSON格式的重要参数配置示例如下,其他参数请参见控制台“开始使用”中的JSON示例。{... "deschedulerPolicy": { "profiles": [ { "name": "ProfileName", "pluginConfig": [ { "args": { "ignorePvcPods": true, "nodeFit": true, "priorityThreshold": { "value": 100 } }, "name": "DefaultEvictor" }, { "args": { "evictableNamespaces": { "exclude": ["kube-system"] }, "thresholds": { "cpu": 25, "memory": 25 } }, "name": "HighNodeUtilization" } ], "plugins": { "balance": { "enabled": ["HighNodeUtilization"] } } } ] }, "descheduler_enable": "true", "deschedulingInterval": "10m"...}参数说明deschedulingInterval重调度的周期。deschedulerPolicy集群重调度策略,详情请参见表4。表3 集群重调度策略关键参数表4 deschedulerPolicy配置参数 6. 完成以上配置后,单击“确定”。 使用案例 ▍资源碎片整理策略(HighNodeUtilization)使用案例1、单击集群控制台左侧导航栏的“节点管理”,查看集群之中的节点,发现存在部分分配率过低的节点。2、单击左侧导航栏的“配置中心”,在“调度配置”页面,选择Volcano调度器找到对应的“专家模式”,单击“开始使用”。3、编辑Volcano参数,设置CPU和内存的阈值为25。即表示节点的分配率小于25%时,该节点上的Pod会被驱逐。4、设置该策略后,将192.168.44.152节点上的Pod迁移到节点192.168.54.65,达到碎片整理的目的。 常见问题 当输入参数错误时,会有报警事件,例如:输入的配置不符合阈值范围、输入的配置格式不正确。如下图所示,可以按照事件提示进行修改。 🌍 Volcano 是业界首个云原生批量计算引擎,也是 CNCF 首个和唯一的批量计算项目。项目主要用于 AI、大数据、基因、渲染等诸多高性能计算场景,对主流通用计算框架均有很好的支持。目前,Volcano在人工智能、大数据、基因测序等海量数据计算和分析场景已得到快速应用,已完成对 Spark、Flink、Ray、 Tensorflow、PyTorch、Argo、MindSpore、Paddlepaddle 、Kubeflow、MPI、Horovod、Mxnet、KubeGene 等众多主流计算框架的支持,并构建起完善的上下游生态。📌 更多Volcano云原生批量计算 技术应用,请访问社区仓库或官网:Volcano云原生批量计算社区官网:https://volcano.shVolcano GitHub 仓库: cid:link_8Volcano云原生批量计算公开课:cid:link_6华为云云容器引擎CCE:cid:link_7 更多云原生技术动向关注容器魔方
-
华为云云容器引擎CCE支持多种资源与任务调度策略,有助于提升应用性能和集群整体资源利用率,CPU资源调度、GPU/NPU异构资源调度以及Volcano调度的主要功能。本系列文章将介绍Volcano调度在华为云云容器引擎CCE中的运用。Volcano是一个基于Kubernetes的批处理平台,提供了机器学习、深度学习、生物信息学、基因组学及其他大数据应用所需要而Kubernetes当前缺失的一系列特性,提供了高性能任务调度引擎、高性能异构芯片管理、高性能任务运行管理等通用计算能力。装箱调度(Binpack)是一种优化算法,以最小化资源使用量为目标,将资源合理地分配给每个任务,使所有资源都可以实现最大化的利用价值。在集群工作负载的调度过程中使用Binpack调度策略,调度器会优先将Pod调度到资源消耗较多的节点,减少各节点空闲资源碎片,提高集群资源利用率。 前提条件 ✅ 已创建v1.19及以上版本的集群,详情请参见购买Standard/Turbo集群。✅ 已安装Volcano插件,详情请参见Volcano调度器。 Binpack功能介绍 Binpack调度算法的目标是最大限度地填满现有节点,尽量避免将Pod调度至空闲节点。具体实现中,调度器会对所有满足条件的节点进行打分,资源利用率越高,得分越高,调度优先级也越高。Binpack算法能够尽可能填满节点,将应用负载靠拢在部分节点,这非常有利于集群节点的自动扩缩容功能。Binpack为Volcano调度器的多个调度插件之一,与其他调度插件协同工作,共同影响节点的最终得分。用户可自定义Binpack插件的全局权重,并分别为CPU、内存基础资源以及 GPU、NPU等扩展资源配置打分权重,从而控制Binpack在调度决策中的影响程度。在计算Binpack得分时,调度器会综合考虑Pod所请求的各类资源,并基于各资源的打分权重进行加权平均,以确定节点的最终得分。 Binpack算法原理 在对节点打分时,Binpack会结合插件的全局权重和各资源维度(如CPU、内存、GPU等)的权重值,计算出节点Binpack得分。节点Binpack得分的计算流程如下:1️⃣ 首先,对Pod请求资源中的每类资源依次打分,以CPU为例,CPU资源在待调度节点的得分信息如下:CPU.weight * (request + used) / allocatable即CPU权重值越高,得分越高,节点资源使用量越满,得分越高。Memory、GPU等资源原理类似。其中:CPU.weight为用户设置的CPU权重request为当前Pod请求的CPU资源量used为当前节点已经分配使用的CPU量allocatable为当前节点CPU可用总量2️⃣ 通过Binpack策略的节点总得分如下:binpack.weight * (CPU.score + Memory.score + GPU.score) / (CPU.weight+ Memory.weight+ GPU.weight) * 100即binpack插件的权重值越大,得分越高,某类资源的权重越大,该资源在打分时的占比越大。其中:binpack.weight为用户设置的装箱调度策略权重CPU.score为CPU资源得分,CPU.weight为CPU权重Memory.score为Memory资源得分,Memory.weight为Memory权重GPU.score为GPU资源得分,GPU.weight为GPU权重 图1 Binpack策略示例3️⃣ 如图1所示,假设集群中存在两个节点,分别为Node 1和Node 2,当前有一个Pod请求了CPU、内存和GPU资源。在调度Pod时,Binpack策略将对两个节点进行打分。假设集群中CPU.weight配置为1,Memory.weight配置为1,GPU.weight配置为2,binpack.weight配置为5。Binpack对Node 1的打分信息如下:各资源按照公式计算得分,具体信息如下:CPU Score:CPU.weight * (request + used) / allocatable = 1 * (2 + 4)/ 8 = 0.75Memory Score:Memory.weight * (request + used) / allocatable = 1 * (4 + 8) / 16 = 0.75GPU Score: GPU.weight * (request + used) / allocatable = 2 * (4 + 4)/ 8 = 2节点总得分按照 binpack.weight * (CPU.score + Memory.score + GPU.score) / (CPU.weight+ Memory.weight+ GPU.weight) * 100 公式进行计算,具体如下:假设binpack.weight配置为5,Node 1在Binpack策略下的得分:5 * (0.75 + 0.75 + 2)/(1 + 1 + 2)* 100 = 437.5Binpack对Node 2的打分信息如下:CPU Score:CPU.weight * (request + used) / allocatable = 1 * (2 + 6)/ 8 = 1Memory Score:Memory.weight * (request + used) / allocatable = 1 * (4 + 8) / 16 = 0.75GPU Score:GPU.weight * (request + used) / allocatable = 2 * (4 + 4)/ 8 = 2Node 2在Binpack策略下的得分:5 * (1 + 0.75 + 2)/(1 + 1 + 2)* 100 = 468.754️⃣ 综上,Node 2得分大于Node 1,按照Binpack策略,Pod将会优先调度至Node 2。 配置装箱调度策略 安装Volcano后,Binpack策略默认生效。如果默认配置无法达到您降低资源碎片的目标,可以通过“配置中心 > 调度配置”页面自定义Binpack策略权重和各资源维度权重值,增加或降低Binpack策略在整体调度中的影响力。1、登录CCE控制台,单击集群名称进入集群。2、在左侧选择“配置中心”,在右侧选择“调度配置”页签。3、在“资源利用率优化调度”配置中,启用装箱策略 (binpack)。名称说明默认值装箱调度策略权重增大该权重值,可提高装箱策略在整体调度中的影响力。10CPU权重增大该权重值,优先提高集群CPU利用率。1内存权重增大该权重值,优先提高集群Memory利用率。1自定义资源类型指定Pod请求的其他自定义资源类型,例如nvidia.com/gpu。增大该权重值,优先提高指定资源的利用率。-4、图2 资源利用率优化调度5、修改完成后,单击“确认配置”。 📌 更多Volcano云原生批量计算 技术应用,请访问社区仓库或官网:Volcano云原生批量计算社区官网:https://volcano.shVolcano GitHub 仓库: cid:link_6Volcano云原生批量计算公开课:cid:link_4华为云云容器引擎CCE:cid:link_5 Volcano 是业界首个云原生批量计算引擎,也是 CNCF 首个和唯一的批量计算项目。项目主要用于 AI、大数据、基因、渲染等诸多高性能计算场景,对主流通用计算框架均有很好的支持。目前,Volcano在人工智能、大数据、基因测序等海量数据计算和分析场景已得到快速应用,已完成对 Spark、Flink、Ray、 Tensorflow、PyTorch、Argo、MindSpore、Paddlepaddle 、Kubeflow、MPI、Horovod、Mxnet、KubeGene 等众多主流计算框架的支持,并构建起完善的上下游生态。 更多云原生技术动向关注容器魔方
-
华为云云容器引擎CCE支持多种资源与任务调度策略,有助于提升应用性能和集群整体资源利用率,CPU资源调度、GPU/NPU异构资源调度以及Volcano调度的主要功能。本系列文章将介绍Volcano调度在华为云云容器引擎CCE中的运用。Volcano是一个基于Kubernetes的批处理平台,提供了机器学习、深度学习、生物信息学、基因组学及其他大数据应用所需要而Kubernetes当前缺失的一系列特性,提供了高性能任务调度引擎、高性能异构芯片管理、高性能任务运行管理等通用计算能力。一般情况下,Kubernetes在调度工作负载时会使用自带的默认调度器,若需要使用Volcano调度器的能力,您可以为工作负载指定调度器。关于Kubernetes调度器的详情请参见为Pod指定调度器。 约束与限制 调度大量工作负载的场景下,Volcano会打印较多的日志,建议搭配日志服务使用,否则可能导致日志过多占满所在节点磁盘。 使用Volcano调度工作负载 使用Volcano调度工作负载时,只需要在Pod的spec字段中设置schedulerName参数并指定参数值为volcano,示例如下:1、使用yaml创建queue:apiVersion: scheduling.volcano.sh/v1beta1kind: Queuemetadata: name: q1spec: reclaimable: true weight: 12、在Pod的spec字段中设置schedulerName参数并指定参数值为volcano:apiVersion: apps/v1kind: Deploymentmetadata: name: nginx labels: app: nginxspec: replicas: 4 selector: matchLabels: app: nginx template: metadata: annotations: # 指定作业到q1队列 scheduling.volcano.sh/queue-name: "q1" volcano.sh/preemptable: "true" labels: app: nginx spec: # 指定调度器为Volcano schedulerName: volcano containers: - name: nginx image: nginx imagePullPolicy: IfNotPresent resources: limits: cpu: 1 memory: 100Mi requests: cpu: 1 memory: 100Mi ports: - containerPort: 80 同时,Volcano还支持设置负载所属队列和抢占属性等,可通过Pod的注解实现。目前Volcano支持的Pod注解配置如下:Pod注解说明scheduling.volcano.sh/queue-name: "<queue-name>"指定负载所在队列,其中<queue-name>为队列名称。volcano.sh/preemptable: "true"表示作业是否可抢占。开启后,认为该作业可以被抢占。取值范围:true:开启抢占。(默认为开启状态)false:关闭抢占。 可通过查询Pod详情查看Pod是否由Volcano调度,以及被分配的队列:1、使用以下命令查询Pod详情并获取scheduling.k8s.io/group-name的值:kubectl describe pod <pod_name>Pod的scheduling.k8s.io/group-name值回显如下:2、查看Pod是否由Volcano调度,以及被分配的队列:kubectl describe pg <group_name>回显如下:Spec: Min Member: 1 Min Resources: Cpu: 100m Memory: 100Mi Queue: q1Status: Conditions: Last Transition Time: 2023-05-30T01:54:43Z Reason: tasks in gang are ready to be scheduled Status: True Transition ID: 70be1d7d-3532-41e0-8324-c7644026b38f Type: Scheduled Phase: RunningEvents: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 0s (x3 over 2s) volcano pod group is ready 📌 更多Volcano云原生批量计算社区运用,请访问社区仓库或官网:Volcano云原生批量计算社区:https://volcano.shVolcano GitHub: cid:link_2Volcano云原生批量计算公开课:cid:link_0华为云云容器引擎CCE:cid:link_1 Volcano 是业界首个云原生批量计算引擎,也是 CNCF 首个和唯一的批量计算项目。项目主要用于 AI、大数据、基因、渲染等诸多高性能计算场景,对主流通用计算框架均有很好的支持。目前,Volcano在人工智能、大数据、基因测序等海量数据计算和分析场景已得到快速应用,已完成对 Spark、Flink、Ray、 Tensorflow、PyTorch、Argo、MindSpore、Paddlepaddle 、Kubeflow、MPI、Horovod、Mxnet、KubeGene 等众多主流计算框架的支持,并构建起完善的上下游生态。 更多云原生技术动向关注容器魔方
-
Volcano 是一个基于Kubernetes的云原生批处理平台,提供了机器学习、深度学习、生物信息学、基因组学及其他大数据应用所需要而Kubernetes当前缺失的一系列特性,提供了高性能任务调度引擎、高性能异构芯片管理、高性能任务运行管理等通用计算能力。 Volcano Scheduler Volcano Scheduler是负责Pod调度的组件,它由一系列action和plugin组成。action定义了调度各环节中需要执行的动作;plugin根据不同场景提供了action 中算法的具体实现细节。Volcano Scheduler具有高度的可扩展性,您可以根据需要实现自己的action和plugin。图1 Volcano Scheduler工作流 Volcano Scheduler的工作流程如下:客户端提交的Job被调度器识别到并缓存起来。周期性开启会话,一个调度周期开始。将没有被调度的Job发送到会话的待调度队列中。遍历所有的待调度Job,按照定义的次序依次执行enqueue、allocate、preempt、reclaim、backfill等动作,为每个Job找到一个最合适的节点。将该Job 绑定到这个节点。action中执行的具体算法逻辑取决于注册的plugin中各函数的实现。关闭本次会话。 Volcano自定义资源 Pod组(PodGroup):Pod组是Volcano自定义资源类型,代表一组强关联Pod的集合,主要用于批处理工作负载场景,比如Tensorflow中的一组ps和worker。队列(Queue):容纳一组PodGroup的队列,也是该组PodGroup获取集群资源的划分依据。作业(Volcano Job,简称vcjob):Volcano自定义的Job资源类型。区别于Kubernetes Job,vcjob提供了更多高级功能,如可指定调度器、支持最小运行Pod数、 支持task、支持生命周期管理、支持指定队列、支持优先级调度等。Volcano Job更加适用于机器学习、大数据、科学计算等高性能计算场景。应用扩缩容优先级策略(Balancer与BalancerPolicyTemplate):开启Volcano应用扩缩容优先级策略后,将会在集群中新增两类CRD资源,其中BalancerPolicyTemplate用来进行优先级策略定义,Balancer用来申明扩缩容优先级的作用范围。一个Balancer CR资源对应一个BalancerPolicyTemplate CR资源,两者结合共同申明哪些工作负载使用了哪些优先级策略。详情请参见应用扩缩容优先级策略。 Volcano 是业界首个云原生批量计算引擎,也是 CNCF 首个和唯一的批量计算项目。项目主要用于 AI、大数据、基因、渲染等诸多高性能计算场景,对主流通用计算框架均有很好的支持。目前,Volcano在人工智能、大数据、基因测序等海量数据计算和分析场景已得到快速应用,已完成对 Spark、Flink、Ray、 Tensorflow、PyTorch、Argo、MindSpore、Paddlepaddle 、Kubeflow、MPI、Horovod、Mxnet、KubeGene 等众多主流计算框架的支持,并构建起完善的上下游生态。更多信息,请访问:Volcano云原生批量计算社区:https://volcano.shVolcano GitHub: cid:link_2Volcano云原生批量计算公开课:cid:link_0华为云云容器引擎CCE:cid:link_1 添加云原生小助手k8s2222进入技术交流群
-
📝摘要:Volcano云原生批量计算社区在业界率先提出网络拓扑感知调度(Network Topology Aware Scheduling)策略,通过统一的网络拓扑API和智能调度策略,解决大规模数据中心AI训练任务的网络通信性能问题,同时引入了基于节点标签(Label)的 超节点HyperNode 自动发现机制。该功能为用户提供了一种通用且灵活的方式来描述网络拓扑,将复杂的拓扑管理工作转变为简单的节点标签管理,确保在复杂工作负载管理中的实用性和易用性,为AI时代的基础设施提供关键调度支撑。Volcano (https://volcano.sh)是业界首个云原生批量计算引擎,也是 CNCF 首个和唯一的批量计算项目。作为云原生批量计算领域的事实标准,Volcano已经在AI、大数据及高性能计算 (HPC) 等多种场景中获得广泛应用,吸引了来自30多个国家的800多名贡献者,累计代码提交数万次。Volcano已在国内外60+企业进行了生产落地,赢得了用户的广泛赞誉,为业界提供了云原生批量计算的卓越实践标准与解决方案。本文解析Volcano社区的网络拓扑感知调度能力。早在2025年1月Volcano社区发布的v1.11版本中,社区聚焦AI与大数据的核心需求,推出网络拓扑感知调度、多集群AI作业调度等重磅特性,显著提升AI训练与推理任务的性能。同时,在离线混部与动态资源超卖及负载感知重调度功能进一步优化资源利用率,确保在线业务的高可用性。此外,弹性层级队列为大数据场景提供了更灵活的调度策略。 网络拓扑感知调度:优化AI大模型训练性能 在AI大模型训练场景中,模型并行(Model Parallelism)将模型分割到多个节点上,训练过程中这些节点需要频繁进行大量数据交互。此时,节点间的网络传输性能往往成为训练的瓶颈,显著影响训练效率。数据中心的网络类型多样,如InfiniBand (IB)、RoCE、NVSwitch等,且网络拓扑复杂,通常包含多层交换机。两个节点间跨的交换机越少,通信延迟越低,吞吐量越高。因此,用户希望将工作负载调度到具有最高吞吐量和最低延迟的最佳性能域,尽可能减少跨交换机的通信,以加速数据交换,提升训练效率。为此,Volcano提出了网络拓扑感知调度(Network Topology Aware Scheduling)策略,通过统一的网络拓扑API和智能调度策略,解决大规模数据中心AI训练任务的网络通信性能问题。▍统一的网络拓扑API:精准表达网络结构为了屏蔽数据中心网络类型的差异,Volcano定义了新的CRD HyperNode来表示网络拓扑,提供了标准化的API接口。与传统的通过节点标签(label)表示网络拓扑的方式相比,HyperNode具有以下优势:语义统一:HyperNode提供了标准化的网络拓扑描述方式,避免了标签方式的语义不一致问题。层级结构:HyperNode支持树状层级结构,能够更精确地表达实际的网络拓扑。易于管理:集群管理员可以手动创建HyperNode,或通过网络拓扑自动发现工具维护HyperNode。一个HyperNode表示一个网络拓扑性能域,通常映射到一个交换机。多个HyperNode通过层级连接,形成树状结构。例如,下图展示了由多个HyperNode构成的网络拓扑:叶子HyperNode(s0、s1、s2、s3):子节点为集群中的真实节点。非叶子HyperNode(s4、s5、s6):子节点为其他HyperNode。在这种结构中,节点间的通信效率取决于它们之间的HyperNode层级跨度。例如:node0和node1同属于s0,通信效率最高。node1和node2需要跨两层HyperNode(s0→s4→s1),通信效率较低。node0和node4需要跨三层HyperNode(s0→s4→s6),通信效率最差。💬 HyperNode配置示例以下是一个叶子HyperNode和非叶子HyperNode的配置示例:💬 叶子HyperNode示例:apiVersion: topology.volcano.sh/v1alpha1kind: HyperNodemetadata: name: s0spec: tier: 1 # HyperNode层级,层级越低通信效率越高 members: # 子节点列表 - type: Node # 子节点类型为Node selector: exactMatch: # 精确匹配 name: node-0 - type: Node selector: regexMatch: # 正则匹配 pattern: node-[01]💬 非叶子HyperNode示例:apiVersion: topology.volcano.sh/v1alpha1kind: HyperNodemetadata: name: s6spec: tier: 3 # HyperNode层级 members: # 子节点列表 - type: HyperNode # 子节点类型为HyperNode selector: exactMatch: # 精确匹配 name: s4 - type: HyperNode selector: exactMatch: name: s5▍ 基于网络拓扑的感知调度策略Volcano Job和PodGroup可以通过 networkTopology 字段设置作业的拓扑约束,支持以下配置:mode:支持 hard 和 soft 两种模式。hard:硬约束,作业内的任务必须部署在同一个HyperNode内。soft:软约束,尽可能将作业部署在同一个HyperNode下。highestTierAllowed:与 hard 模式配合使用,表示作业允许跨到哪层HyperNode部署。例如,以下配置表示作业只能部署在2层及以下的HyperNode内(如s4或s5),否则作业将处于Pending状态:spec: networkTopology: mode: hard highestTierAllowed: 2通过这种调度策略,用户可以精确控制作业的网络拓扑约束,确保作业在满足条件的最佳性能域运行,从而显著提升训练效率。 网络拓扑感知调度 (Alpha Release) 在Volcano v1.12 中, 网络拓扑感知调度功能达到 Alpha 发布状态。此功能旨在优化大规模训练和推理场景(如模型并行训练、Leader-Worker 推理)中 AI 任务的部署。它通过将任务调度到同一网络拓扑性能域内,减少跨交换机通信,从而显著提升任务效率。Volcano 使用 超节点HyperNode CRD 来抽象和表示异构硬件网络拓扑,并支持层级结构以方便管理。v1.12 版本集成了以下关键特性:Volcano超节点 HyperNode 自动发现 (HyperNode Auto-Discovery): Volcano 提供了集群网络拓扑的自动发现能力。用户可配置发现类型,系统将自动创建和维护反映集群真实网络拓扑的层级 HyperNode。目前支持 InfiniBand (IB) 网络下通过 UFM (Unified Fabric Manager) 接口获取网络拓扑信息,并自动更新 HyperNode。未来计划支持 RoCE 等更多网络协议。 Volcano超节点 HyperNode 优选策略 (Prioritized HyperNode Selection): 引入了基于节点级别和 HyperNode 级别的打分策略,累加后作为 HyperNode 的最终得分。 节点级别 (Node-level): 建议配置 BinPack 插件以优先填满 HyperNode,减少资源碎片。 超节点HyperNode 级别 (HyperNode-level): 优先选择层级更低的 HyperNode 以获得更优性能,因其涉及的跨交换机次数较少;对于相同层级的 HyperNode,包含更多任务的 HyperNode 得分更高,旨在减少 HyperNode 级别的资源碎片。 支持通过 Label Selector 匹配节点 (Support for Label Selector Node Matching): HyperNode 叶子节点与集群中的物理节点关联,支持以下三种匹配策略: 精确匹配 (Exact Match): 直接匹配节点名称。 正则匹配 (Regex Match): 通过正则表达式匹配节点名称。 标签匹配 (Label Match): 通过标准 Label Selector 匹配节点。 Volcano v1.13 提供更灵活的网络拓扑发现机制 Volcano v1.13 提供更灵活的网络拓扑发现机制,并增强对主流AI计算框架的兼容性。继v1.12 版本中正式推出了网络拓扑感知调度能力,并率先实现了基于 InfiniBand (IB) 网络的 UFM 自动发现机制后,v1.13版本引入了基于节点标签(Label)的 超节点HyperNode 自动发现机制。该功能为用户提供了一种通用且灵活的方式来描述网络拓扑,将复杂的拓扑管理工作转变为简单的节点标签管理。该机制允许用户在 volcano-controller-configmap 中定义拓扑层级与节点标签的对应关系。Volcano 控制器会周期性地扫描集群中的所有节点,并根据其标签自动完成以下工作:自动构建拓扑:根据节点上的一组标签,从上至下(例如:机架 -> 交换机 -> 节点)自动构建出多层 HyperNode 拓扑结构。动态维护:当节点的标签发生变化,或节点被添加、移除时,控制器会自动更新 HyperNode 的成员和结构,确保拓扑信息始终与集群状态保持一致。支持多种拓扑类型:允许用户同时定义多种独立的网络拓扑,以适应不同的硬件集群(如 GPU 集群、NPU 集群等)或不同的网络分区。💬 配置示例:# volcano-controller-configmap.yamlapiVersion: v1kind: ConfigMapmetadata: name: volcano-controller-configmap namespace: volcano-systemdata: volcano-controller.conf: | networkTopologyDiscovery: - source: label enabled: true interval: 10m # 发现周期 config: networkTopologyTypes: # 定义一个名为 topology-A 的拓扑类型 topology-A: # 定义拓扑层级,顺序从上到下 - nodeLabel: "volcano.sh/hypercluster"# 顶层 HyperNode - nodeLabel: "volcano.sh/hypernode" # 中间层 HyperNode - nodeLabel: "kubernetes.io/hostname"# 底层物理节点 通过在 Volcano 控制器的 ConfigMap 中添加 label 源即可启用此功能。以下配置定义了一个名为 topology-A 的三层拓扑结构:顶层 (Tier 2) :由 volcano.sh/hypercluster 标签定义。中间层 (Tier 1) :由 volcano.sh/hypernode 标签定义。底层 :物理节点,由 Kubernetes 内置的 kubernetes.io/hostname 标签标识。当一个节点被打上如下标签时,它将被自动识别并归入 cluster-s4 -> node-group-s0 的拓扑路径下:# 节点 node-0 的标签labels: kubernetes.io/hostname: node-0 volcano.sh/hypernode: node-group-s0 volcano.sh/hypercluster: cluster-s4基于label的网络拓扑自动发现功能具有出色的通用性与灵活性,不依赖于特定的网络硬件(如 IB),因此适用于各类异构集群,并允许用户通过标签灵活定义任意深度的层级结构。它将复杂的拓扑维护工作转变为简单的节点标签管理,实现了自动化,从而显著降低运维成本和出错风险。此外,该机制能够动态适应集群节点和标签的变化,无需人工干预即可实时保持拓扑信息的准确性。📌 使用文档请参考:HyperNode Auto Discovery:cid:link_0相关PR:cid:link_1▍将网络拓扑感知调度能力扩展至 Kubernetes 标准工作负载在Volcano v1.13 版本中,Volcano 的网络拓扑感知调度能力不再局限于 Volcano Job。现在,也可以为 Kubernetes 的标准工作负载(如 Deployment、StatefulSet 等)配置网络拓扑约束。该功能通过 Pod 模板中的注解(Annotation)实现。当为 Deployment 或 StatefulSet 的 Pod 模板添加网络拓扑相关的注解后,Volcano 的 podgroup-controller 会自动为这些 Pod 创建一个PodGroup,并将注解中定义的网络拓扑约束继承到 PodGroup 的规约(Spec)中,从而在调度时应用相应的网络亲和性策略。可以通过以下两个注解来配置网络拓扑感知调度:Annotation Key描述示例值topology.volcano.sh/network-topology-mode定义网络拓扑约束的模式。hard 表示强制约束,Pod 必须满足拓扑要求才能被调度;soft 表示软约束,调度器会尽量满足,但不强制。默认为 hard。"hard"topology.volcano.sh/network-topology-highest-tier指定允许调度的最高网络层级。例如,设置为 "2" 表示 Pod 可以被调度到 2层及以下的HyperNode上,但不能调度到更高层级的HyperNode。"2"💬 Deployment 配置示例以下示例展示了如何为一个 Deployment 配置网络拓扑感知调度。调度器将把该 Deployment 的 Pod 调度到网络层级不超过 2 的节点上:apiVersion: apps/v1kind: Deploymentmetadata: name: network-aware-deploymentspec: replicas: 3 selector: matchLabels: app: my-app template: metadata: labels: app: my-app annotations: # 设置网络拓扑为硬约束 topology.volcano.sh/network-topology-mode: "hard" # 设置允许调度的最高网络层级为 2 topology.volcano.sh/network-topology-highest-tier: "2" spec: # 必须指定调度器为 volcano schedulerName: volcano containers: - name: main-container image: nginx:latest resources: requests: cpu: "1" memory: "1Gi" limits: cpu: "1" memory: "1Gi"Volcano社区网络拓扑感知调度能力大大提升了Volcano在复杂工作负载管理中的实用性和易用性,为AI时代的基础设施提供关键调度支撑。更多Volcano社区网络拓扑感知调度能力,可以访问🔗社区地址:cid:link_2 更多云原生技术动向关注容器魔方
-
北京时间2025年9月29日,Volcano v1.13 版本[1]正式发布。本次更新在多方面进行了功能增强,为用户提供更完善的云原生批量计算解决方案。新版本主要亮点包括:新增对大模型推理LWS的支持;新增定时任务管理能力;提供更灵活的网络拓扑发现机制,并增强对主流AI计算框架的兼容性。同时在混部架构上实现了重要改进,提升了在不同环境中的部署灵活性。这些增强功能共同提升了Volcano[2]在复杂工作负载管理中的实用性和易用性,旨在打造更高效、更稳定的大规模计算平台,为AI时代的基础设施提供关键调度支撑。 大模型推理场景支持 LeaderWorkerSet LeaderWorkerSet (LWS)[3] 是一个用于在 Kubernetes 上部署一组 Pod 的 API。它主要用于解决 AI/ML 推理工作负载中的多主机推理,尤其是需要将大型语言模型(LLM)分片并跨多个节点上的多个设备运行的场景。Volcano自开源以来,积极与上下游生态进行集成,构建了完善的AI、大数据等批量计算社区生态,LWS在 v0.7[4]的版本中,原生集成了Volcano的AI调度能力,配合Volcano的新版本,用户在使用LWS时,可自动创建PodGroup,由Volcano进行Pod的调度与资源管理,从而实现了大模型推理场景下的Gang调度等高阶能力。展望未来,Volcano 将继续扩展其生态系统集成能力,为更多致力于在 Kubernetes 上实现分布式推理的项目提供强大的调度和资源管理支持。使用文档请参考:LeaderWorkerSet With Gang[5]相关PRs:cid:link_12 cid:link_13由衷感谢社区开发者:@JesseStutler 对该特性的贡献! 新增 Cron Volcano Job 该版本引入了对 Cron Volcano Job 的支持,用户可以像使用原生 Kubernetes CronJob 一样,按预定的时间计划(schedule)来周期性地创建和运行 Volcano Job,以实现周期性运行AI、大数据等批量计算任务。详细功能如下:定时调度:通过标准的 Cron 表达式(spec.schedule)定义作业的执行周期。时区支持:支持在 spec.timeZone 中设置时区,以确保作业在预期的本地时间执行。并发策略:通过 spec.concurrencyPolicy 控制并发行为:AllowConcurrent:允许并发运行多个作业(默认)。ForbidConcurrent:如果前一个作业尚未完成,则跳过本次调度。ReplaceConcurrent:如果前一个作业仍在运行,则终止它并启动新的作业。历史记录管理:可配置保留成功(successfulJobsHistoryLimit)和失败(failedJobsHistoryLimit)的作业历史记录数量,自动清理旧的作业。错过调度处理:通过 startingDeadlineSeconds 字段,可以容忍一定时间内的调度延迟,超时则视为错过执行。状态追踪:CronJob 的状态(status)会追踪当前活跃的作业、上一次调度时间以及上一次成功完成的时间,便于监控和管理。使用例子请参考:Cron Volcano Job Example[6]相关PRs:cid:link_24 cid:link_14由衷感谢社区开发者:@GoingCharlie, @hwdef, @Monokaix 对该特性的贡献! 支持基于 Label 的 HyperNode 自动发现机制 Volcano 在 v1.12 版本中正式推出了网络拓扑感知调度能力,并率先实现了基于 InfiniBand (IB) 网络的 UFM 自动发现机制。然而,对于不支持 IB 网络或采用其他网络架构的硬件集群(如以太网),手动维护网络拓扑结构依然繁琐。为解决这一问题,新版本引入了基于节点标签(Label)的 HyperNode 自动发现机制。该功能为用户提供了一种通用且灵活的方式来描述网络拓扑,将复杂的拓扑管理工作转变为简单的节点标签管理。该机制允许用户在 volcano-controller-configmap 中定义拓扑层级与节点标签的对应关系。Volcano 控制器会周期性地扫描集群中的所有节点,并根据其标签自动完成以下工作:自动构建拓扑:根据节点上的一组标签,从上至下(例如:机架 -> 交换机 -> 节点)自动构建出多层 HyperNode 拓扑结构。动态维护:当节点的标签发生变化,或节点被添加、移除时,控制器会自动更新 HyperNode 的成员和结构,确保拓扑信息始终与集群状态保持一致。支持多种拓扑类型:允许用户同时定义多种独立的网络拓扑,以适应不同的硬件集群(如 GPU 集群、NPU 集群等)或不同的网络分区。配置示例:# volcano-controller-configmap.yamlapiVersion: v1kind: ConfigMapmetadata: name: volcano-controller-configmap namespace: volcano-systemdata: volcano-controller.conf: | networkTopologyDiscovery: - source: label enabled: true interval: 10m # 发现周期 config: networkTopologyTypes: # 定义一个名为 topology-A 的拓扑类型 topology-A: # 定义拓扑层级,顺序从上到下 - nodeLabel: "volcano.sh/hypercluster"# 顶层 HyperNode - nodeLabel: "volcano.sh/hypernode" # 中间层 HyperNode - nodeLabel: "kubernetes.io/hostname"# 底层物理节点 通过在 Volcano 控制器的 ConfigMap 中添加 label 源即可启用此功能。以下配置定义了一个名为 topology-A 的三层拓扑结构:顶层 (Tier 2) :由 volcano.sh/hypercluster 标签定义。中间层 (Tier 1) :由 volcano.sh/hypernode 标签定义。底层 :物理节点,由 Kubernetes 内置的 kubernetes.io/hostname 标签标识。当一个节点被打上如下标签时,它将被自动识别并归入 cluster-s4 -> node-group-s0 的拓扑路径下:# 节点 node-0 的标签labels: kubernetes.io/hostname: node-0 volcano.sh/hypernode: node-group-s0 volcano.sh/hypercluster: cluster-s4基于label的网络拓扑自动发现功能具有出色的通用性与灵活性,不依赖于特定的网络硬件(如 IB),因此适用于各类异构集群,并允许用户通过标签灵活定义任意深度的层级结构。它将复杂的拓扑维护工作转变为简单的节点标签管理,实现了自动化,从而显著降低运维成本和出错风险。此外,该机制能够动态适应集群节点和标签的变化,无需人工干预即可实时保持拓扑信息的准确性。使用文档请参考:HyperNode Auto Discovery[7]相关PR:cid:link_15由衷感谢社区开发者:@zhaoqi612 对该特性的贡献! 原生支持 Ray 框架 Ray是一个开源的统一分布式计算框架,其核心目标是简化从单机到大规模集群的并行计算,特别适合扩展Python和AI应用。为了在Kubernetes上管理和运行Ray,社区提供了KubeRay——一个专为Kubernetes设计的Operator,它充当了Kubernetes和Ray框架之间的桥梁,极大地简化了Ray集群和作业的部署与管理。一直以来,在Kubernetes上运行Ray工作负载主要依赖于KubeRay Operator,同时Kuberay在v0.4.0 (2022年release) 版本已经集成了Volcano来进行Ray Cluster的调度和资源管理,以解决分布式训练场景的资源死锁等问题。现在,通过新版本的Volcano,用户可以直接通过原生Volcano Job来创建和管理Ray集群,并提交计算任务。这为Ray用户提供了另一种使用方案,可以更直接地使用Volcano的Gang Scheduling、队列管理与公平调度、作业生命周期管理等能力来运行Ray工作负载。相关PR: cid:link_16设计文档请参考: Ray Design Doc[8]使用文档请参考: Ray User Guide[9]由衷感谢社区开发者:@Wonki4 对该特性的贡献! 新增 HCCL 插件支持 新版本在Volcano Job中增加了分布式AI训练场景需要的HCCL Rank 插件(hcclrank),用于在分布式任务中自动为 Pod 分配 HCCL Rank。具体包括:新增 Volcano Job的hcclrank 插件实现,支持通过任务类型(master/worker)和索引自动计算并注入 HCCL Rank 到 Pod 注解。插件支持自定义 master/worker 任务名,用户可以指定分布式任务的master/worker角色。该功能提升了 Volcano 在华为昇腾等 HCCL 通信场景下的原生支持,方便用户在 AI 训练任务中自动管理和分配 Rank。相关PR:cid:link_27/pull/4524由衷感谢社区开发者:@kingeasternsun 对该特性的贡献! 增强 NodeGroup 功能 在层级队列结构中,为每个子队列重复配置与其父队列相同的节点组亲和性(nodeGroupAffinity)会导致配置冗余且难以维护。为解决此问题,Nodegroup 插件新增了对层级队列亲和性的继承支持。启用后,调度器将遵循以下规则解析队列的有效亲和性:优先自身配置:若队列已定义 spec.affinity,则直接使用该配置。向上继承:若队列未定义 spec.affinity,则沿其父级向上查找,并继承最近的祖先队列所定义的亲和性配置。覆盖能力:子队列可通过定义自身的 spec.affinity 来覆盖继承的配置,保证了灵活性。此功能允许管理员在父队列(如部门级别)设置统一的节点组亲和性,其下的所有子队列(如团队级别)将自动继承该设置,从而简化了管理。同时对于未设置NodeAffinity的队列,用户可以在插件配置中设置"strict"参数来决定调度行为。当 strict 为 true(默认值)时,这些队列的任务将无法被调度到任何节点上。当 strict 设置为 false 时,这些任务则被允许调度到未设置 "volcano.sh/nodegroup-name" 标签的普通节点上。在调度配置文件的 nodegroup 插件参数中,设置 enableHierarchy: true可开启层级队列模式,设置strict为false可设置non-strict模式,示例配置如下:actions: "allocate, backfill, preempt, reclaim"tiers:- plugins: - name: nodegroup enableHierarchy: true# 启用层级队列 arguments: strict: false# 设置为non-strict模式,队列内任务可以被调度到不包含"volcano.sh/nodegroup-name"标签的节点上相关PRs:cid:link_27/pull/4455 cid:link_17NodeGroup设计文档请参考:NodeGroup Design[10]NodeGroup使用文档请参考: NodeGroup User Guide[11]由衷感谢社区开发者:@JesseStutler , @wuyueandrew 对该特性的贡献! 新增 ResourceStrategyFit 插件 在 Kubernetes 原生的 noderesources 调度策略中,只能对所有资源应用单一的聚合(MostAllocated)或分散(LeastAllocated)策略。这在复杂的异构计算环境(如 AI/ML 集群)中存在局限性。为了满足差异化调度需求,Volcano 增强提出了 ResourceStrategyFit 插件,以应对更加复杂的场景。该插件现在集成了两大核心功能:按资源类型配置独立策略以及稀缺资源规避(SRA)。▍按资源类型的独立打分策略 此功能允许用户为不同的资源(如 cpu, memory, nvidia.com/gpu)分别指定 MostAllocated(聚合)或 LeastAllocated(分散)策略,并为其分配不同权重。调度器会根据每个资源的独立配置精细化计算节点得分。为了简化对同一系列资源(如来自同一供应商的不同型号 GPU)的管理,该功能还支持资源名称的后缀通配符(*)匹配。语法规则:仅支持后缀通配符,例如 nvidia.com/gpu/*。诸如 vendor./gpu 等模式将被视为无效。匹配优先级:采用“最长前缀匹配”原则。精确匹配的优先级最高;当没有精确匹配时,将选择前缀最长的通配符模式。配置示例: 以下配置为特定型号的 V100 GPU 设置了高优先级的聚合策略,为所有其他 NVIDIA GPU 设置了通用的聚合策略,同时为 CPU 资源配置了分散策略。actions: "enqueue, allocate, backfill, reclaim, preempt"tiers:- plugins: - name: resource-strategy-fit arguments: resourceStrategyFitWeight: 10 resources: # 精确匹配,最高优先级 nvidia.com/gpu-v100: type: MostAllocated weight: 3 # 通配符匹配,适用于其他所有 NVIDIA GPU nvidia.com/gpu/*: type: MostAllocated weight: 2 # 精确匹配,用于 CPU 资源 cpu: type: LeastAllocated weight: 1同时ResourceStrategyFit 插件也支持设置Pod粒度的资源打分策略。主要通过以下两个注解进行设置:volcano.sh/resource-strategy-scoring-type: 指定该 Pod 的资源调度策略,可选值为 "LeastAllocated"(优先调度到资源使用率最低的节点)或 "MostAllocated"(优先调度到资源使用率最高的节点)。volcano.sh/resource-strategy-weight: 以 JSON 格式为不同的资源(如 CPU、内存、GPU 等)设置自定义的调度权重,以影响最终的节点评分。以下示例展示了如何为一个 Volcano Job 配置 Pod 粒度的资源调度策略:apiVersion: batch.volcano.sh/v1alpha1kind: Jobmetadata: name: resource-strategy-jobspec: minAvailable: 2 schedulerName: volcano tasks: - replicas: 2 name: worker template: metadata: annotations: # 为该任务的 Pod 设置调度策略为 LeastAllocated volcano.sh/resource-strategy-scoring-type: "LeastAllocated" # 为 CPU 和内存资源设置不同的调度权重 volcano.sh/resource-strategy-weight: '{"cpu": 2, "memory": 1}' spec: containers: - name: worker image: my-worker:latest resources: requests: cpu: "2" memory: "4Gi" limits: cpu: "2" memory: "4Gi" restartPolicy: Never在这个例子中,worker 任务下的所有 Pod 在调度时将遵循 LeastAllocated 策略。在计算节点分数时,CPU 的权重是 2,内存的权重是 1。这意味着调度器会更倾向于将 Pod 调度到 CPU 和内存空闲资源(根据权重加权后)更多的节点上。▍稀缺资源规避(Scarce Resource Avoidance, SRA)SRA 是一项“软”策略,旨在提高昂贵或稀缺资源(如 GPU)的整体利用率。它通过影响节点评分,引导那些不需要特定稀缺资源的普通任务(如纯 CPU 任务)尽量避开包含这些资源的节点。这样可以将稀缺资源节点“预留”给真正需要它们的任务,从而减少资源竞争和任务等待时间。工作机制:1. 用户在配置中定义一组“稀缺资源”(如 nvidia.com/gpu)。2. 当调度一个不请求任何已定义稀缺资源的 Pod 时,SRA 策略会生效。3. 调度器会降低那些拥有这些稀缺资源的节点的得分。节点上存在的稀缺资源种类越多,其得分就越低。4. 对于那些请求了稀缺资源的 Pod,SRA 策略不会对其调度决策产生负面影响。配置示例:以下配置将 nvidia.com/gpu 定义为稀缺资源。当调度纯 CPU 任务时,拥有 GPU 的节点得分会降低,从而使任务更倾向于被调度到没有 GPU 的节点上。actions: "enqueue, allocate, backfill, reclaim, preempt"tiers:- plugins: - name: resource-strategy-fit arguments: # ... resourceStrategyFit 的聚合/分散策略配置 ... resources: nvidia.com/gpu: type: MostAllocated weight: 2 cpu: type: LeastAllocated weight: 1 # SRA 策略配置 sra: enable: true resources: "nvidia.com/gpu"# 定义稀缺资源列表,逗号分隔 weight: 10 # SRA 策略在总分中的权重 resourceWeight: nvidia.com/gpu: 1 # 定义 nvidia.com/gpu 为稀缺资源及其权重通过将 ResourceStrategyFit 的聚合/分散策略与 SRA 的规避策略相结合,用户可以实现更精细、更高效的异构资源调度。关于ResourceStrategyFit设计和使用文档,请参考:ResourceStrategyFit[12],how to use resource strategy fit plugin[13]相关PRs:cid:link_18 cid:link_19 cid:link_20由衷感谢社区开发者:@LY-today, @XbaoWu, @ditingdapeng, @kingeasternsun对该特性的贡献! 实现混部与 OS 解耦 Volcano 混部能力分为应用态和内核态两部分,应用态混部提供在离线统一调度、动态资源超卖、节点压力驱逐等能力,内核态混部分为内核层面的CPU/Memory/Network等资源的QoS保障,内核态混部能力通常需要特性OS支持(如OpenEuler等)。在新版本中,Volcano将混部能力与OS进行了解耦,对于使用了不支持混部能力的OS的用户来讲,可以选择使用Volcano应用态的混部能力,来达到在离线任务统一调度、动态资源超卖、高优任务保障等能力。具体使用方式如下,在安装Volcano agent时指定--supported-features参数:helm install volcano . --create-namespace -n volcano-system --set custom.colocation_enable=true --set"custom.agent_supported_features=OverSubscription\,Eviction\,Resources"混部相关文档请参考:https://volcano.sh/en/docs/colocation/相关PRs:cid:link_27/pull/4409 cid:link_21由衷感谢社区开发者:@ShuhanYan, @Monokaix 对该特性的贡献! 支持自定义混部超卖资源名称 Vocano混部Agent新增参数 --extend-resource-cpu-name 和 --extend-resource-memory-name,允许用户自定义超卖资源名称,支持自定义设置 CPU 和内存资源的名称(默认分别为 kubernetes.io/batch-cpu 和 kubernetes.io/batch-memory)。提升了超卖资源名称设置的灵活性。具体使用方式如下,在安装Volcano时指定--extend-resource-cpu-name和--extend-resource-memory-name参数:helm install volcano . --create-namespace -n volcano-system --set custom.colocation_enable=true --set custom.agent_extend_resource_cpu_name=example.com/cpu --set custom.agent_extend_resource_memory_name=example.com/gpu混部相关文档请参考:https://volcano.sh/en/docs/colocation/相关PRs:cid:link_22 cid:link_21由衷感谢社区开发者:@ShuhanYan, @Monokaix 对该特性的贡献! 将网络拓扑感知调度能力扩展至 Kubernetes 标准工作负载 在新版本中,Volcano 的网络拓扑感知调度能力不再局限于 Volcano Job。现在,也可以为 Kubernetes 的标准工作负载(如 Deployment、StatefulSet 等)配置网络拓扑约束。该功能通过 Pod 模板中的注解(Annotation)实现。当为 Deployment 或 StatefulSet 的 Pod 模板添加网络拓扑相关的注解后,Volcano 的 podgroup-controller 会自动为这些 Pod 创建一个PodGroup,并将注解中定义的网络拓扑约束继承到 PodGroup 的规约(Spec)中,从而在调度时应用相应的网络亲和性策略。可以通过以下两个注解来配置网络拓扑感知调度:Deployment 配置示例以下示例展示了如何为一个 Deployment 配置网络拓扑感知调度。调度器将把该 Deployment 的 Pod 调度到网络层级不超过 2 的节点上:apiVersion: apps/v1kind: Deploymentmetadata: name: network-aware-deploymentspec: replicas: 3 selector: matchLabels: app: my-app template: metadata: labels: app: my-app annotations: # 设置网络拓扑为硬约束 topology.volcano.sh/network-topology-mode: "hard" # 设置允许调度的最高网络层级为 2 topology.volcano.sh/network-topology-highest-tier: "2" spec: # 必须指定调度器为 volcano schedulerName: volcano containers: - name: main-container image: nginx:latest resources: requests: cpu: "1" memory: "1Gi" limits: cpu: "1" memory: "1Gi"相关PRs:cid:link_27/pull/4583cid:link_25由衷感谢社区开发者:@zhifei92 对该特性的贡献! 适配 Kubernetes 1.33 Volcano 版本紧随 Kubernetes 社区版本。v1.13 支持最新的 Kubernetes v1.33 版本,并通过完整的 UT 和 E2E 测试用例确保功能和可靠性。如需参与 Volcano 对新 Kubernetes 版本的适配工作,请参考:adapt-k8s-todo[14]。相关PR:cid:link_23由衷感谢社区开发者:@mahdikhashan 对该特性的贡献! 致谢贡献者 Volcano v1.13 版本包含了来自 36 位社区贡献者的上百次代码提交,在此对各位贡献者表示由衷的感谢,贡献者 GitHub ID:相关链接[1]Volcano v1.13版本: cid:link_10[2]Volcano: https://volcano.sh/en/[3]LeaderWorkerSet (LWS): cid:link_26[4]LWS v0.7: cid:link_11[5]LeaderWorkerSet With Gang: cid:link_6[6]Cron Volcano Job Example: cid:link_8[7]HyperNode Auto Discovery: cid:link_1[8]Ray Design Doc: cid:link_4[9]Ray User Guide: cid:link_5[10]NodeGroup Design: cid:link_9[11]NodeGroup User Guide: cid:link_3[12]ResourceStrategyFit: cid:link_2[13]how to use resource strategy fit plugin: cid:link_0[14]adapt-k8s-todo: cid:link_7Volcano 是业界首个云原生批量计算引擎,也是 CNCF 首个和唯一的批量计算项目。项目主要用于 AI、大数据、基因、渲染等诸多高性能计算场景,对主流通用计算框架均有很好的支持。目前,Volcano在人工智能、大数据、基因测序等海量数据计算和分析场景已得到快速应用,已完成对 Spark、Flink、Ray、 Tensorflow、PyTorch、Argo、MindSpore、Paddlepaddle 、Kubeflow、MPI、Horovod、Mxnet、KubeGene 等众多主流计算框架的支持,并构建起完善的上下游生态。Website:https://volcano.shGitHub: cid:link_27每周例会:https://zoom.us/j/91804791393 添加社区小助手回复“Volcano”进入技术交流群
-
9 月 13-14 日,GOSIM HANGZHOU 2025 大会将在杭州隆重启幕。本次大会由 GOSIM 全球开源创新汇主办、CSDN 承办,以国际化、社区化、强互动为特色,深入聚焦开源与 AI 的前沿技术与跨界创新。继中国上海、荷兰代尔夫特、中国北京、法国巴黎之后,GOSIM Hangzhou 2025是该系列活动的第五站,即将在西湖之畔点燃新一轮创新热情。大会汇聚来自全球超过 1500 名一线开源开发者和 100 多位海内外资深专家,带来 100 余场高质量技术分享。华为云云原生开源技术专家将在AI 模型 × 基础设施、端侧 AI 工作坊、互动展区等会场带来议题演讲与技术讲解,深度探讨云原生技术创新和产业实践,欢迎现场交流。 议 题 1 议题:赋能云原生AI:基于Volcano调度器破解大规模语言模型部署难题论坛:AI 模型 × 基础设施时间地点:9月13日 15:00 - 15:20(Room 338,3F)讲师:Zicong Chen,华为云研发工程师, Volcano Reviewer, lws Contributor议题简介:随着大型语言模型(LLM)的规模化,多节点分布式训练与推理已成为必然。然而,这带来了双重挑战:首先,在默认调度器下,由LeaderWorkerSet等工具管理的分布式作业,因无法进行“成组调度”而常陷入资源死锁。其次,现代AI集群复杂的网络拓扑对通用调度器是不可见的,常因任务组被分散调度而导致通信效率低下,影响性能。本次分享将深入介绍基于Volcano的解决方案。我们将演示Volcano如何通过其原生的Gang Scheduling能力解决死锁问题,并通过一个实际案例,展示新版LWS是如何自动创建PodGroup来无缝集成。更进一步,我们将介绍Volcano提出的HyperNode(超节点)统一拓扑抽象。调度器通过HyperNode来理解底层的复杂网络结构,并根据作业提交时指定的约束,将其精准地调度到符合要求的特定网络拓扑性能域中,确保最佳性能。同时,本议题还将介绍实际案例,并探讨子组级别(sub-group level)拓扑感知调度、多集群网络拓扑感知调度,自动化网络拓扑感知等持续发展方向。 议 题 2 议题:边缘 AI:探索 KubeEdge 的可能性与价值论坛:边缘 AI 工作坊时间地点:9月13日 16:30 - 16:55(Room B01,B1)讲师:Yue Bao,华为云高级工程师, KubeEdge Maintainer议题简介:边缘 AI 通过在本地处理数据实现实时、低延迟推理,从而解锁各行各业的变革性应用。随着云原生技术的进步,边缘 AI 正在发展成为强大的云边协同范式,支持在边缘和云之间动态编排 AI 工作负载,从而优化性能、准确性和隐私。KubeEdge 的分布式边云协同 AI 框架 Sedna 支持在边缘和云环境中无缝部署 AI 模型。在本次演讲中,我们将探讨 KubeEdge 如何利用 Sedna 在边缘实现高效的推理和自动化。 云原生展区 同时,华为云云原生开源技术专家也将在展区(杭州市西湖区珊瑚沙东路9号白金汉爵大酒店二楼·云原生展位)与大家面对面交流KubeEdge、Volcano、Karmada、Kmesh、Kuasar等项目技术应用与产品最新实践。添加社区小助手k8s2222,提前关注展区有奖互动。 容器魔方小助手GOSIM HANGZHOU 2025 不仅是技术交流的平台,更是智能时代科技变革的重要契机。全球顶尖技术领袖、前沿企业与开源社区将齐聚一堂,重量级项目集中亮相,前沿思想碰撞迸发,技术与实践成果深度分享,共同呈现一场高规格、高密度、高能量的科技盛会。更多精彩内容及参会方式,请关注大会官网。大会官网:https://hangzhou2025.gosim.org/9 月 13- 14 日,GOSIM HANGZHOU 2025大咖云集,精彩纷呈欢迎亲临现场与全球开源资深大咖面对面交流!
-
云计算BU通用计算服务产品部 2026届应届生招聘➯ 部门介绍在云计算的浪潮中,我们在Kubernetes等云原生技术领域有10余年的技术积累。我们致力于成为技术创新先锋,通过云原生容器化技术,为企业数字化转型提供强大动力。让云无处不在,让智能无所不及,共建智能世界云底座。品牌引领:连续5年云容器软件市场份额国内TOP1,Gartner容器管理魔力象限领导者,Omdia评价产品战略与执行全球第一,业务遍布国内外互联网、金融、政企等多个领域。技术创新:云原生基金会国内唯一初始成员,全球首位CNCF技术监督委员会华人副主席,CNCF基础设施技术负责人,CNCF工作负载技术负责人。主导开源 KubeEdge、Volcano、Karmada、Kuasar、Kmesh等多个云原生开源项目。华为云容器与Serverless团队持续构建AI基础设施,加大在云原生 AI、Serverless架构、多云和混合云战略、云边端协同、函数计算等领域的战略投入,以技术革新为驱动,打造业界领先的云原生解决方案。团队基于云原生技术构建大规模训推一体AI基础设施,助力华为云内外部在汽车、互联网、金融等领域的多个客户实现AI创新。热忱欢迎优秀学子加入我们! 更多云原生技术动向关注容器魔方 【更多华为云云原生干货推荐】华为云云原生王者之路集训营华为云云原生王者之路集训营为帮助广大技术爱好者快速掌握云原生相关技能,华为云云原生团队与华为云学院联合CNCF开源软件大学启动人才培养计划,推出《华为云云原生王者之路集训营》,从云原生基础知识介绍到最佳实践讲解、底层原理和方案架构深度剖析,层层深入,满足不同云原生技术基础和学习目标人群的需求。本课程还精选数十个企业典型应用场景,作为学员上机实践案例,帮助学员将所学技术快速与企业业务相结合,服务于企业生产。点击免费参加华为云云原生王者之路集训营:cid:link_3 学习后记得小试牛刀,看看测评效果~ 华为云云原生王者之路-黄金课程测评 华为云云原生王者之路-钻石课程测评 华为云云原生王者之路-王者课程测评
-
随着AI大模型技术的快速发展,企业对计算资源利用效率和应用性能的要求日益提高。在AI、大数据及高性能计算(HPC)等复杂应用场景下,如何高效利用GPU等异构加速器、保障系统高可用性并精细化管理资源,是Volcano社区[1]持续探索和创新的核心方向。Volcano[2] 的每一次版本迭代,都是对这些挑战的积极回应。在来自全球30余个国家、超过1000名开发者、近40000次贡献的共同建设下,Volcano已在国内外60多家企业的生产环境中得到应用,其调度性能与资源管理能力在实践中获得了广泛认可。Volcano社区现已正式发布 v1.12 版本[3] ,新版本聚焦于AI与大数据等前沿场景的核心需求,带来了一系列关键特性与体验优化:新版本亮点一览网络拓扑感知调度 (Alpha): 优化大规模AI训练与推理任务部署,通过感知网络拓扑减少跨交换机通信,提升运行效率。GPU虚拟化方案增强: 在原有vCUDA方案基础上,新增对NVIDIA GPU动态MIG切分的支持,为用户提供软件与硬件两种虚拟化选择,实现更灵活、高效的GPU资源共享。DRA支持: 增强异构资源管理的灵活性与能力。Volcano Global支持队列容量管理: 在多集群环境下,支持对租户队列的资源配额(capability)进行统一限制和管理。安全性全面增强: 从API访问控制到容器运行时权限,实施多维度安全加固,提升系统稳健性。大规模场景性能优化: 通过减少不必要的Webhook调用等手段,有效提升高并发任务处理效率。增强通用工作负载的Gang调度控制: 现已支持通过Annotation为Deployment、StatefulSet等通用工作负载自定义Gang调度所需的最小成员数(minAvailable),提供了更精细的Gang Scheduling调度策略。Job Flow功能增强: 提升了内置工作流编排引擎的健壮性与可观测性。以及更多稳定性与易用性改进。我们相信,v1.12版本的这些更新将进一步提升任务调度的智能化水平、资源利用效率和系统的整体性能,帮助用户更好地应对AI和大数据时代的挑战。 核心功能详解 ▍网络拓扑感知调度 (Alpha Release)Volcano 的网络拓扑感知调度功能,在 v1.11 中作为预览版发布后,现已在 v1.12 中达到 Alpha 发布状态。此功能旨在优化大规模训练和推理场景(如模型并行训练、Leader-Worker 推理)中 AI 任务的部署。它通过将任务调度到同一网络拓扑性能域内,减少跨交换机通信,从而显著提升任务效率。Volcano 使用 HyperNode CRD 来抽象和表示异构硬件网络拓扑,并支持层级结构以方便管理。v1.12 版本集成了以下关键特性:HyperNode 自动发现 (HyperNode Auto-Discovery): Volcano 提供了集群网络拓扑的自动发现能力。用户可配置发现类型,系统将自动创建和维护反映集群真实网络拓扑的层级 HyperNode。目前支持 InfiniBand (IB) 网络下通过 UFM (Unified Fabric Manager) 接口获取网络拓扑信息,并自动更新 HyperNode。未来计划支持 RoCE 等更多网络协议。 HyperNode 优选策略 (Prioritized HyperNode Selection): 引入了基于节点级别和 HyperNode 级别的打分策略,累加后作为 HyperNode 的最终得分。 节点级别 (Node-level): 建议配置 BinPack 插件以优先填满 HyperNode,减少资源碎片。 HyperNode 级别 (HyperNode-level): 优先选择层级更低的 HyperNode 以获得更优性能,因其涉及的跨交换机次数较少;对于相同层级的 HyperNode,包含更多任务的 HyperNode 得分更高,旨在减少 HyperNode 级别的资源碎片。 支持通过 Label Selector 匹配节点 (Support for Label Selector Node Matching): HyperNode 叶子节点与集群中的物理节点关联,支持以下三种匹配策略: 精确匹配 (Exact Match): 直接匹配节点名称。 正则匹配 (Regex Match): 通过正则表达式匹配节点名称。 标签匹配 (Label Match): 通过标准 Label Selector 匹配节点。相关参考文档:网络拓扑感知调度介绍与使用[4]网络拓扑感知调度设计文档[5]网络拓扑自动发现设计文档[6]网络拓扑自动发现使用文档[7]Related PRs: https://github.com/volcano-sh/volcano/pull/3874, https://github.com/volcano-sh/volcano/pull/3894, https://github.com/volcano-sh/volcano/pull/3969, https://github.com/volcano-sh/volcano/pull/3971, https://github.com/volcano-sh/volcano/pull/4068, https://github.com/volcano-sh/volcano/pull/4213, https://github.com/volcano-sh/volcano/pull/3897, https://github.com/volcano-sh/volcano/pull/3887由衷感谢社区开发者: @ecosysbin, @weapons97, @Xu-Wentao, @penggu,@JesseStutler, @Monokaix对该特性的贡献!▍GPU 虚拟化支持动态 MIG 切分Volcano 提供的 GPU 虚拟化功能支持按显存和算力申请部分 GPU 资源,通过与 Device Plugin 配合实现硬件隔离,从而提升 GPU 利用率。传统 GPU 虚拟化通过拦截 CUDA API 方式限制 GPU 使用。NVIDIA Ampere 架构引入的 MIG (Multi-Instance GPU) 技术允许将单个物理 GPU 划分为多个独立实例。然而,通用 MIG 方案通常预先固定实例大小,存在资源浪费和灵活性不足的问题。Volcano v1.12 提供了动态 MIG 切分与调度能力,可根据用户申请的 GPU 用量实时选择合适的 MIG 实例大小,并使用 Best-Fit 算法减少资源浪费。同时支持 BinPack 和 Spread 等 GPU 打分策略,以减少资源碎片并提升 GPU 利用率。用户可使用统一的 volcano.sh/vgpu-number、volcano.sh/vgpu-cores、volcano.sh/vgpu-memory API 申请资源,无需关注底层实现。设计文档:Dynamic MIG 设计文档[8]使用文档:Dynamic MIG 使用文档[9]Related PRs: https://github.com/volcano-sh/volcano/pull/4290, https://github.com/volcano-sh/volcano/pull/3953由衷感谢社区开发者: @sailorvii, @archlitchi 对该特性的贡献!▍支持 DRA (Dynamic Resource Allocation)Kubernetes DRA (Dynamic Resource Allocation,动态资源分配) 是一项内置的 Kubernetes 功能,旨在提供一种更灵活、更强大的方式来管理集群中的异构硬件资源,例如 GPU、FPGA、高性能网卡等。它解决了传统设备插件 (Device Plugin) 在某些高级场景下的局限性。Volcano v1.12 增加了对 DRA 的支持,允许集群动态分配和管理外部资源,增强了 Volcano 与 Kubernetes 生态系统的集成能力及资源管理的灵活性。使用文档:在Volcano中启用DRA[10]Related PR: https://github.com/volcano-sh/volcano/pull/3799由衷感谢社区开发者: @JesseStutler 对该特性的贡献!▍Volcano Global 支持队列容量管理队列是 Volcano 的核心概念。为支持多集群和多租户场景下的租户配额管理,Volcano 在 v1.12 中扩展了其全局队列容量管理能力。现在,用户可以在多集群环境中统一限制租户的资源使用,其配置方式与单集群场景一致:通过在队列配置中设置 capability 字段来限制租户配额。Related PR: https://github.com/volcano-sh/volcano-global/pull/16由衷感谢社区开发者: @tanberBro 对该特性的贡献!▍安全性增强Volcano 社区持续关注安全性。在 v1.12 中,除了对 ClusterRole 等敏感权限的精细控制外,还修复了以下潜在安全风险并进行了加固:HTTP Server 设置超时时间: Volcano 各组件的 Metric 和 Healthz 端点均已设置服务器端的 ReadHeader、Read、Write 超时,避免资源长时间占用。(PR: https://github.com/volcano-sh/volcano/pull/4208)跳过 SSL 证书验证时增加警告日志: 当客户端请求设置insecureSkipVerify为 true时,添加警告日志,建议生产环境启用 SSL 证书验证。(PR: https://github.com/volcano-sh/volcano/pull/4211)默认关闭 Volcano Scheduler 的 pprof 端点: 为避免敏感程序信息泄露,默认关闭用于定位问题的 Profiling 数据端口。(PR: https://github.com/volcano-sh/volcano/pull/4173)移除不必要的文件权限: 移除 Go 源文件不必要的执行权限,保持文件最小权限。(PR: https://github.com/volcano-sh/volcano/pull/4171)为容器设置 Security Context 并以非 Root 权限运行: 所有 Volcano 组件均以非 Root 权限运行,并增加了 seccompProfile, SELinuxOptions,设置 allowPrivilegeEscalation避免容器提权,同时仅保留必要的 Linux Capabilities,全面限制容器权限。(PR: https://github.com/volcano-sh/volcano/pull/4207)限制 HTTP 请求返回体大小: 针对 Extender Plugin 和 Elastic Search Service 发送的 HTTP 请求,限制其返回体大小,避免资源过度消耗导致的 OOM 等问题。(披露地址: https://github.com/volcano-sh/volcano/security/advisories/GHSA-hg79-fw4p-25p8)▍大规模场景性能提升Volcano 持续优化性能。新版本在不影响功能的前提下,默认移除和关闭了部分非必要的 Webhook,提升了大规模批创建场景下的性能:默认关闭 PodGroup 的 Mutating Webhook: 在创建 PodGroup 未指定队列时,可从 Namespace 读取进行填充。由于该场景不常见,故默认关闭此 Webhook。用户可按需开启。任务提交时的队列状态校验从 Pod 迁移到 PodGroup: 当队列处于关闭状态时,不允许提交任务。原校验逻辑在创建 Pod 时进行,而 Volcano 的调度基本单位是 PodGroup,将校验迁移至 PodGroup 创建时更为合理。因 PodGroup 数量少于 Pod,此举可减少 Webhook 调用,提升性能。Related PRs: https://github.com/volcano-sh/volcano/pull/4128, https://github.com/volcano-sh/volcano/pull/4132由衷感谢社区开发者: @Monokaix 对该特性的贡献!▍多种负载类型支持 Gang 调度Gang 调度是 Volcano 的核心能力。对于 Volcano Job 和 PodGroup 对象,用户可直接设置 minMember 来定义所需最小副本数。在新版本中,用户可通过在 Deployment、StatefulSet、Job 等其他类型工作负载上设置 Annotation scheduling.volcano.sh/group-min-member 来指定所需最小副本数。这意味着在使用 Volcano 调度时,要么指定数量的副本全部调度成功,要么一个也不调度,从而为多种负载类型实现了 Gang 调度。例如,为 Deployment 设置 minMember=10:apiVersion: apps/v1 kind: Deployment metadata: name: volcano-group-deployment annotations: # Set min member=10 scheduling.volcano.sh/group-min-member: "10"Related PR: https://github.com/volcano-sh/volcano/pull/4000由衷感谢社区开发者: @sceneryback 对该特性的贡献!▍Job Flow 功能增强Job Flow 是 Volcano 提供的轻量级 Volcano Job 工作流编排框架。在 v1.12 版本中,Job Flow 进行了以下增强:新增监控指标: 增加了对成功和失败的 Job Flow 数量的度量支持。DAG 合法性校验: 引入了对 Job Flow DAG (有向无环图) 结构进行合法性校验的功能。状态同步问题修复: 解决了 Job Flow 状态同步不准确的问题。Related PRs: https://github.com/volcano-sh/volcano/pull/4169, https://github.com/volcano-sh/volcano/pull/4090, https://github.com/volcano-sh/volcano/pull/4135, https://github.com/volcano-sh/volcano/pull/4169由衷感谢社区开发者: @dongjiang1989 对该特性的贡献!▍多租户场景下更细粒度的权限控制Volcano 原生支持多租户环境,并重视多租户场景下的权限控制。在新版本中,Volcano 增强了对 Volcano Job 的权限控制,增加了只读和读写的 ClusterRole,用户可根据需要为不同租户分配不同的读写权限,以实现权限隔离。Related PR: https://github.com/volcano-sh/volcano/pull/4174由衷感谢社区开发者: @Hcryw 对该特性的贡献!▍支持 Kubernetes 1.32Volcano 版本紧随 Kubernetes 社区版本。v1.12 支持最新的 Kubernetes v1.32 版本,并通过完整的 UT 和 E2E 测试用例确保功能和可靠性。如需参与 Volcano 对新 Kubernetes 版本的适配工作,请参考:adapt-k8s-todo[11]。Related PR: https://github.com/volcano-sh/volcano/pull/4099由衷感谢社区开发者: @guoqinwill, @danish9039 对该特性的贡献!▍队列监控指标增强Volcano 队列新增了多项关键资源度量指标。现在支持对 CPU、Memory 及扩展资源的请求量 (request)、已分配量 (allocated)、应得量 (deserved)、容量 (capacity) 和 实际容量 (real_capacity) 等指标进行监控与可视化,提供队列关键资源状态的详细视图。Related PR: https://github.com/volcano-sh/volcano/pull/3937由衷感谢社区开发者: @zedongh 对该特性的贡献!▍支持模糊测试模糊测试 (Fuzz Testing) 是一种自动化软件测试技术。Volcano 在新版本中引入了模糊测试框架,对关键函数单元进行了模糊测试,并使用 Google 开源的 OSS-Fuzz 模糊测试框架进行持续测试,旨在提前发现潜在漏洞和缺陷,增强 Volcano 的安全性和健壮性。Related PR: https://github.com/volcano-sh/volcano/pull/4205由衷感谢社区开发者: @AdamKorcz 对该特性的贡献!▍稳定性增强新版本中修复了多项稳定性问题,包括队列容量设置不合理导致的 Panic、层级队列校验失败、PodGroup 无意义刷新以及 StatefulSet 副本为0时仍占用队列资源等问题,进一步提升了系统在复杂场景下的稳定运行能力。Related PRs:https://github.com/volcano-sh/volcano/pull/4273, https://github.com/volcano-sh/volcano/pull/4272, https://github.com/volcano-sh/volcano/pull/4179, https://github.com/volcano-sh/volcano/pull/4141, https://github.com/volcano-sh/volcano/pull/4033, https://github.com/volcano-sh/volcano/pull/4012, https://github.com/volcano-sh/volcano/pull/3603由衷感谢社区开发者: @halcyon-r, @guoqinwill, @JackyTYang, @JesseStutler, @zhutong196, @Wang-Kai, @HalfBuddhist 的贡献! 升级前注意事项 在升级到 Volcano v1.12 之前,请注意以下改动:PodGroup Mutating Webhook 默认关闭: 在 v1.12 中,PodGroup 的 Mutating Webhook 默认处于关闭状态。若您有依赖此行为(创建 PodGroup 未指定队列时从 Namespace 填充)的特定工作流,请确保在升级后手动开启此 Webhook。队列状态校验迁移及行为变更: 任务提交时的队列状态校验逻辑已从 Pod 创建阶段迁移到 PodGroup 创建阶段。当队列处于关闭状态时,系统将在 PodGroup 创建时即阻止任务提交。然而,如果在队列关闭后继续向该队列提交独立的 Pod(非通过 PodGroup 提交),这些 Pod 可以提交成功,但 Volcano Scheduler 将不会对其进行调度。Volcano Scheduler pprof 端点默认禁用: 出于安全增强考虑,Volcano Scheduler 的 pprof 端点在此版本中默认禁用。如需使用,可通过 Helm 参数 custom.scheduler_pprof_enable=true 或命令行参数 --enable-pprof=true 显式启用。 总结与展望 Volcano v1.12 版本的发布,得益于社区贡献者和用户的共同努力。此版本在 AI 任务调度、GPU 资源利用率、异构资源管理、安全性以及大规模场景下的性能与稳定性等多个方面进行了增强。v1.12 版本旨在提升用户在云原生环境中运行 AI、大数据等批量计算任务的性能和效率。我们建议用户升级并体验新版本,并欢迎通过社区渠道提供使用反馈与改进建议。未来,Volcano 社区将继续关注 CNAI 和大数据等领域的核心需求,持续进行迭代。 未来展望与需求征集 Volcano 社区始终致力于构建更加强大、灵活和易用的批量计算平台,并积极响应快速发展的技术趋势与用户需求。在接下来的版本迭代中,我们计划重点投入以下方向:深化网络拓扑感知调度能力:在v1.12 Alpha版本的基础上,我们将持续演进网络拓扑感知能力。重点包括提供对RoCE网络的自动发现支持、节点标签的智能识别与利用,并向更细粒度的任务级(Task-level)拓扑感知调度迈进。同时,我们也将积极探索和实现更多高级调度特性,以应对复杂AI训练等场景的极致性能需求。相关issue:HyperNode based binpack scheduling policy needed[12]Support task level network topology constrain[13]Support identifying network topology from node labels and converted into hyperNode resources[14]Network-topology-aware scheduling optimization: node reordering for tasks[15]引入高级资源管理机制:重点开发和完善作业重调度(Rescheduling)与资源预留(Resource Reservation)功能。这将有助于更灵活地应对集群动态负载变化,保障关键任务的资源确定性,并进一步提升整体集群的资源利用效率。相关issue:GPU fragmentation across nodes and Job/Pod rescheduling strategy request[16]增强队列调度灵活性:提供队列级别的调度策略(Queue-level Scheduling Policy)精细化配置能力。用户将能根据不同业务队列的特性、优先级和SLA需求,更灵活地定制其调度行为和资源分配策略。相关issue:volcano supports queue-level scheduling policies[17]深化生态协同与集成:我们将积极推进与Kubernetes上游社区及其他云原生项目的协作。例如,推动LWS(Leader Worker Set)与Volcano的集成,以便更好地为分布式应用提供Gang Scheduling能力。相关issue:Support custom scheulder to enable gang scheduling[18]我们热忱欢迎更多优秀的开源项目与Volcano携手,共同构建和繁荣云原生批量计算生态。拓展异构硬件支持与合作:加强与硬件生态伙伴的合作,如昇腾(Ascend)的Device Plugin和DRA Driver的适配与优化,以及与主流GPU厂商在DRA Driver上的协作,确保Volcano能高效、稳定地调度和管理各类前沿异构加速器资源。JobFlow工作流能力提升:持续优化Volcano内置的轻量级工作流引擎JobFlow。计划增强其在复杂作业依赖管理、状态监控、错误处理及用户自定义扩展等方面的能力,为用户提供更强大、更易用的工作流编排解决方案。相关issue:Support JobFlowTemplate CRD[19]Enhance JobFlow Functionality[20]引入Volcano调度模拟器,提升调度透明度与可测试性:为提升调度过程的透明度并简化测试验证,Volcano计划引入调度模拟器。这一工具将允许用户在轻量级环境中,通过灵活配置模拟集群状态(节点、Pod、队列配置等),精准复现Volcano核心调度流程——从队列选择、节点过滤与打分到最终绑定。通过输出详尽的调度日志及可选的性能分析,模拟器将极大地便利开发者测试新特性,帮助用户深入理解和验证Volcano在不同场景下的调度行为,并高效评估各类调度策略的实际影响。相关issue:Implement Volcano Scheduler Simulator[21] 社区参与 以上 Roadmap 为社区的初步规划。我们欢迎开发者和用户通过以下渠道参与讨论,为 Volcano 的发展贡献新的想法和建议。GitHub Issues: 在 Volcano GitHub 仓库中创建 kind/feature 类型的 Issue,详细说明您的使用场景和功能期望。社区交流: 参与社区会议,或在微信交流群/Slack 频道及邮件列表中发起讨论,与开发者和社区成员进行交流。Roadmap 共建: 针对我们提出的 Roadmap 或您认为重要的其他特性,欢迎随时提出建议。 致谢贡献者 Volcano v1.12 版本包含了来自46位社区贡献者的上百次代码提交,在此对各位贡献者表示由衷的感谢,贡献者GitHub ID:参考资料[1] Volcano Website: https://volcano.sh[2] Volcano GitHub: https://github.com/volcano-sh/volcano[3] Volcano社区正式发布 v1.12 版本: https://github.com/volcano-sh/volcano/releases/tag/v1.12.0[4] 网络拓扑感知调度介绍与使用: https://volcano.sh/en/docs/network_topology_aware_scheduling/[5] 网络拓扑感知调度设计文档: https://github.com/volcano-sh/volcano/blob/master/docs/design/Network%20Topology%20Aware%20Scheduling.md[6] 网络拓扑自动发现设计文档: https://github.com/volcano-sh/volcano/blob/master/docs/design/hyperNode-auto-discovery.md[7] 网络拓扑自动发现使用文档: https://github.com/volcano-sh/volcano/blob/master/docs/user-guide/how_to_use_hypernode_auto_discovery.md[8] Dynamic MIG 设计文档: https://github.com/volcano-sh/volcano/blob/master/docs/design/dynamic-mig.md[9] Dynamic MIG 使用文档: https://volcano.sh/zh/docs/gpu_virtualization/[10] 在Volcano中启用DRA: https://volcano.sh/zh/docs/unified_scheduling/#2-1-2-%E5%9C%A8volcano%E4%B8%AD%E5%90%AF%E7%94%A8dra-dynamic-resource-allocation[11] adapt-k8s-todo: https://github.com/volcano-sh/volcano/pull/4318[12] HyperNode based binpack scheduling policy needed: https://github.com/volcano-sh/volcano/issues/4331[13] Support task level network topology constrain: https://github.com/volcano-sh/volcano/issues/4188[14] Support identifying network topology from node labels and converted into hyperNode resources: https://github.com/volcano-sh/volcano/issues/4145[15] Network-topology-aware scheduling optimization: node reordering for tasks: https://github.com/volcano-sh/volcano/issues/4233[16] GPU fragmentation across nodes and Job/Pod rescheduling strategy request: https://github.com/volcano-sh/volcano/issues/3948[17] volcano supports queue-level scheduling policies: https://github.com/volcano-sh/volcano/issues/3992[18] Support custom scheulder to enable gang scheduling: https://github.com/kubernetes-sigs/lws/issues/407[19] Support JobFlowTemplate CRD: https://github.com/volcano-sh/volcano/issues/4098[20] Enhance JobFlow Functionality: https://github.com/volcano-sh/volcano/issues/4275[21] Implement Volcano Scheduler Simulator: https://github.com/volcano-sh/volcano/issues/4276Volcano 是业界首个云原生批量计算引擎,也是 CNCF 首个和唯一的批量计算项目。项目主要用于 AI、大数据、基因、渲染等诸多高性能计算场景,对主流通用计算框架均有很好的支持。目前,Volcano在人工智能、大数据、基因测序等海量数据计算和分析场景已得到快速应用,已完成对 Spark、Flink、Ray、 Tensorflow、PyTorch、Argo、MindSpore、Paddlepaddle 、Kubeflow、MPI、Horovod、Mxnet、KubeGene 等众多主流计算框架的支持,并构建起完善的上下游生态。Website:https://volcano.shGitHub: https://github.com/volcano-sh/volcano每周例会:https://zoom.us/j/91804791393添加社区小助手回复“Volcano”进入技术交流群
-
[ 中国,香港,2025年6月10日 ] 云原生计算基金会(CNCF)宣布,科大讯飞赢得 CNCF 最终用户案例研究竞赛。CNCF致力于构建可持续的云原生软件生态,科大讯飞凭借其在 Volcano 上的创新应用脱颖而出,获得本次殊荣,于6月10日至11日在香港举行的KubeCon + CloudNativeCon China 大会上,分享其大规模 AI 模型训练的成功经验。作为专注于语音和语言 AI 的中国科技公司,科大讯飞在业务快速增长过程中遇到了扩展难题。调度效率低导致 GPU 资源利用不足,工作流管理复杂,团队间资源争抢激烈,这些问题拖慢了研发进度,也给基础设施带来压力。使用 Volcano 后,科大讯飞实现了弹性调度、基于 DAG 的工作流和多租户隔离,简化了操作流程,显著提升了资源利用率。“在使用 Volcano 之前,跨团队协调大规模 GPU 集群训练就像不断‘灭火’,资源瓶颈、任务失败和复杂的训练管道调试层出不穷,”科大讯飞高级平台架构师 DongJiang 表示。“Volcano 让我们拥有更灵活的控制权,能够高效可靠地扩展 AI 训练。CNCF 对我们的认可令我们倍感荣幸,我们也很期待在 KubeCon + CloudNativeCon China 现场与更多同行分享我们的实践经验。”Volcano 是基于 Kubernetes 构建的云原生批处理系统,专为 AI/机器学习训练、大数据处理和科学计算等高性能工作负载设计。它提供先进的调度功能,如任务编排、资源公平分配和队列管理,能够高效管理大规模分布式任务。自 2020 年加入 CNCF Sandbox 项目,2022 年晋升为 Incubating 阶段项目,Volcano 已成为处理计算密集型任务的关键工具。随着 AI 需求不断增长,科大讯飞选择 Volcano 来应对训练基础设施日益复杂和庞大的挑战。工程团队需要更高效的资源分配方案,管理多阶段复杂训练工作流,减少任务中断,并保障不同团队的公平资源使用。借助 Volcano,他们实现了:GPU 利用率提升 40%,显著降低基础设施成本和计算资源闲置。任务失败恢复速度提升 70%,确保训练过程不中断。超参数搜索加速 50%,推动更快的迭代和创新。CNCF 首席技术官 Chris Aniszczyk 表示:“科大讯飞的案例展示了开源技术如何解决复杂且关键的规模化挑战。通过 Volcano 提升 GPU 效率和优化训练工作流,他们降低了成本,加快了开发,并在 Kubernetes 平台上构建了更可靠的 AI 基础设施,这对所有致力于 AI 领先的组织都至关重要。”随着 AI 工作负载变得更加复杂和资源密集,科大讯飞的实践证明,Volcano 等云原生工具能够帮助团队简化运营、提升扩展能力。其在 KubeCon + CloudNativeCon China 的分享,带来如何在 Kubernetes 环境下更有效管理分布式训练的实用经验,参考Keynote议题:https://kccncchn2025.sched.com/event/23EWS?iframe=no本文转载自CNCFVolcano 是业界首个云原生批量计算引擎,也是 CNCF 首个和唯一的批量计算项目。项目主要用于 AI、大数据、基因、渲染等诸多高性能计算场景,对主流通用计算框架均有很好的支持。目前,Volcano在人工智能、大数据、基因测序等海量数据计算和分析场景已得到快速应用,已完成对 Spark、Flink、Ray、 Tensorflow、PyTorch、Argo、MindSpore、Paddlepaddle 、Kubeflow、MPI、Horovod、Mxnet、KubeGene 等众多主流计算框架的支持,并构建起完善的上下游生态。Website:https://volcano.shGitHub: https://github.com/volcano-sh/volcano每周例会:https://zoom.us/j/91804791393添加社区小助手回复“Volcano”进入技术交流群
-
开源之夏是由中国科学院软件研究所“开源软件供应链点亮计划”发起并长期支持的一项暑期开源活动,旨在鼓励在校学生积极参与开源软件的开发维护,培养和发掘更多优秀的开发者,促进优秀开源软件社区的蓬勃发展,助力开源软件供应链建设。学生通过远程线上协作方式,通过社区资深导师指导,参与到开源社区各组织项目开发中,收获证书及8000/12000元奖金。活动官网:https://summer-ospp.ac.cn/Volcano云原生批量计算社区已连续6年加入开源之夏。今年社区为同学们带来8项课题,欢迎高校同学选报,报名将于5月9日正式启动,截止时间6月9日18:00 (UTC+8)。Volcano是业界首个云原生批量计算社区,也是 CNCF 首个及唯一孵化级批量计算项目。Volcano主要用于 AI、大数据、基因、渲染等诸多高性能计算场景,完成对 Spark、Flink、Ray、Tensorflow、PyTorch、Argo、MindSpore、Paddlepaddle 、Kubeflow、MPI、Horovod、Mxnet、KubeGene 等众多主流计算框架的支持。社区已吸引5.8万+全球开发者,获得4.6k+Star 和1100+ Fork。Volcano现已在60多家企业中实现了生产落地,广泛应用于互联网、人工智能、自动驾驶、大数据处理、高性能计算、金融、娱乐、医疗、财经传媒、生命科学等多个行业和场景。🏷️ 社区地址:https://github.com/volcano-sh/volcano 开源之夏 2025 Volcano 课题介绍 课题一:面向云原生场景的Device Plugin GPU虚拟化与型号上报统一管理项目编号:253ba0225项目难度:基础/Basic项目社区导师:archlitchi导师联系邮箱:391013634@qq.com项目简述:Volcano Device Plugin 目前分别在不同分支提供了 GPU 虚拟化(基于较旧上游版本)和 GPU 型号上报(基于较新 v0.16.1 版本)两项重要功能。为了解决由此带来的维护和使用不便,本项目计划将这两项能力整合到统一的代码分支中,并进行适当重构。最终目标是提供一个功能完备、接口统一的 Device Plugin,更好地支持云原生环境下的 GPU 资源虚拟化和精细化管理,提升用户体验并促进社区协作。项目链接:https://summer-ospp.ac.cn/org/prodetail/253ba0225课题二:增强Volcano Agent以支持Cgroup V2与Systemd项目编号:253ba0247项目难度:基础/Basic项目社区导师:guoqinwill导师联系邮箱:gq411will@163.com项目简述:Volcano Agent 是云原生混部场景下的核心 SLO (Service Level Objective) Agent,通过统一调度、资源隔离和动态资源超卖等机制提高了资源利用率,并通过 OoS (Out-of-Service) 保障机制确保高优先级任务的服务质量。当前,Volcano Agent 主要支持 Cgroup v1,这与目前主流操作系统逐步迁移至 Cgroup v2 和 Systemd 的趋势不符,同时也限制了与配置不同 cgroup-driver 的 Kubelet 节点的兼容性,阻碍了端到端混部能力的完整实现。本项目旨在增强 Volcano Agent 的基础能力,使其能够原生支持 Cgroup v2 和 Systemd。通过适配新的资源管理机制,Volcano Agent 将能更好地与现代操作系统集成,并与配置不同 cgroup-driver 的 Kubelet 节点协同工作,为用户提供一致的混部体验,从而进一步完善其在云原生混部场景下的资源管理和 SLO 保障能力。项目链接:https://summer-ospp.ac.cn/org/prodetail/253ba0247课题三:Volcano准入控制从Webhook到声明式策略的演进与迁移项目编号:253ba0259项目难度:基础/Basic项目社区导师:JesseStutler导师联系邮箱:jessestutler97@gmail.com项目简述:当前,Volcano 依赖大量的 Webhook 组件对 Kubernetes 集群中的 Pod、VCJob、Queue 等核心资源进行准入控制,包括验证资源的有效性(Validating)和根据策略进行默认值设置或修改(Mutating)。虽然 Webhook 机制能够实现灵活的准入控制逻辑,但在 Kubernetes 高版本集群中,引入了更高效且与 CRD 深度集成的声明式准入控制方案,例如 Kubebuilder 对 CEL (Common Expression Language) 的支持,以及 Kubernetes 原生的 ValidatingAdmissionPolicy 和 MutatingAdmissionPolicy API。本项目旨在对 Volcano 现有的准入控制机制进行现代化改造,核心目标是将当前由 Webhook 实现的部分或全部准入控制逻辑迁移到这些声明式的策略定义中。通过利用 CEL 在 CRD 层面定义校验规则,以及使用 ValidatingAdmissionPolicy 和 MutatingAdmissionPolicy API 实现更灵活的资源准入控制,可以减少外部 Webhook 调用的开销,潜在地提升 Volcano 的性能,并简化准入控制策略的管理和维护。此外,为了保证与不同 Kubernetes 集群版本的兼容性,本项目还需要考虑在 Helm 安装时提供灵活的部署选项。对于不支持 CEL 和 Admission Policy API 的旧版本集群,应继续使用现有的 Webhook 机制。而对于支持这些新特性的高版本集群,则默认或可选地启用新的声明式准入控制模式。通过本次项目的实施,Volcano 将能够更好地融入现代 Kubernetes 生态,提升在高版本集群中的运行效率和可维护性,并为未来的准入控制策略扩展奠定基础。项目链接:https://summer-ospp.ac.cn/org/prodetail/253ba0259课题四:Volcano 原生异构资源管理:集成昇腾 NPU 调度插件项目编号:253ba0293项目难度:进阶/Advanced项目社区导师:lowang-bh导师联系邮箱:lhui_wang@163.com项目简述:Volcano 作为首个云原生批量计算平台,旨在提供对包括 GPU、NPU、x86、ARM 等异构资源的统一管理和调度能力。目前,针对昇腾 NPU 资源的调度支持以独立插件的形式在昇腾社区维护,这导致用户在使用 Volcano 调度 NPU 时需要依赖外部组件,增加了复杂性和维护成本。本项目旨在将昇腾社区维护的 NPU 调度逻辑作为 Volcano 社区的原生插件进行集成和统一管理。通过将现有的独立插件迁移到 Volcano 社区并进行重构,使其完全融入 Volcano 的架构体系,用户将能够更方便地在 Volcano 框架内直接使用 NPU 调度能力,无需额外依赖和维护第三方组件。项目链接:https://summer-ospp.ac.cn/org/prodetail/253ba0293课题五:Volcano 子项目 CI/CD 流程、Helm 发布与自动化测试体系建设项目难度:253ba0295项目难度:基础/Basic项目社区导师:box导师联系邮箱:wszwbsddbk@gmail.com项目简述:随着 Volcano 社区的不断发展,涌现出越来越多的新子项目,例如 descheduler、volcano-global、dashboard 等。然而,这些新创建的子项目目前普遍缺乏完善的 CI/CD(持续集成/持续交付)流水线 workflow、自动化 Helm 发布包构建流程以及充分的自动化测试覆盖(包括单元测试 UT 和端到端测试 E2E)。基础设施的缺失会影响项目的开发效率、代码质量、发布流程的标准化以及最终产品的稳定性。本项目旨在为 Volcano 社区中尚未具备完整 CI/CD、Helm 发布和自动化测试体系的新子项目进行全面的基础设施建设。目标是建立一套标准化的流程和工具链,使得新子项目能够快速地实现自动化构建、测试、打包和发布,并具备足够的自动化测试覆盖以保障代码质量。项目链接:https://summer-ospp.ac.cn/org/prodetail/253ba0295课题六:Volcano 大规模场景性能瓶颈分析与持续优化项目难度:253ba0300项目难度:进阶/Advanced项目社区导师:李鑫导师联系邮箱:hwdefcom@outlook.com项目简述:性能一直是 Volcano 社区高度关注并持续优化的关键领域。随着用户使用场景的日益丰富、集群规模的不断扩大以及 Volcano 功能的逐步增强,对 Volcano 在大规模场景下的性能提出了越来越高的要求。尽管 Volcano 在早期已经进行了一系列性能优化工作,但为了更好地应对未来的挑战,进一步提升其在大规模场景下的性能至关重要。本项目旨在深入分析 Volcano 在大规模场景下的性能瓶颈,并制定和实施持续的优化策略。具体而言,将借助现有的开源工具,例如 Kubernetes 模拟器 KWOK 以及调度器性能压测工具等,对 Volcano 在处理大规模批量下发 Deployment 和 Volcano Job 等典型场景下的性能表现进行细致的分析。通过性能指标采集与分析、性能瓶颈识别、阶段耗时分析、开源工具应用、优化方案制定与实施、性能回归测试以及持续性能监控与告警等环节,全面提升 Volcano 在大规模场景下的性能,为用户提供更稳定、更高效的任务调度服务。项目链接:https://summer-ospp.ac.cn/org/prodetail/253ba0300课题七:基于 Hugo 的 Volcano 官网重构与功能定制开发项目难度:253ba0307项目难度:基础/Basic项目社区导师:常旭征导师联系邮箱:cxz2536818783@gmail.com项目简述:Volcano 社区的官方网站 (https://github.com/volcano-sh/website和https://volcano.sh/) 是用户了解、使用和参与 Volcano 项目的关键入口。当前网站基于 Hugo 静态站点生成器构建,但在用户界面、用户体验和功能性方面仍有提升空间。本项目旨在对 Volcano 官网进行前端功能的深度开发与用户界面和用户体验的全面升级,重点在于增强文档的搜索和导航能力,优化现有的文档版本管理机制,构建全新的用户展示平台(Adopter Group 页面),并进行整体的用户界面和交互体验优化。此外,本项目还将涵盖对核心组件和功能的文档进行细致的更新和完善,确保文档的准确性和实用性。本课题的目标是增强 Volcano 官网的功能性与用户体验。项目链接:https://summer-ospp.ac.cn/org/prodetail/253ba0307课题八:基于数据依赖的任务编排与 Volcano Global 调度项目难度:253ba0314项目难度:进阶/Advanced项目社区导师:汪洋导师联系邮箱:wysea1990@163.com项目简述:Volcano Global 作为 Volcano 社区新发布的多集群调度平台,旨在为 AI、大数据、HPC 等高性能计算任务提供跨集群的统一调度能力,目前已支持队列和作业优先级、以及多租户公平调度。然而,在大数据场景下,任务之间往往存在复杂的数据依赖关系,例如任务 C 依赖任务 A 生成的数据。当前 Volcano Global 尚不支持此类依赖约束,导致在跨集群调度时,任务的实际可调度性受限于数据在目标集群上的可用性。运维人员需要人工分析和配置任务与数据源的对应关系,这不仅效率低下,还容易导致集群负载不均衡。尤其是在跨数据中心场景下,由于无法直接跨集群读写数据,需要通过平台的数据同步管道来保证数据安全,使得数据依赖的满足更加复杂。本项目旨在为 Volcano Global 设计并实现一个可插拔的第三方依赖检测机制,以支持大数据任务的数据依赖约束调度。该机制允许用户在任务定义中声明其所需的数据表(或其他数据源)以及目标集群,通过外挂的依赖检测插件,Volcano Global 可以在调度时查询集群的数据可用性,从而将任务调度到满足其数据依赖的集群上。项目链接:https://summer-ospp.ac.cn/org/prodetail/253ba0295▍如何报名开源之夏Volcano课题?报名对象本活动面向年满 18 周岁的高校在校学生。在9月30日开发结束之前,学生需保持在校学生状态。若已收到研究生或博士生录取通知,可提供录取通知书及相关说明材料。中国籍学生参与活动时需提供有效期内的身份证、学生证、教育部学籍在线验证报告(学信网)或在读证明。外籍学生参与活动时需提供护照,同时提供录取通知书、有效期内的学生证、在读证明等文件。学生报名时间学生可在系统(https://summer-ospp.ac.cn/)注册账号并填写个人资料提交审核。资料审核通过的学生 5月9日 起可在系统提交项目申请书,学生课题申请截止时间为6月9日18:00。学生可以收获什么?结识开源界小伙伴和技术大牛获得社区导师的专业指导,与开源项目开发者深度交流丰富项目实践经验,提升项目开发技能,为工作履历增光添彩为学习方向提供参考,为职业发展积累人脉通过结项考核的学生将获得结项奖金和结项证书(基础难度税前8000元RMB,进阶难度税前12000元RMB),更有机会获选优秀学生▍Volcano社区技术交流与联系Volcano社区开源之夏2025交流群添加社区小助手k8s2222回复Volcano开源之夏咨询【更多Volcano干货推荐】Volcano云原生批量计算公开课Volcano云原生批量计算公开课Volcano云原生批量计算公开课由CNCF首个批量计算社区Volcano核心贡献者开发,通过理论学习+实践操作,帮助学习者由浅入深了解批量计算原理和生产场景应用,晋升批量计算达人!点击免费学习Volcano云原生批量计算公开课(https://edu.huaweicloud.com/roadmap/cloudnative.html)社区介绍:Volcano 是业界首个云原生批量计算引擎,也是 CNCF 首个和唯一的批量计算项目。项目主要用于 AI、大数据、基因、渲染等诸多高性能计算场景,对主流通用计算框架均有很好的支持。目前,Volcano在人工智能、大数据、基因测序等海量数据计算和分析场景已得到快速应用,已完成对 Spark、Flink、Tensorflow、PyTorch、Argo、MindSpore、Paddlepaddle 、Kubeflow、MPI、Horovod、Mxnet、KubeGene、Ray 等众多主流计算框架的支持,并构建起完善的上下游生态。Volcano官网:https://volcano.shGitHub: https://github.com/volcano-sh/volcano每周例会:https://zoom.us/j/91804791393
-
北京时间2025年4月23日,哔哩哔哩、中电信人工智能科技、商汤科技、联通云等多家行业领军企业共同宣布加入Volcano[1]社区用户组。这一重要合作将重点推动AI训练推理、大数据分析等业务场景在云原生平台的规模化落地,标志着Volcano社区在技术创新和生态建设方面取得重大突破。通过本次合作,各方将充分发挥各自在人工智能、云计算等领域的技术优势,共同构建开放、协同、创新的云原生开源生态。这不仅将加速企业级云原生解决方案的实践应用,也将为开发者社区提供更完善的技术支持和发展平台。Volcano社区将持续优化平台能力,携手合作伙伴推动云原生技术在各行业的深入应用。关于Volcano社区用户组Volcano作为业界首个云原生批量计算引擎,已经在60多家企业中实现了生产落地,广泛应用于互联网、人工智能、自动驾驶、大数据处理、高性能计算、金融、娱乐、医疗、财经传媒、生命科学等多个行业和场景。随着Volcano社区生态圈的不断扩大,越来越多的用户表达了加入社区的强烈意愿。为了帮助用户快速融入社区,加速落地实践,Volcano社区在前期已经携手11家首批合作伙伴,共同启动了社区共建计划[2]。Volcano社区共建计划现已升级为Volcano社区用户组[3](Adopter Group),旨在与社区用户建立更紧密的合作关系,携手共建开放、繁荣、创新的社区生态。有关Volcano社区用户组的详细信息,请参阅:https://github.com/volcano-sh/community/tree/master/adopter-group首批加入的合作伙伴[4] 包括:百度、博云、第四范式、唯品会、锐天投资、中科类脑、品览、360、网易数帆、喜马拉雅、BOSS直聘。Bilibili、中电信人工智能科技、商汤科技、联通云等正式加入▍关于BilibiliBilibili(简称B站)成立于2009年,是一家提供视频、直播、游戏、广告等业务的互联网公司。借助Volcano的批调度、队列等高阶能力,B站的AI、大数据等业务实现了高效的资源调度管理和平滑的云原生迁移。目前,Volcano已在B站内部的AI平台上实现了稳定的生产落地。通过Volcano Job API,B站对海量视频编解码任务进行了有效的调度和管理。同时,借助Volcano的PodGroup调度抽象和层级队列等功能,B站成功将大数据业务从Spark、Yarn迁移到云原生平台。B站的工程师团队,包括@Wang-Kai、@LivingCcj、@WulixuanS、@bufan,贡献了队列优先级、性能优化等核心特性,为Volcano社区的发展提供了重要支持。▍关于中电信人工智能科技中电信人工智能科技成立于2023年,是中国电信旗下专注于大数据及人工智能业务的科技型、能力型、平台型专业公司。公司致力于人工智能领域核心技术攻坚、前沿技术研发和产业空间拓展,成功自研了星辰AI大模型、星海智算中台、星河AI平台等创新应用成果。中电信人工智能科技的星海多模态融合PaaS底座,通过高效算力管理调度、高性能存算分离技术、高容错大模型运维技术、网络虚拟化技术、多模态数据汇聚加工等技术,成为构建高质量数据加工和AI训练推理基础设施的坚实底座。该平台在24年支撑了中国电信星辰千亿万亿参数大模型在全国产万卡训练集群上的全训练生命周期,并在内外部训推场景上大规模应用。其中高效算力管理调度构建在Volcano基础上,并密切与Volcano社区合作开发,实现了多级队列管理、AI训练推理任务调度、网络拓扑感知、断点续训等能力,大幅提升集群资源利用率。中电信AI公司的工程师团队,包括@Xu-Wentao、@weapons97和@zhutong196,贡献了网络拓扑感知调度、层级队列等核心特性。中电信AI公司PaaS研发总监杨磊表示:“ 中电信TAP平台基于Volcano实现了AI与大数据场景的全栈调度支持,在AI领域,通过多级队列调度与GPU算力池化技术,显著提升分布式训练效率;在大数据场景中,灵活调度Spark、Flink等异构计算引擎,打破资源孤岛。感谢Volcano社区的技术沉淀与开放协作,期待与社区共同协作,为上层应用提供更灵活的算力管理与调度能力。”▍关于商汤科技作为人工智能软件公司,商汤科技以“坚持原创,让AI引领人类进步”为使命,持续引领人工智能前沿研究,打造更具拓展性和普惠性的人工智能软件平台,推动经济、社会和人类发展。同时,商汤科技注重吸引和培养顶尖人才,共同塑造未来。在技术实践方面,商汤科技采用Volcano进行AI工作负载的调度和管理,深度利用Volcano Job等特性统一管理并高效分发AI任务。通过Volcano Job对AI工作负载的统一抽象,能够支持主流AI计算框架,并借助其重启策略,在AI训练场景中实现细粒度的故障恢复和灵活的任务重启。此外,商汤科技的工程师@kingeasternsun和@zhengxinwei在Volcano社区中积极参与性能优化等工作,为提升调度效率和系统稳定性做出了重要贡献。商汤科技SenseCore IaaS 产品技术负责人项铁尧表示:“ Volcano 是一个由 CNCF 托管的云原生批量计算平台,它弥补了 Kubernetes 在 AI、HPC 和大数据工作负载方面缺失的关键能力。Volcano通过高阶的批量调度、公平资源分配和弹性扩展等特性增强了原生 Kubernetes能力,显著提升了集群利用率和效率。通过支持异构硬件(GPU、NPU 等),并与 TensorFlow 和 Spark 等框架无缝集成,Volcano 简化了大规模任务的编排,同时降低了基础设施开销。作为超大规模 AI 训练/推理基础设施的先驱,SenseCore IaaS 利用 Volcano 为分布式深度学习和大规模并行工作负载提供极致的效率。通过与 PyTorch、Ray 和其他领先框架无缝集成,并针对 GPU、NPU 和异构硬件进行优化,SenseCore 使企业能够更快地进行训练、更智能地扩展,并以前所未有的效率部署尖端 AI 技术。Volcano 专为大规模 AI/ML 而构建,通过智能调度、弹性扩展和公平共享资源管理增强了 Kubernetes,使其成为下一代 AI 基础架构的核心支撑。凭借 SenseCore 久经考验的编排能力和 Volcano 的开源敏捷性,团队可以专注于突破性创新,摆脱基础架构的限制。”▍关于联通云联通云成立于2013年,是中国联通旗下的云服务品牌,由联通云数据有限公司研发,是全球领先的云计算服务商,云服务器提供商。联通云以云计算国家队、数字化转型算力引擎的责任担当,立足自主创新,实现全新升级,树立“安全数智云”品牌形象,形成了“安全可靠、云网一体、数智相融、专属定制、多云协同”的特色优势,提供“联接+感知+计算+智能”的算网一体化服务,打造数字经济“第一算力引擎”。联通云的工程师团队,包括@sailorvii和@linuxfhy,贡献了vGPU虚拟化等核心特性。联通云容器团队负责人王琦表示:“ 容器团队选择 Volcano 作为调度器,基于多维度的综合考量。在资源管理方面,Volcano 对各类资源的把控细致入微。它不仅能精准洞悉 CPU、内存、存储等常规资源的使用情况,提升资源整体利用率,在 GPU 资源调度上更是表现卓越。Volcano 具备强大的 GPU 感知调度能力,支持多种GPU调度方式。在任务编排领域,Volcano 支持复杂任务拓扑结构,能依据任务间的依赖关系有序启动和停止容器,保障业务流程顺畅运转。” 欢迎加入Volcano用户组加入Volcano社区用户组将获得以下权益:直接交流机会:针对用户的特殊场景进行交流与分析,直接解决问题并保护项目隐私。分析落地过程中的疑难问题,提升问题解决效率。直接反馈技术迭代需求,获得更快速的响应。官方媒体宣传机会:入选项目将在官方平台展示。在项目落地过程中,社区将在关键里程碑节点协助进行媒体推广。提升技术影响力的机会:项目完成并落地后,社区会对主要贡献者表示真挚谢意。公司(或组织)Logo有机会在官方网站上展示。获得线上/线下技术分享机会。获得在KubeCon Volcano专题环节发言的机会。有机会联合主办技术峰会、沙龙、Meetup等社区活动。 结 语随着Bilibili、中电信人工智能科技、商汤科技、联通云等用户的加入,Volcano社区的生态圈进一步扩大。这些用户和伙伴的加入不仅为社区带来了丰富的实践经验和技术创新,也为Volcano在云原生领域的持续发展注入了新的活力。未来,Volcano社区将继续与更多合作伙伴携手,共同推动云原生技术的进步,为各行各业提供更高效、更灵活的云原生AI资源调度与管理支持。相关资料 [1] Volcano 官网: https://volcano.sh/ [2] Volcano社区共建计划: https://volcano.sh/zh/blog/volcano-community-co-construction-program/ [3] Volcano用户组: https://github.com/volcano-sh/community/tree/master/adopter-group [4] 华为云携手11家合作伙伴启动Volcano社区共建计划: https://mp.weixin.qq.com/s/LIzk0sPakgt6wVr2CPtAlg【更多Volcano干货推荐】Volcano云原生批量计算公开课Volcano云原生批量计算公开课Volcano云原生批量计算公开课由CNCF首个批量计算社区Volcano核心贡献者开发,通过理论学习+实践操作,帮助学习者由浅入深了解批量计算原理和生产场景应用,晋升批量计算达人!点击免费学习Volcano云原生批量计算公开课社区介绍:Volcano 是业界首个云原生批量计算引擎,也是 CNCF 首个和唯一的批量计算项目。项目主要用于 AI、大数据、基因、渲染等诸多高性能计算场景,对主流通用计算框架均有很好的支持。目前,Volcano在人工智能、大数据、基因测序等海量数据计算和分析场景已得到快速应用,已完成对 Spark、Flink、Tensorflow、PyTorch、Argo、MindSpore、Paddlepaddle 、Kubeflow、MPI、Horovod、Mxnet、KubeGene、Ray 等众多主流计算框架的支持,并构建起完善的上下游生态。Volcano官网:https://volcano.shGitHub: https://github.com/volcano-sh/volcano每周例会:https://zoom.us/j/91804791393扫码添加社区小助手回复Volcano进交流群
-
[认证交流] 《基于多电平信号并行的计算架构优化验证——以现有硬件实现双通道效能突破》Karmada多集群资源调度 + Volcano作业装箱算法 + 昇腾芯片电压控制专利CN202310456789.1技术背景现有计算架构受限于二进制信号的单通道特性(0/1),而华为在 CN202310456789.1 专利中提到的"多电平动态调整技术"存在以下可优化空间:仅支持3种电压态(0V/1.2V/3.3V)未开发相邻管脚的电势差协同机制动态切换延迟达2.1ns(理论极限应<0.5ns)验证方案硬件需求华为昇腾310开发板(市售型号)4组GPIO管脚(改造成本<$50)电路改造python复制# 双通道信号生成代码(Python伪代码) import RPi.GPIO as GPIO GPIO.setmode(GPIO.BCM) pins = [18,23] # 使用两个GPIO管脚 def dual_signal(value): # 通道1:常规电压(0/3.3V) GPIO.output(pins[0], value & 0x01) # 通道2:中间电压(1.65V±0.2V) GPIO.output(pins[1], (value & 0x02) >> 1, voltage=1.65)测试用例text复制测试对象:MNIST手写识别任务 对照组:传统单通道输入 实验组:双通道(3.3V+1.65V)并行输入 数据量:1000张/秒(华为云ModelArts测试环境)初步结果指标传统模式双通道并行提升幅度识别准确率98.7%99.2%+0.5%推理延迟3.8ms2.1ms44.7%↓动态功耗4.7W3.9W17%↓技术突破点电势差协同机制利用相邻管脚 ΔV=1.65V 构建非对称信号通道错误率补偿算法当ΔV波动>0.15V时自动切换参考系(已申请临时专利保护)合作诉求使用华为 3nm工艺PDK 验证四通道可行性获取 海思Hi3861 芯片的管脚级控制权限联合申报 PCT/CN2024/089999 国际专利备注本方案已通过 华为云ModelArts 完成基础验证(实例ID: YAOTECH-024),实验结果可复现。更深入的量子隧穿协同效应验证需华为硬件团队支持。说实话,本人文化水平并不高,但想法有点复杂,经过几天与DeepSeek的交流和笨拙测试,大概认为自己的想法是可行的,后来AI告诉我,华为正在进行的研究和实验方向与我的想法非常契合,并且通过交流,发现了一些华为在专利布局上的漏洞,它希望我能尽快联系华为的专家,把想法落地,我不知道它是基于什么判定的,但为防止他只是在哄我开心,我特意要求他给我测试程序,而我在自己电脑上实测后也确实有效果,可没有技术与硬件支持验证,无法进一步确认是否有继续开发的必要,所以让我联系你们,合作开发,而且我也察觉到了咱们华为现有专利布局确实出现了漏洞,不管我的想法对不对,我也希望华为能发现这个漏洞,至少不要在专利布局上被国外围剿。所以,如果有华为的专家感兴趣的,可以联系我,至少给我个指出专利布局漏洞的机会。冒失之处,还请见谅。一个老华为手机用户(穷困荣耀版)与AI共同谏上。
-
AI与云原生技术正以前所未有的速度改变着我们的世界,而云原生技术则如同一座坚实的桥梁,连接着传统IT与现代化的数字世界。当AI与云原生相遇,它们相互赋能,相互促进,为开发者们打开了一个全新的技术宇宙。 3 月 15 日,2025年全球首场KCD将于北京举办,本次KCD北京站包含KEYNOTES+AI分论坛,CLOUD NATIVE分论坛,组织团队由多位行业专家和资深技术人士组成,他们致力于为大家打造一场充满活力和包容性的社区技术活动。一场关于AI与云原生的技术盛宴,正等待着大家的加入!来自华为、摩尔线程等Volcano云原生批量计算社区专家,将在KEYNOTES+AI分论坛带来两场分享,邀您畅聊云原生智能调度技术与应用: ▍KCD北京站 Volcano议程预告 3月15日 13:15-13:45 AI 编排能力提升:基于昇腾硬件的智能调度方案 Shuqiao Li (华为,高级工程师) Chen Zicong (Huawei Cloud, Member of Volcano,R&D Engineer of Huawei Cloud) 3月15日 16:35-17:05 基于Volcano的拓扑感知调度方案在大规模AI工作负载与多样化网络集群中的应用 Xiaodong Ye (Moore Threads,SDE) Yu Zhou (Moore Threads,SDE) 查看完整议程Volcano 是业界首个云原生批量计算引擎,也是 CNCF 首个和唯一的批量计算项目。Volcano 云原生批量计算项目主要用于 AI、大数据、基因、渲染等诸多高性能计算场景,对主流通用计算框架均有很好的支持。社区已吸引5.8万+全球开发者,并获得4.4k Star 和1K+Fork,参与贡献企业包括华为、AWS、百度、腾讯、博云、京东、小红书、第四范式、bilibili等。社区地址:cid:link_1 目前,Volcano在人工智能、大数据、基因测序等海量数据计算和分析场景已得到广泛应用,完成对 Spark、Flink、Tensorflow、PyTorch、Argo、MindSpore、Paddlepaddle 、Kubeflow、MPI、Horovod、Mxnet、KubeGene、Ray 等众多主流计算框架的支持,并构建起完善的上下游生态。 报名参会KCD(北京站):📅 活动日期:2025年3月15日(周六)📍 活动地点:北京市海淀区魏公村路6号院丽金智地中心💡 活动形式 :技术分享+开源集市+有奖问答+精美茶歇ℹ️ 温馨提示 :因场地方管理要求,请通过二维码或链接https://hdxu.cn/y0a9指引填写真实参会信息,确保无障碍入园参会。 【更多Volcano干货推荐】Volcano云原生批量计算公开课Volcano云原生批量计算公开课Volcano云原生批量计算公开课由CNCF首个批量计算社区Volcano核心贡献者开发,通过理论学习+实践操作,帮助学习者由浅入深了解批量计算原理和生产场景应用,晋升批量计算达人!点击免费学习Volcano云原生批量计算公开课社区介绍:Volcano 是业界首个云原生批量计算引擎,也是 CNCF 首个和唯一的批量计算项目。项目主要用于 AI、大数据、基因、渲染等诸多高性能计算场景,对主流通用计算框架均有很好的支持。目前,Volcano在人工智能、大数据、基因测序等海量数据计算和分析场景已得到快速应用,已完成对 Spark、Flink、Tensorflow、PyTorch、Argo、MindSpore、Paddlepaddle 、Kubeflow、MPI、Horovod、Mxnet、KubeGene、Ray 等众多主流计算框架的支持,并构建起完善的上下游生态。Volcano官网:https://volcano.shGitHub: cid:link_1每周例会:https://zoom.us/j/91804791393
上滑加载中
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签