volcano社区v1.6.0版本正式发布(代码片段)

华为云开发者联盟 华为云开发者联盟     2022-10-20     777

关键词:

摘要: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 plugin
        arguments:
          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: lowNodeUtilization
              params:
                thresholds:
                  "cpu" : 20
                  "memory": 20
                  "pods": 20
                targetThresholds:
                  "cpu" : 50
                  "memory": 50
                  "pods": 50
          queueSelector:         ## optional, select workloads in specified queues as potential evictees. All queues by default.
            - default
            - test-queue
          labelSelector:         ## optional, select workloads with specified labels as potential evictees. All labels by default.
            business: offline
            team: 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: 1
 schedulerName: volcano
 plugins:
   mpi: ["--master=mpimaster","--worker=mpiworker","--port=22"]  ## MPI plugin register
 tasks:
   - replicas: 1
     name: mpimaster
     policies:
       - event: TaskCompleted
         action: CompleteJob
     template:
       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.1
             name: mpimaster
             workingDir: /home
         restartPolicy: OnFailure
   - replicas: 2
     name: mpiworker
     template:
       spec:
         containers:
           - command:
               - /bin/sh
               - -c
               - |
                 mkdir -p /var/run/sshd; /usr/sbin/sshd -D;
             image: volcanosh/example-mpi:0.0.1
             name: mpiworker
             workingDir: /home
            
         restartPolicy: 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.7.0版本正式发布|云原生批量计算

摘要:北京时间2023年1月9日,Volcano社区v1.7.0版本正式发布。本文分享自华为云社区《Volcano社区v1.7.0版本正式发布|云原生批量计算》,作者:华为云云原生团队。北京时间2023年1月9日,Volcano社区v1.7.0版本正式... 查看详情

apachedubbo多语言体系再添新员:首个rust语言版本正式发布(代码片段)

...现的首个版本,进一步丰富其多语言体系,这是社区全面对齐Dubbo3架构的第三个语言实现。对Rust语言社区来说,ApacheDubbo的加入也是其开源微服务开发框架生态非常重要的补充,Dubbo也成为Apache社区中 查看详情

apachedubbo多语言体系再添新员:首个rust语言版本正式发布(代码片段)

...现的首个版本,进一步丰富其多语言体系,这是社区全面对齐Dubbo3架构的第三个语言实现。对Rust语言社区来说,ApacheDubbo的加入也是其开源微服务开发框架生态非常重要的补充,Dubbo也成为Apache社区中 查看详情

volcano成spark默认batch调度器

摘要:对于Spark用户而言,借助Volcano提供的批量调度、细粒度资源管理等功能,可以更便捷的从Hadoop迁移到Kubernetes,同时大幅提升大规模数据分析业务的性能。2022年6月16日,ApacheSpark3.3版本正式发布,其... 查看详情

社区正式发布了跨平台的corewcf0.2.0

在发布CoreWCF0.1.0GA版本的半年之后,今天正式发布了0.2.0版本,具体说明参看 https://github.com/CoreWCF/CoreWCF/releases/tag/v0.2.0 .NET兼容性此版本依赖于.NETStandard2.0,可在支持.NETStandard2.0的任何.NET版本上运行。这意味着.NETFram... 查看详情

springcloudalibaba2022.0.0.0版本发布啦!(代码片段)

本次发布的SpringCloudAlibaba2022.0.0.0-RC1版本,是基于社区2022.x主干分支进行构建发布第一个ReleaseCandidate(RC)版本,考虑到本次版本升级属于重大版本变更,因此暂时先以RC版本形式发布,当前大家可以先试用起来,待后续时机成... 查看详情

apachedolphinscheduler3.0正式版重磅发布(代码片段)

点亮⭐️Star·照亮开源之路**GitHub:**https://github.com/apache/dolphinscheduler版本发布2022/8/102022年8月10日,ApacheDolphinScheduler在经过3.0.0alpha、3.0.0-beta-1、3.0.0-beta-2不断验证之后,终于迎来了社区期盼已久的第三个大版本! 查看详情

apachedolphinscheduler3.0正式版重磅发布(代码片段)

点亮⭐️Star·照亮开源之路**GitHub:**https://github.com/apache/dolphinscheduler版本发布2022/8/102022年8月10日,ApacheDolphinScheduler在经过3.0.0alpha、3.0.0-beta-1、3.0.0-beta-2不断验证之后,终于迎来了社区期盼已久的第三个大版本! 查看详情

apachedolphinscheduler3.0正式版重磅发布(代码片段)

点亮⭐️Star·照亮开源之路**GitHub:**https://github.com/apache/dolphinscheduler版本发布2022/8/102022年8月10日,ApacheDolphinScheduler在经过3.0.0alpha、3.0.0-beta-1、3.0.0-beta-2不断验证之后,终于迎来了社区期盼已久的第三个大版本! 查看详情

openstackrocky版本发布,九州云核心代码贡献全球第2

...代码贡献排名也新鲜出炉。根据stackalytics.com网站提供的社区贡献统计,截止9月3日,在Rocky代码贡献中,共有150多家企业和组织上榜,其中九州云在核心代码功能贡献排名全球第2,持续领跑国内企业。下面带大家细数在正式项目... 查看详情

starlingx8.0版本正式发布,可扩展性与稳定性大幅提升!

StarlingX社区已正式发布8.0版本,StarlingX是一个面向低延迟与高性能应用进行优化的开源边缘云计算及物联网云平台,通过集成Ceph、OpenStack、Kubernetes等软件构建了一个功能齐全的云软件栈,全方位支持电信运营商与企... 查看详情

visualstudio2017正式版各版本对比各版本区别

...区别:  微软发布了visualstudio2017正式版,该版本分为社区版、专业版和企业版。  微软在官网上给出了这些版本的功能比较,可以看出企业版依旧点满技能树,能够提供点对点的解决方案,充分满足正规企业的要求,虽然... 查看详情

微软visualstudio2017中文正式版下载–免费社区版/专业版/企业版

  作为“宇宙最强”的集成开发环境IDE,微软的VisualStudio不仅破天荒发布了macOS版本,如今终于也推出了其Windows的最新版本——VS2017正式版了。这对开发者来说无疑是个大消息,无论你是Windows还是Mac的用户,我们... 查看详情

opencv3.2正式发布啦

2016年12月23号OpenCV社区宣布了OpenCV3.2版本正式发布,这个是在OpenCV3.1版本发布一年以后再次升级。在3.2版本中有总数超过数千个的改进与修正,是OpenCV3.x系列中最重要的一次发布。同样OpenCV3.2版本SDK支持Windows、MacOS、Andoird与IOS。... 查看详情

opencloudos9.0发布:首个全自研服务器操作系统

OpenCloudOS正式发布全自研社区9.0版本,这是国内首个使用上游社区最新内核Kernel6.1的操作系统,提供了多体系架构和新硬件支持,并提供细致化的调优与系统适配。系统开源社区OpenCloudOS正式发布首个全自研社区9.0版本(以下简... 查看详情

modstartcmsv1.6.0快乐1024,系统功能提升

ModStartCMS管理系统ModStartCMS发布v1.6.0版本,新功能和Bug修复累计13项,快乐1024,系统功能提升。2021年10月24日ModStartCMS发布v1.6.0版本,增加了以下13个特性:·[新功能]任务调度器ScheduleProvider·[新功能]登录显示界... 查看详情

corewcf1.0正式发布,支持.netcore和.net5+的wcf(代码片段)

...序集可以通过Nuget.org得到,参见发布说明中的描述。社区项目CoreWCF于2019年6月作为社区项目 发布,在随后的3年中有众多的贡献者。作为社区项目,CoreWCF有大量的来自微软员工之外的贡献者,以及常规的来自AWS和... 查看详情

nacos2.2正式发布,新特性真香啊!

...和服务管理平台。最近,Nocos2.2已经正式发布了。Nacos社区于10月份发布了2.2.0-BETA版本,根据近1个多月的社区反馈,2.2.0-BETA没有发现严重的核心功能问题,主要的反馈集中在数据库插件的优化修复以及一些小bug修... 查看详情