​Volcano 社区 v1.6.0 版本正式发布


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

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 pluginarguments:thresholds:CPUUsageAvg.5m: 90 # The node whose average usage in 5 minute is higher than 90% will be filtered in predicating stageMEMUsageAvg.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: binpackmetrics:                    # metrics server related configurationaddress: http://192.168.0.10:9090 # mandatory, The Prometheus server addressinterval: 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/v1alpha1kind: Jobmetadata: name: lm-mpi-jobspec: 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 是基于 Kubernetes 构建的批量计算平台,源自于华为云 AI 容器,提供作业管理、批量调度、依赖管理、资源预留等能力,支持包括 TensorFlow、Spark、MPI、Slurm 在内的多个业界主流计算框架,主要帮助用户将 AI、大数据等资源消耗波动大、计算密集型的业务从传统的 Batch、HPC 系统快速迁移到云原生。Volcano 也是 CNCF 首个和唯一的容器批量计算项目。


相關推薦

2023-08-23

Volcano 社区 v1.8.0 版本正式发布,此次版本增加了以下新特性: 支持vGPU调度及隔离 支持vGPU和用户自定义资源的抢占能力 新增JobFlow工作流编排引擎 节点负载感知调度与重调度支持多样化的监控系统 优化Volcano对

2023-09-23

务实现,应用一跳入云,实现业务敏捷、高效创新。 2.Volcano特性升级,新能力释放大模型计算潜力 大模型时代,以GPU为核心的算力供给已成为大模型产业发展的关键基础设施,用户对于GPU资源的使用存在资源利用率低、资源

2023-07-27

ORM Vue.js : nuxt2 + element-ui Database : MySQL 5.7+ 升级日志 社区版(开源版)升级日志 修复Linux下没法正确获取所有挂载磁盘及其空间使用率的问题 修复变更分类层级之后,文档所属分类错乱的问题 修复管理后台多次点击查询

2022-12-09

华仔 AutoJs 工具箱_Web端 V1.6.0 已经发布 此版本更新内容包括   : 一、布局分析 1、树结构支持左右滚动。 2、绘制节点显示顺序调整,按照节点深度排序,鼠标移入,优先框选深层节点。 3、增加绘制背景图开关,可隐

2023-08-11

raph 朋友们, 我们很高兴地宣布 JSXGraph v1.6.0 发布。 此版本中的新增功能是期待已久的新元素“vectorfield”和 “slopefield”,以及用于测量的新元素“smartlabel”。 一个很大的变化是对国际化的支持,特别是可以根据区域设置格

2022-10-15

是一个基于网络、零配置、无依赖的数据库 Schema 变更和版本控制管理工具,适用于开发人员和 DBA。 Bytebase 1.6.0 发布,更新内容如下: 新功能 支持添加只读副本作为查询数据源。 改进 优化 SQL 编辑器查询性能。 SQL

2023-05-15

的shape、channel_format和num_channels参数 cc后端将在下一个版本中删除 ( v1.7.0) 新功能 Struct arguments 你现在可以在所有后端中使用结构参数。结构可以嵌套,并且可以包含矩阵和向量。示例: transform_type = ti.types.struct(R=t

2023-08-27

某些情况下出现 NPE 的问题,感谢 @王帅 修复:v1.5.9 版本造成的 ignore 属性也被加入 defaultQueryColumns 默认查询列的问题,感谢 @王帅 文档:添加 RelationManager.addQueryRelations() 使用的相关文档 文档:添加 mybatis-flex-dependencie

2023-05-18

6.4 generic 已经发布 欢迎获取、体验、使用最新的稳定版本 在这个版本中,我们增加了 全新的SDK开发模式,统一跨平台开发体验,提高生产力 全新的模块化机制,更简单的模块拓展 重写标准库以实现多端统一,减少

2023-10-25

保证边缘节点网络中断时仍能正常服务。 当前框架下,社区开发者将更容易的开放更多非资源类 API。开发者只需关注插件依赖的 API,而不需要考虑请求如何传递至边缘节点。 更多信息可参考: https://github.com/kubeedge/kubeedge/

2024-01-10

StaxRip v2.32.0 现已发布。StaxRip 是一个开源的视频转换工具,可以将蓝光光盘或 DVD 中的视频转换成 PC 常用的视频格式,具有一系列解复用器,复用器,编码器和解码器。需要在 .NET Framework 和 DirectX 的 Windows 环

2022-10-21

替代品,它比 LLVM lld 链接器快几倍。目前 Mold 发布了 1.6 版本,此版本增加了对两个基于 IBM 的平台的支持,主要带来以下更改: 新功能 [ppc64] Mold 现在支持原始的 64 位 big-endian PowerPC ABI(也称为 PPC64 ELFv1 或简称 ppc64),可

2023-10-21

tag.length > 5 ? 'geekblue' : 'green'; if (tag === 'loser') { color = 'volcano'; } return ( <Tag color={color} key={tag}> {tag.toUpperCase()} </Tag> ); })} </> ), } ]; const data: Account[] = [ { key: '1', name: 'John Brown', age: 32, address: 'New York No. 1 Lake Park', tags

2023-10-15

tag.length > 5 ? 'geekblue' : 'green'; if (tag === 'loser') { color = 'volcano'; } return ( <Tag color={color} key={tag}> {tag.toUpperCase()} </Tag> ); })} </> ), } ]; const data: Account[] = [ { key: '1', name: 'John Brown', age: 32, address: 'New York No. 1 Lake Park', tags