云原生時(shí)代,Kubernetes(K8s) 已經(jīng)成為云原生應(yīng)用編排、管理的事實(shí)標(biāo)準(zhǔn),越來越多的應(yīng)用選擇向 Kubernetes 遷移。
在 CAE 仿真、動(dòng)漫渲染、物理化學(xué)、石油勘探、生命科學(xué)、氣象環(huán)境等需要進(jìn)行大規(guī)模數(shù)據(jù)計(jì)算的領(lǐng)域,HPC(高性能計(jì)算) 作為傳統(tǒng)的分布式計(jì)算模式,有著廣泛的應(yīng)用。在這些相關(guān)領(lǐng)域的從業(yè)者中,也有很多人希望能將 HPC 應(yīng)用遷移到容器中運(yùn)行,通過 Kubernetes 強(qiáng)大的功能來進(jìn)行作業(yè)管理。開源的 Volcano 項(xiàng)目就是一個(gè)很好的解決方案。
Volcano 是一個(gè)基于 Kubernetes 的云原生批量計(jì)算平臺(tái),也是 CNCF 的首個(gè)容器批量計(jì)算項(xiàng)目,主要用于 AI、大數(shù)據(jù)、基因、渲染等諸多高性能計(jì)算場(chǎng)景,對(duì)主流通用計(jì)算框架均有很好的支持。它提供面向高性能負(fù)載的調(diào)度策略、完善的作業(yè)生命周期管理、異構(gòu)硬件管理、面向高性能負(fù)載的性能優(yōu)化等能力,目前在很多領(lǐng)域都已落地應(yīng)用。
業(yè)界在使用一些計(jì)算框架進(jìn)行大規(guī)模運(yùn)算時(shí),由于不同框架對(duì)作業(yè)管理、并行計(jì)算等要求不同,導(dǎo)致在高計(jì)算密度情況下,資源需求波動(dòng)大,缺乏高級(jí)調(diào)度能力。同時(shí)也導(dǎo)致了后續(xù)部署運(yùn)維復(fù)雜等問題。
Volcano 面向主流計(jì)算框架提供統(tǒng)一的批量調(diào)度平臺(tái),提高資源利用率。同時(shí)還提供通用的作業(yè)管理、隊(duì)Fair-share,Gang ,bin-pack 、preempt、reservation等高級(jí)調(diào)度算法,簡(jiǎn)化運(yùn)維管理。目前 Volcano 已經(jīng)支持幾乎所有的主流計(jì)算框架,包括 MindSpore、TensorFlow、Kubeflow、MPI、PyTorch、飛槳、Spark、Flink、HOROVOD 等。
Volcano 支持的部分計(jì)算框架
Volcano 整體架構(gòu)
Volcano 利用聲明式的 CRD 定義 API,主要有 3 個(gè)核心的 API:Volcano Job、PodGroup、Queue。
Volcano Job 是對(duì)高性能作業(yè)通用定義,PodGroup 提供了 Job 中 Task 的管理能力,Queue為作業(yè)排隊(duì)、公平調(diào)度提供了基礎(chǔ)。
Volcano 的架構(gòu)
Volcano 核心組件主要包含三個(gè):Admission、ControllerManager、Scheduler 。
Admission 對(duì) Volcano CRD API 提供校驗(yàn)?zāi)芰?
ControllerManager 負(fù)責(zé)對(duì) Volcano CRD 進(jìn)行資源管理;
Scheduler 對(duì)作業(yè)供豐富的調(diào)度能力。
Volcano社區(qū)概況
Volcano 起源于 kube-batch 項(xiàng)目,這個(gè)項(xiàng)目最初的目的是解決 Kubernetes 中的分組調(diào)度問題。隨著 AI 和大數(shù)據(jù)服務(wù)開始要求 Kubernetes 提供更強(qiáng)大、更靈活的調(diào)度,kube-batch 與各種場(chǎng)景特定的實(shí)踐相結(jié)合,提供了更豐富的調(diào)度能力,同時(shí)增加了作業(yè)管理、數(shù)據(jù)管理、運(yùn)行時(shí)管理、異構(gòu)硬件管理等,形成了一個(gè)統(tǒng)一的批處理系統(tǒng),并被重新命名為Volcano。2020 年 4 月,Volcano 項(xiàng)目由華為云正式貢獻(xiàn)給 CNCF,成為 CNCF 迎來的首個(gè)容器批量計(jì)算項(xiàng)目。
在開源開放、廠商中立的社區(qū)治理下,目前 Volcano 在代碼托管平臺(tái)上已獲得了 2k+ star,430+ fork,有 290+ 來自國(guó)內(nèi)外的開發(fā)者參與代碼貢獻(xiàn)。Volcano 社區(qū)擁有 9位 Maintainer,12 位 Reviewer,有超過 50家業(yè)與科研機(jī)構(gòu)參與項(xiàng)目合作,合作伙伴包括華為、騰訊、百度、愛奇藝、滴滴出行、京東、建信金融科技等。在未來,Volcano 將在企業(yè)數(shù)字化、云原生轉(zhuǎn)型過程中發(fā)揮越來越重要的作用。
若想了解更多 Volcano 項(xiàng)目的技術(shù)原理與實(shí)踐干貨,敬請(qǐng)關(guān)注 12 月 9 日 - 10 日舉辦的 KubeCon + CloudNativeCon + Open Source Summit China 2021。屆時(shí)將有來自華為云的資深云原生技術(shù)專家,為廣大開發(fā)者帶來精彩的 Volcano 技術(shù)分享:
議題:基于Volcano的離在線業(yè)務(wù)混部技術(shù)探索
演講嘉賓:
王雷博/華為云批量計(jì)算服務(wù)架構(gòu)師
吳雷/華為云原生開源團(tuán)隊(duì)核心成員&Volcano社區(qū)Maintainer
議題簡(jiǎn)介:為了保證服務(wù)SLA,集群需要大量冗余資源,這將導(dǎo)致集群資源利用率低下,資源浪費(fèi)嚴(yán)重。為了提高資源利用率,Volcano將在線服務(wù)和離線批處理作業(yè)混合在同一集群上。kubelet使調(diào)度器感知到已分配資源和實(shí)際已有資源量的差距。Volcano還提供了資源超賣能力,可將已分配給低優(yōu)先級(jí)作業(yè)的空閑資源加以復(fù)用。在操作系統(tǒng)維度,Volcano還通過cgroup提供任務(wù)隔離,以確保關(guān)鍵的在線服務(wù)QoS。
KubeCon + CloudNativeCon + Open Source Summit China 2021 由云原生計(jì)算基金會(huì) CNCF 主辦。作為云原生領(lǐng)域的頂級(jí)技術(shù)盛會(huì),歷年的 KubeCon + CloudNativeCon + Open Source Summit China 都匯聚了國(guó)內(nèi)外最活躍的開源云原生社區(qū)、最先進(jìn)的技術(shù)代表與行業(yè)的最佳落地實(shí)踐,推動(dòng)云原生計(jì)算領(lǐng)域的知識(shí)更新和技術(shù)進(jìn)步。本屆大會(huì)的議程安排已全面上線,更多詳情請(qǐng)查看大會(huì)官網(wǎng)。
編輯:fqj
評(píng)論
查看更多