Volcano 社区 v1.2.0 正式发布,基于 K8s 的容器批量计算平台

来源: OSCHINA
编辑:
2021-03-07 07:20:00

Volcano社区已正式发布v1.2.0版本。此次发布的1.2版本关键特性为支持TDM和SLA插件。

Volcano v1.2 关键特性介绍

SLA插件

SLA(Service Level Agreement)插件支持用户通过为作业定义最大预期等待时长的方式来进行调度优先级排序。

用户可以对单个作业打上名为“sla-waiting-time”的annotation,定义最大预期等待时长。equeue action和allocate action将比较作业的实际等待时长和最大预期等待时长的关系。若已超时,该作业将被直接被标记为“piplined”的状态,获取优先分配资源的权利。JobOrderFn中会根据作业实际等待时间和最大预期等待时间的差值,决定作业调度的排序。

例1 作业的SLA定义

apiVersion: batch.volcano.sh/v1alpha1
kind: Job
metadata:
 annotations:
   sla-waiting-time: 1h2m3s  // 定义作业最大等待时长为1h2m3s

例2 全局定义作业SLA

用户也可以通过在scheduler的配置文件中定义全局SLA的方式,为所有作业配置SLA。

 actions: "enqueue, allocate, backfill"
 tiers:
- plugins:
- name: priority
- name: gang
- name: sla
arguments:
sla-waiting-time: 1h2m3s // 全局定义作业SLA

SLA插件的实现是对v1.1.0版本中作业资源预留特性设计的优化。点此查看该特性的详细设计和实现。

TDM插件

TDM(Time Division Multiplexing)插件的使用场景为:某些节点同时属于Kubernetes集群和Yarn集群,且被分时复用。

为了满足该场景,可提前为复用节点打上“volcano.sh/revocable-zone”标签,并在scheduler配置文件中配置分用时段。打上“volcano.sh/preemptable: true”标签的作业,其所属的Pod也将集成该标签。这类Pod将被优先调度到复用节点上。当复用节点的管理权在集群层面进行切换时(分用时段到期),复用节点上的负载将被驱逐,腾空后的节点纳入到新集群中。

例3 TDM插件在scheduler中的配置

 tiers:
   - plugins:
            - name: tdm
              arguments:
                tdm.revocable-zone.rz1: 1:00-4:00
                tdm.evict.period: 1m

其他特性

v1.2.0还新增了和系统稳定性、用户体验、性能优化有关的一些特性,如重构了overcommit插件、当作业更新时同时更新ssh secret、优化了nodeorder插件等。

详情查看 https://github.com/volcano-sh/volcano/releases/tag/v1.2.0

关于 Volcano

Volcano 是基于 Kubernetes 构建的批量计算平台,源自于华为云 AI 容器,提供作业管理、批量调度、依赖管理、资源预留等能力,支持包括 TensorFlow、Spark、MPI、Slurm 在内的多个业界主流计算框架,主要帮助用户将 AI、大数据等资源消耗波动大、计算密集型的业务从传统的 Batch、HPC 系统快速迁移到云原生。Volcano 也是 CNCF 首个和唯一的容器批量计算项目。

稿源:华为开源

展开阅读全文
点击加入讨论🔥(1) 发布并加入讨论🔥
1 评论
3 收藏
分享
返回顶部
顶部