Volcano架構解讀基于Kubernetes的云原生批量計算平臺

      網友投稿 1652 2022-05-29

      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 攔截作業的創建請求,并進行合法性校驗

      Volcano架構解讀:基于Kubernetes的云原生批量計算平臺

      3)Kubernetes 持久化存儲 Volcano Job 到 ETCD

      4)ControllerManager?通過?List-Watch 機制觀察到Job 資源的創建,創建任務(Pod)

      5)Scheduler?負責任務的調度,綁定 Node

      6)Kubelet Watch 到 Pod的創建,接管 Pod 的運行

      7)ControllerManager?監控所有任務的運行狀態,保證所有的任務在期望的狀態下運行

      二、Volcano核心概念及功能

      1、Volcano核心概念

      1)Queue:Queue的概念源于 Yarn,它是Cluster 級別的資源對象,可為其聲明資源配額,也可由多namespace 共享,并且提供 soft isolation

      2)PodGroup:PodGroup是任務的分組,它與 queue 綁定,占用隊列的資源。它與 Volcano Job 是一對一的關系;也可為其聲明 Scheduling 條件

      3)Volcano?Job:它是批量計算作業的定義,支持定義作業所屬隊列、生命周期策略、所包含的任務模板以及持久卷等信息

      2、作業管理插件

      svc:提供不同類型任務之間互訪能力

      env:任務索引,例如 Tensorflow Worker index

      ssh:ssh 秘鑰對創建及掛載,主要供 MPI 作業使用

      3、Scheduler架構

      Scheduler支持動態配置和加載。

      4、核心調度算法

      1)Gang Scheduling

      2)Fair Share

      3)Preempt & Reclaim

      4)Reserve & Backfill

      5)Topology Aware Scheduling

      6)GPU Sharing

      三、Volcano Code Tour

      cmd目錄是Volcano所有組件啟動的入口;config 是Volcano的配置;defs 是安裝時的配置;docs 是Volcano的設計文檔;example 提供了簡單的例子,hack 提供安裝時的腳本;installer 提供安裝的模板。

      pkg 是最重要的目錄,里面包含了 api、controller、scheduler 、webhook 等代碼。test 提供了e2e測試用例, vendor是依賴庫。

      四、安裝部署

      1、Volcano Install

      Volcano安裝部署有多種方式:若已存在K8S集群,建議通過 Helm方式安裝部署,該方式支持自定義安裝配置;開發者建議通過Development Yaml方式部署。

      對于開發者,Volcano已內置一鍵式安裝部署腳本,路徑為?volcano. sh/volcano/hack/local-up-volcano. sh。運行該腳本時,默認會使用kind創建?Docker in Docker的模擬集群,并安裝部署Volcano。

      2、Volcano 組件

      正確安裝部署后,將生成4個組件,分別為:Volcano-admission、Volcano-admission-init、Volcano-controllers、 Volcano-scheduler ,其中admission-init以作業的方式生成證書。

      Kubernetes 云原生

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:Vector人工智能情感機器人SDK發布和說明(ROS2GO 2.0 + Vector 2.0)
      下一篇:boost 參考文檔目錄翻譯
      相關文章
      日产亚洲一区二区三区| 无码乱人伦一区二区亚洲| 亚洲AV无码欧洲AV无码网站| 亚洲精品岛国片在线观看| 亚洲精品国产av成拍色拍| 久久亚洲国产最新网站| 67194在线午夜亚洲| 亚洲国产成a人v在线| 91丁香亚洲综合社区| 亚洲av一本岛在线播放| 国产精品亚洲午夜一区二区三区| 亚洲一区精品视频在线| 亚洲一区二区三区免费观看| 亚洲一区中文字幕在线观看| 亚洲第一第二第三第四第五第六| 亚洲色偷偷综合亚洲av78| 久久精品亚洲综合专区| 亚洲AV午夜福利精品一区二区| 亚洲三区在线观看无套内射| 中文字幕无码精品亚洲资源网久久| 亚洲国产精品一区二区久| 亚洲成人免费电影| 亚洲人成小说网站色| 亚洲精品人成网线在线播放va| 亚洲精品无码久久久久YW| 亚洲AV日韩AV无码污污网站| 日批日出水久久亚洲精品tv| 亚洲AV无码一区二区三区国产| 亚洲精品无码专区2| 最新国产AV无码专区亚洲 | 亚洲爆乳无码一区二区三区| 亚洲Av综合色区无码专区桃色| 亚洲av日韩av天堂影片精品| 亚洲电影在线播放| 亚洲中文字幕无码亚洲成A人片| 亚洲AV电影天堂男人的天堂| 亚洲精品和日本精品| 亚洲国产婷婷六月丁香| 无码乱人伦一区二区亚洲一| 亚洲国产福利精品一区二区| 亚洲日韩国产欧美一区二区三区|