Skip to main content

Posts

Showing posts from January 29, 2023

Volcano – Cloud Native Batch System for AI, BigData and HPC - William (L...

Volcano架构解读:基于Kubernetes的云原生批量计算平台

  Volcano是一个基于Kubernetes的云原生批量计算平台,也是CNCF的首个批量计算项目。 Volcano 主要用于AI、大数据、基因、渲染等诸多高性能计算场景,对主流通用计算框架均有很好的支持。它提供高性能计算任务调度,异构设备管理,任务运行时管理等能力。本篇文章将从Volcano架构、Volcano核心概念及功能、Volcano Code Tour、平台组件安装部署等方面来带大家认识Volcano。 一、Volcano架构 1、Volcano全景 Volcano是基于Kubernetes的高性能批量计算平台,目前支持几乎所有的主流计算框架,包括MindSpore、TensorFlow、Kubeflow、MPI、PyTorch、飞浆、Spark、HOROVOD 等。 Volcano支持的部分计算框架 计算框架遇到的问题: 1)1:1的operator部署运维复杂 2)不同框架对作业管理、并行计算等要求不同 3)计算密集高,资源需求波动大,需要高级调度能力 Volcano面向主流计算框架提供: 1)统一容器基础设施,提高资源利用率 2)通用作业管理、队列Fair-share, Gang, bin-pack等高级调度算法 3)简化运维管理 2、Volcano整体架构 Volcano利用声明式的CRD定义我们的API,主要有3个核心的API,Volcano Job、PodGroup、Queue。 Volcano Job 是对高性能任务的通用定义,PodGroup提供了Job中Task的管理能力,Queue 为任务的分类提供了基础。 Volcano的架构 Volcano 核心组件主要包含三个:Admission、ControllerManager、Scheduler 。Admission对Volcano CRD API提供校验能力;ControllerManager负责对Volcano CRD进行资源管理;Scheduler对任务提供丰富的调度能力。 3、Volcano工作流程 从零开始运行Volcano作业: 1)用户创建一个 Volcano 作业 2)Volcano Admission 拦截作业的创建请求,并进行合法性校验 3)Kubernetes 持久化存储 Volcano Job 到 ETCD 4)ControllerManager 通过 L