Volcano 社区 v1.7.0 版本正式发布 | 云原生批量计算
摘要:北京时间2023年1月9日,Volcano社区v1.7.0版本正式发布。
本文分享自华为云社区《Volcano 社区 v1.7.0 版本正式发布 | 云原生批量计算》,作者:华为云云原生团队 。
北京时间2023年1月9日,Volcano社区v1.7.0版本正式发布。此次版本增加了以下新特性:
- Pytorch Job插件功能强化
- Ray on Volcano
- 增强Volcano对Kubernetes通用服务的调度能力
- 支持Volcano的多架构镜像
- 优化队列状态信息等
Volcano是业界首个云原生批量计算项目,于2019年6月在上海KubeCon正式开源,并在2020年4月成为CNCF官方项目。2022年4月,Volcano正式晋级为CNCF孵化项目。Volcano社区开源以来,受到众多开发者、合作伙伴和用户的认可和支持。截止目前,累计有490+全球开发者向项目贡献了代码。

Volcano v1.7.0 关键特性介绍
▍1. Pytorch Job强化功能插件
Pytorch是当下最流行的AI框架之一,已被广泛应用于计算机视觉,自然语言处理等深度学习领域,并且已有越来越多的用户开始以容器化的方式在Kubernetes上运行Pytorch来获得更高资源利用率和并行效率。
本次1.7版本提供了Pytorch Job强化功能插件,,免去了容器端口、MASTER_ADDR、MASTER_PORT、WORLD_SIZE、RANK环境变量等众多繁琐的手动配置环节,让用户可以用极简的方式在Volcano上运行Pytorch Job。
Volcano社区当前提供了TensorFlow、MPI和Pytorch等Job强化功能插件,帮助用户更简洁高效的运行对应的训练框架和计算作业。
此外,Volcano还提供了Job插件的扩展开发框架,满足高阶用户针对复杂场景定制Job插件的需求。
设计文档:Pytorch-plugin
用户手册:Pytorch-plugin-user-guide
Issue:#2292
https://github.com/volcano-sh/volcano/issues/2292
▍2. Ray on Volcano
Ray 是一个用于扩展 AI 和 Python 应用程序的统一框架,可以在任何机器、集群、云提供商和 Kubernetes 上运行,并具有不断发展完善的社区生态。
当前,机器学习工作负载的计算密集度越来越高,单节点开发环境已无法满足训练任务在资源上的需求,Ray可以将同一套代码从单机运行无缝扩展到集群中运行。Ray是面向通用场景进行的设计,可以高效运行任何类型的工作负载。
该特性实现Volcano和Ray的协同工作,使用Volcano为Ray提供批量调度功能。目前该特性已在KubeRay v0.4(https://github.com/ray-project/kuberay/releases/tag/v0.4.0)版本正式发布。
用户手册:KubeRay-integration-with-Volcano
https://ray-project.github.io/kuberay/guidance/volcano-integration/#kuberay-integration-with-volcano
Issue:
#2429:https://github.com/volcano-sh/volcano/issues/2429#213:https://github.com/ray-project/kuberay/issues/213
▍3. 增强对Kubernetes通用服务的调度能力
在不同的业务场景下,调度器发挥的价值与能力各有不同。比如,在批量计算场景中,Volcano的调度策略和能力更为丰富;通用服务调度场景中,Kubernetes默认调度器的能力更为均衡。但用户的集群中通常不会只运行一种类型的任务,在既有批量计算任务运行,又需要调度通用服务的场景下,如何兼顾不同类型任务的调度是一项值得研究的工作。
从1.7版本开始,Volcano提供对Kubernetes 默认调度器完全兼容的能力,可用于调度管理长期运行的服务。通过本次功能强化,用户可以使用 Volcano 统一调度长时间运行的服务和批处理工作负载。
重点增强项如下:
Volcano的 scheduler 和 webhook 支持多调度器
支持 NodeVolumeLimits 插件
支持 VolumeZone 插件
支持 PodTopologySpread 插件
支持 SelectorSpread插件
另外,本次版本将对Kubernetes的支持升级到了v1.25。
Issue:
#2394:https://github.com/volcano-sh/volcano/issues/2394
#2510:https://github.com/volcano-sh/volcano/issues/2510
▍4. 支持Volcano的多架构镜像
该特性通过交叉编译实现一键化编译Volcano多架构镜像功能,比如,可以在amd64架构机器上,一键化编译amd64和arm64架构的Volcano基础镜像,并上传至镜像仓库。用户安装部署时,会根据自身环境中机器架构自动选择合适的镜像运行,对开发者和用户更友好。
使用手册:building-docker-images
Issue:#2435
https://github.com/volcano-sh/volcano/pull/2435
▍5. 优化队列状态信息
该特性在队列状态信息中增加已分配资源实时统计功能,通过该功能,用户可以实时查看队列的资源分配情况,方便管理员动态规划资源,使集群资源得到最大化利用。Volcano通过队列的方式对集群资源进行分配管理,使用Capability字段来限制每个队列的资源上限,这是我们进行队列资源分配的硬约束。当前,在集群运行过程中,用户无法清楚的了解到队列中已分配资源和Capability中空闲资源的详细信息,有可能会在队列空闲资源不足时提交大量工作负载,导致作业挂起和autoScaler非预期的触发集群扩容,从而增加云资源的使用成本。通过该特性中新增加的状态信息,用户可以更清晰有效的管理集群资源,控制使用成本。
Issue:#2571
https://github.com/volcano-sh/volcano/issues/2571
致谢贡献者
致谢贡
Volcano v1.7.0 版本包含了来自29位贡献者的数百次代码提交,在此对各位贡献者表示由衷的感谢:
贡献者 GitHub ID:

相关链接
Release note:v1.7.0 https://github.com/volcano-sh/volcano/releases/tag/v1.7.0
Branch:release-1.7 https://github.com/volcano-sh/volcano/tree/release-1.7
深入了解Volcano
Volcano云原生批量计算项目主要用于 AI、大数据、基因、渲染等诸多高性能计算场景,对主流通用计算框架均有很好的支持。社区已吸引2.6万+全球开发者,并获得2.8k Star和670+ Fork,参与贡献企业包括华为、AWS、百度、腾讯、京东、小红书等。目前,Volcano在人工智能、大数据、基因测序等海量数据计算和分析场景已得到快速应用,已完成对Spark、Flink、Tensorflow、PyTorch、Argo、MindSpore、Paddlepaddle 、Kubeflow、MPI、Horovod、mxnet、KubeGene、Ray等众多主流计算框架的支持,并构建起完善的上下游生态。
Volcano社区技术交流地址
Volcano官网:https://volcano.sh
GitHub: https://github.com/volcano-sh/volcano
每周例会: https://zoom.us/j/91804791393
添加社区小助手k8s2222回复“Volcano”进入技术交流群
Volcano 社区 v1.7.0 版本正式发布 | 云原生批量计算的更多相关文章
- Volcano社区v1.6.0版本正式发布
摘要:Volcano社区v1.6.0版本正式发布.此次版本增加了弹性作业管理.基于真实负载的动态调度. 基于真实负载的重调度.Volcano Job插件--MPI等多个新特性. 本文分享自华为云社区& ...
- 重磅!业界首个云原生批量计算项目Volcano正式晋级为CNCF孵化项目
摘要:4月7日,云原生计算基金会(CNCF)宣布,由华为云捐献的业界首个云原生批量计算项目Volcano正式晋级为CNCF孵化项目. 4月7日,云原生计算基金会(CNCF)宣布,由华为云捐献的业界首个 ...
- Dapr v1.9.0 版本已发布
Dapr是一套开源.可移植的事件驱动型运行时,允许开发人员轻松立足云端与边缘位置运行弹性.微服务.无状态以及有状态等应用程序类型.Dapr能够确保开发人员专注于编写业务逻辑,而不必分神于解决分布式系统 ...
- [转帖]Kubernetes v1.17 版本解读 | 云原生生态周报 Vol. 31
Kubernetes v1.17 版本解读 | 云原生生态周报 Vol. 31 https://www.kubernetes.org.cn/6252.html 2019-12-13 11:59 ali ...
- 官宣!ElasticJob 3.0.0 版本正式发布
ElasticJob 是面向互联网生态和海量任务的分布式调度解决方案,由两个相互独立的子项目 ElasticJob-Lite 和 ElasticJob-Cloud 组成.它通过弹性调度.资源管控.以及 ...
- 微信小程序商城开源项目,Weixin-App-Shop 1.0 版本正式发布!!!
微信小程序商城开源项目,Weixin-App-Shop 1.0 版本正式发布 Weixin-App-Shop 是捷微团队开发的微信小程序商城开源项目,涵盖了微信商城的全部功能,能够快速发布简单易用的小 ...
- Vue CLI4.0版本正式发布了!一起来看看有哪些新的变化吧
Vue CLI4.0版本正式发布 这个主要的版本更新主要关注底层工具的必要版本更新.更好的默认设置和其他长期维护所需的微调. 我们希望为大多数用户提供平稳的迁移体验. Vue CLI v4提供了对Ni ...
- 巨杉数据库加入CNCF云原生应用计算基金会,共建开源技术生态
近日,巨杉数据库正式加入全球顶级开源社区,云原生应用计算基金会 (Cloud Native Computing Foundation,以下简称CNCF),成为CNCF基金会会员,是中国最早加入的开源云 ...
- Kubernetes v1.17 版本解读 | 云原生生态周报 Vol. 31
作者 | 徐迪.李传云.黄珂.汪萌海.张晓宇.何淋波 .陈有坤.李鹏审核 | 陈俊 上游重要进展 1. Kubernetes v1.17 版本发布 功能稳定性是第一要务.v1.17 包含 22 个增强 ...
- 二进制搭建Kubernetes集群(最新v1.16.0版本)
目录 1.生产环境k8s平台架构 2.官方提供三种部署方式 3.服务器规划 4.系统初始化 5.Etcd集群部署 5.1.安装cfssl工具 5.2.生成etcd证书 5.2.1 创建用来生成 CA ...
随机推荐
- Android 13 新特性及适配指南
Android 13(API 33)于 2022年8月15日 正式发布(发布时间较往年早了一些),正式版Release源代码也于当日被推送到AOSP Android开源项目. 截止到笔者撰写这篇文章时 ...
- Bob 的生存概率问题
Bob 的生存概率问题 作者:Grey 原文地址: 博客园:Bob 的生存概率问题 CSDN:Bob 的生存概率问题 题目描述 给定五个参数 n , m , i , j , k,表示在一个 n*m 的 ...
- nodered获取简单的时间
1.添加simpletime 的节点 2. 添加一个inject节点用来每1s循环获取当点的信息 3.添加一个函数节点对simpletime发来的msg进行解析 var payload=msg;var ...
- ubuntu 输入法IBUS 输入不成功问题
ubuntu 输入法IBUS 输入不成功问题 只需要在 输入如下代码 -Xms128m -Xmx750m -XX:ReservedCodeCacheSize=240m -XX:+UseConcMark ...
- tool1
//导出 public void excel(List<Long> ids, HttpServletResponse response) { List<StockPageVo> ...
- TCN代码详解-Torch (误导纠正)
TCN代码详解-Torch (误导纠正) 1. 绪论 TCN网络由Shaojie Bai, J. Zico Kolter, Vladlen Koltun 三人于2018提出.对于序列预测而言,通常考虑 ...
- 云原生之旅 - 12)使用 Kaniko 在 Kubernetes上构建 Docker 容器镜像
前言 前一篇文章[云原生之旅 - 11)基于 Kubernetes 动态伸缩 Jenkins Build Agents]有讲到在 Kubernetes Pod (Jenkins build agent ...
- 微信公众号调试经常报access_token is invalid or not latest rid
是因为我没有使用中控服务器,所以服务器上使用同一个appid和secret获取了access_token 调试的时候再重新获取了一个新的access_token,所以导致微信服务器发放了新的acces ...
- IDEA项目下out与target目录的区别详解
IDEA项目下out与target目录的区别详解 一.目录主要区别: out存放的是该项目下所有Module(模块)的编译结果. target存放的是单个Module的编译结果. 二.目录详解 out ...
- Java网络编程:Socket 通信 2
client----发送数据(输出流)------------(输入)-[管道流处理数据]-(输出)------接收数据(输入流)------server 文件传输: 客户端: 创建Socket连接对 ...