摘要:Volcano社区v1.6.0版本正式发布。此次版本增加了弹性作业管理、基于真实负载的动态调度、 基于真实负载的重调度、Volcano Job插件——MPI等多个新特性。

本文分享自华为云社区《Volcano社区v1.6.0版本正式发布》,作者:云容器大未来。

近日,Volcano社区v1.6.0版本正式发布。此次版本增加了弹性作业管理、基于真实负载的动态调度、 基于真实负载的重调度、Volcano Job插件——MPI等多个新特性。

Volcano 是业界首个云原生批量计算项目,于2019年6月在上海KubeCon正式开源,并在2020年4月成为CNCF官方项目。2022年4月,Volcano正式晋级为CNCF孵化项目。Volcano社区开源以来,受到众多开发者、合作伙伴和用户的认可和支持。截止目前,累计有400+全球开发者向项目贡献了代码。

Volcano v1.6.0 关键特性介绍

1.弹性作业调度

v1.6.0版本新增了弹性作业的调度支持,配合Volcano Job或Pytorch Job的弹性作业管理,实现AI训练任务、大数据分析的加速,同时结合云上的Spot instance 实现成本的缩减。

弹性作业允许Job的副本数在[min, max]范围弹性伸缩,其中min为job的minAvailable,max为job的副本数,弹性调度会优先为minAvailable Pod分配资源,保障每个应用的最小资源需求优先满足,如果有闲置资源,调度器会为Elastic Pod分配资源,加速计算进程。资源紧张时,调度器优先抢占Elastic Pod实现缩容。同时调度器也会平衡不同优先级的弹性作业间的资源分配,如支持高优先级作业抢占低优先级作业的弹性副本部分的资源。

设计文档:

https://github.com/volcano-sh/volcano/blob/master/docs/design/elastic-scheduler.md

Issuehttps://github.com/volcano-sh/volcano/issues/1876

2.基于真实负载的动态调度

当前的基于分配率的调度模式在一些场景下会带来各个节点资源使用率不均衡的现象,如部分节点高分配率、低使用率等。v1.6.0版本中Volcano实现了和Prometheus的协同,借助Prometheus采集的集群节点负载数据进行调度决策,保证各个节点使用率最大程度均衡,同时允许用户配置节点cpu,memory的上限值,防止部分节点使用率过高导致节点异常。

调度策略配置样例如下:

actions: "enqueue, allocate, backfill"
tiers:
- plugins:
- name: priority
- name: gang
- name: conformance
- name: usage  # usage based scheduling plugin
arguments:
thresholds:
CPUUsageAvg.5m: 90 # The node whose average usage in 5 minute is higher than 90% will be filtered in predicating stage
MEMUsageAvg.5m: 80 # The node whose average usage in 5 minute is higher than 80% will be filtered in predicating stage
- plugins:
- name: overcommit
- name: drf
- name: predicates
- name: proportion
- name: nodeorder
- name: binpack
metrics:                    # metrics server related configuration
address: http://192.168.0.10:9090 # mandatory, The Prometheus server address
interval: 30s                    # Optional, The scheduler pull metrics from Prometheus with this interval, 5s by default

设计文档:

https://github.com/volcano-sh/volcano/blob/master/docs/design/usage-based-scheduling.md

Issuehttps://github.com/volcano-sh/volcano/issues/1777

3.基于真实负载的重调度

不合理的调度策略和作业生命周期的动态变化导致计算节点资源利用率不均衡,v1.6.0版本增加了基于真实负载和用户自定义重调度策略,驱逐部分高负载节点中的负载至低负载节点,周期性检测所有节点真实负载。即基于实际资源利用率而不是请求资源重新计划pod,支持定制配置的重新调度策略。

以上运行进一步平衡了各节点真实负载,提高集群资源利用率。

## Configuration Option actions: "enqueue, allocate, backfill, shuffle"  ## add 'shuffle' at the end of the actionstiers:- plugins:- name: priority- name: gang- name: conformance- name: rescheduling       ## rescheduling pluginarguments:interval: 5m           ## optional, the strategies will be called in this duration periodcally. 5 minuters by default.strategies:            ## required, strategies working in order- name: offlineOnly- name: lowPriorityFirst- name: lowNodeUtilizationparams:thresholds:"cpu" : 20"memory": 20"pods": 20targetThresholds:"cpu" : 50"memory": 50"pods": 50queueSelector:         ## optional, select workloads in specified queues as potential evictees. All queues by default.- default- test-queuelabelSelector:         ## optional, select workloads with specified labels as potential evictees. All labels by default.business: offlineteam: test- plugins:- name: overcommit- name: drf- name: predicates- name: proportion- name: nodeorder- name: binpack

设计文档:

https://github.com/volcano-sh/volcano/blob/master/docs/design/rescheduling.md

Issue:https://github.com/volcano-sh/volcano/issues/1777

4. Volcano 作业插件——MPI

使用Volcano Job可以运行MPI任务,Volcano作业插件(即svc,env和ssh作业插件)也为MPI任务的master和worker自动配置了免密通信、环境变量注入等工作。

新版本提供了一种新的运行MPI任务的方式,进一步简化用户的配置,优化使用体验。用户无需熟悉shell语法、无需关心master和worker的通信问题、无需手动配置ssh认证,非常简洁优雅的就可以启动一个MPI任务。

配置文件样例:

apiVersion: batch.volcano.sh/v1alpha1
kind: Job
metadata:name: lm-mpi-job
spec:minAvailable: 1schedulerName: volcanoplugins:mpi: ["--master=mpimaster","--worker=mpiworker","--port=22"]  ## MPI plugin registertasks:- replicas: 1name: mpimasterpolicies:- event: TaskCompletedaction: CompleteJobtemplate:spec:containers:- command:- /bin/sh- -c- |mkdir -p /var/run/sshd; /usr/sbin/sshd;mpiexec --allow-run-as-root --host ${MPI_HOST} -np 2 mpi_hello_world;image: volcanosh/example-mpi:0.0.1name: mpimasterworkingDir: /homerestartPolicy: OnFailure- replicas: 2name: mpiworkertemplate:spec:containers:- command:- /bin/sh- -c- |mkdir -p /var/run/sshd; /usr/sbin/sshd -D;image: volcanosh/example-mpi:0.0.1name: mpiworkerworkingDir: /homerestartPolicy: OnFailure

设计文档:

https://github.com/volcano-sh/volcano/blob/master/docs/design/distributed-framework-plugins.md

Issue:https://github.com/volcano-sh/volcano/pull/2194

- 相关链接 - 

Release note: https://github.com/volcano-sh/volcano/releases/tag/v1.6.0

Branch:https://github.com/volcano-sh/volcano/tree/release-1.6

深入了解Volcano

Volcano云原生批量计算项目主要用于 AI、大数据、基因、渲染等诸多高性能计算场景,对主流通用计算框架均有很好的支持。社区已吸引2.6万全球开发者,并获得2.4k Star和550+ Fork,参与贡献企业包括华为、AWS、百度、腾讯、京东、小红书等。目前,Volcano在人工智能、大数据、基因测序等海量数据计算和分析场景已得到快速应用,已完成对Spark、Flink、Tensorflow、PyTorch、Argo、MindSpore、Paddlepaddle 、Kubeflow、MPI、Horovod、mxnet、KubeGene等众多主流计算框架的支持,并构建起完善的上下游生态。

Volcano官网:https://volcano.sh

Github : https://github.com/volcano-sh/volcano

点击关注,第一时间了解华为云新鲜技术~

Volcano社区v1.6.0版本正式发布相关推荐

  1. Jeecgboot-Vue3 v1.2.0 版本正式发布,企业级低代码平台

    项目介绍 Jeecgboot-Vue3 采用 Vue3.0.Vite. Ant-Design-Vue.TypeScript 等新技术方案,包括二次封装组件.utils.hooks.动态菜单.权限校验. ...

  2. SOFA Weekly|MOSN v1.3.0 版本发布、公众号半自助投稿、本周 Contributor QA

    SOFA WEEKLY | 每周精选  筛选每周精华问答,同步开源进展 欢迎留言互动- SOFAStack(Scalable Open Financial Architecture Stack)是蚂蚁 ...

  3. 独家专访:SequoiaDB 3.0 版本正式发布!协议级完整兼容MySQL!

    SequoiaDB 3.0 版本正式发布!协议级完整兼容MySQL! 标签:SequoiaDB 3.0,MySQL,OLTP SequoiaDB巨杉数据库 3.0,在产品GA发布后,经过近半年在金融级 ...

  4. HBase 2.0版本正式发布

    1.HBase 2.0版本正式发布 关于HBase版本定义 HBase从1.0.0版本开始,在版本定义上正式遵循了Semantic Versioning规范: 一个版本号,由三部分组成: MAJOR. ...

  5. 以太坊2.0客户端Lighthouse发布v1.3.0版本,为高优先级建议立即更新

    官方消息,以太坊2.0客户端Lighthouse开发团队Sigma Prime表示,发布Lighthouse v1.3.0版本.该版本包括对信标链节点的重要错误修复,应将其视为所有质押者的高优先级,应 ...

  6. 所有图表类型将在 v1.9.0 版本开始强制使用 ChartItem 进行数据项配置!

    所有图表类型将在 v1.9.0 版本开始强制使用 ChartItem 进行数据项配置! 原因:我们安装的pyecharts版本是最新版本1.8.1,而很多实例是基于1.7.1版本而设计的,故而我们需要 ...

  7. 小程序官网CMS开源项目出炉,Weixin-App-CMS 1.0 版本正式发布

    小程序官网CMS开源项目出炉,Weixin-App-CMS 1.0 版本正式发布 Weixin-App-CMS 是捷微团队开发的微信小程序CMS开源项目,涵盖了微网站的基本功能,能够快速发布简单易用的 ...

  8. QingScan v1.1.0 版本发布会实录

    一.背景 QingScan今天晚上要发布v1.1.0版本了,这个版本黑盒详情页改版还是蛮大的,另外添加了队列功能和扫描进度信息:那今天晚上主要是讲解这个QingScan的一个新版本的一个使用方法以及搭 ...

  9. openGauss 2.0.0 版本正式发布

    3月31日,openGauss 2.0.0 版本正式上线!openGauss 2.0.0 是openGauss社区发布的第一个Release版本.2.0.0版本与之前版本保持兼容的同时,也新增了众多特 ...

最新文章

  1. linux下挂载和卸载的命令的用法:mount 、umount
  2. Eclipse出现Class Not Found异常时可以参考我所知道的一个方案
  3. python读取excel送到网页_python怎么读取excel!怎么用python将excel数据写入网页中
  4. linux 设备文件分区命令,Linux常见设备及相应/dev/xxx文件名、Mount Point、挂载点、Mount命令、fstab、挂载分区(示例代码)...
  5. Spring 实践 -拾遗
  6. 后台管理系统好用的UI框架
  7. 每周荐书:大数据、深度学习、架构(评论送书)
  8. MCGS图库 触摸屏组态图库 触摸屏图库 昆仑通态触摸屏专用CGS
  9. 软件人员kpi制定模板_KPI绩效考核软件有哪些?拥有多种考核模板i人事
  10. 统信UOS系统安装mysql_统信UOS系统手动安装分区方案
  11. 数模算法与应用:预测模型(1)美日硫磺岛战役模型
  12. ★如何引导客户需求?几个经…
  13. Win10 1809 PowerShell美化教程
  14. 有源滤波器: 基于UAF42的50Hz陷波器仿真
  15. 微分,梯度及梯度下降法
  16. 使用百度API获取地名坐标信息
  17. esp32-s2 wifi
  18. Swift 语法初探(1):Swift 与 Java 的小比较
  19. 转载过来的一些嵌入式资料
  20. lisp 边坡_史诗级测量大神分享---道路测量全过程经验

热门文章

  1. CE认证如何办理,CE认证流程是什么?
  2. 【scikit-learn】如何用Python和SciKit Learn 0.18实现神经网络
  3. 【老生谈算法】matlab实现制动力优化源码——制动力优化
  4. 中企动力与九盈集团同行 布局互联网金融行业
  5. 遗传算法(matlab)
  6. Matlab绘制虚数和复数数据
  7. 会声会影X6-高级运动等效果的练习实践-与您分享...
  8. 那个外汇交易软件好用一些
  9. 系统架构设计师-软件工程
  10. Java幸运数求和_[Java 实现] 获取幸运数字,相信你就是 Lucky Dog !