關于Volcano的整理

GitHub:?GitHub - volcano-sh/volcano: A Kubernetes Native Batch System (Project under CNCF)

官網:Volcano

文檔:Introduction | Volcano


背景:

原生k8s對高性能應用場景的支持度較差,為支持TensorFlow、Spark适瓦、MindSpore等多個領域框架乔妈,Volcano作為容器調度系統(tǒng)努溃,不僅包括了作業(yè)調度册招,還包含了作業(yè)生命周期管理、多集群調度漾月、命令行根时、數據管理瘦赫、作業(yè)視圖及硬件加速等功能。


基于k8s面向high performance workloads(HPW)


HPW 的常見調度場景 :

?Batch scheduling 例如:

????gang-scheduling?

? ? ? 運行批處理作業(yè)(如Tensorflow/MPI)時蛤迎,必須協(xié)調作業(yè)的所有任務才能一起啟動确虱;否則,將不會啟動任何任務替裆。如果有足夠的資源并行運行作業(yè)的所有任務校辩,則該作業(yè)將正確執(zhí)行; 但是辆童,在大多數情況下召川,尤其是在prem環(huán)境中,情況并非如此胸遇。在最壞的情況下,由于死鎖汉形,所有作業(yè)都掛起纸镊。其中每個作業(yè)只成功啟動了部分任務倍阐,并等待其余任務啟動。

? ? job-based fair-share

? ? ? 當運行多個彈性作業(yè)(如流媒體)時逗威,需要公平地為每個作業(yè)分配資源峰搪,以滿足多個作業(yè)競爭附加資源時的SLA/QoS要求。在最壞的情況下凯旭,單個作業(yè)可能會啟動大量的pod資源利用率低概耻, 從而阻止其他作業(yè)由于資源不足而運行。為了避免分配過泄藓簟(例如鞠柄,為每個作業(yè)啟動一個Pod),彈性作業(yè)可以利用協(xié)同調度來定義應該啟動的Pod的最小可用數量嫉柴。 超過指定的最小可用量的任何pod都將公平地與其他作業(yè)共享集群資源厌杜。

Enhanced job management, e.g. multiple pod template, job dependency, job lifecycle management

Alternative container runtime, e.g. Singularity

Enhancement for heterogeneous computing

Enhancement for high performance workload, e.g. performance, throughput

? ? Queue 隊列

? ? ? 隊列還廣泛用于共享彈性工作負載和批處理工作負載的資源。隊列的主要目的是:

? ? ? ? ? ?1 在不同的“租戶”或資源池之間共享資源

? ? ? ? ? ?2 為不同的“租戶”或資源池支持不同的調度策略或算法

? ? ? ?這些功能可以通過層次隊列進一步擴展计螺,在層次隊列中夯尽,項目被賦予額外的優(yōu)先級,這將允許它們比隊列中的其他項目“跳轉”登馒。在kube批處理中匙握,隊列被實現(xiàn)為集群范圍的CRD。 這允許將在不同命名空間中創(chuàng)建的作業(yè)放置在共享隊列中陈轿。隊列資源根據其隊列配置(kube batch#590)按比例劃分圈纺。當前不支持分層隊列,但正在進行開發(fā)济欢。

? ? ? ?集群應該能夠在不減慢任何操作的情況下處理隊列中的大量作業(yè)赠堵。其他的HPC系統(tǒng)可以處理成百上千個作業(yè)的隊列,并隨著時間的推移緩慢地處理它們法褥。如何與庫伯內特斯達成這樣的行為是一個懸而未決的問題茫叭。支持跨越多個集群的隊列可能也很有用,在這種情況下半等,這是一個關于數據應該放在哪里以及etcd是否適合存儲隊列中的所有作業(yè)或pod的問題揍愁。

? ? 面向用戶的, 跨隊列的公平調度 (Namespace-based fair-share Cross Queue)

? ? ? ? 在隊列中,每個作業(yè)在調度循環(huán)期間有幾乎相等的調度機會杀饵,這意味著擁有更多作業(yè)的用戶有更大的機會安排他們的作業(yè)莽囤,這對其他用戶不公平。 例如切距,有一個隊列包含少量資源朽缎,有10個pod屬于UserA,1000個pod屬于UserB。在這種情況下话肖,UserA的pod被綁定到節(jié)點的概率較小北秽。

? ? ? ? ?為了平衡同一隊列中用戶之間的資源使用,需要更細粒度的策略最筒『孛ィ考慮到Kubernetes中的多用戶模型,使用名稱空間來區(qū)分不同的用戶床蜘, 每個命名空間都將配置一個權重辙培,作為控制其資源使用優(yōu)先級的手段。

????基于時間的公平調度 (Fairness over time)

????????對于批處理工作負載邢锯,通常不要求在某個時間點公平地分配資源扬蕊,而是要求在長期內公平地分配資源。例如弹囚,如果有用戶提交大作業(yè)厨相,則允許用戶(或特定隊列)在一定時間內使用整個集群的一半, 這是可以接受的鸥鹉,但在下一輪調度(可能是作業(yè)完成后數小時)中蛮穿,應懲罰此用戶(或隊列)而不是其他用戶(或隊列)。在 HTCondor 中可以看到如何實現(xiàn)這種行為的好例子毁渗。

????面向作業(yè)的優(yōu)先級調度 (Job-based priority)

????????Pod優(yōu)先級/搶占在1.14版本中被中斷践磅,它有助于確保高優(yōu)先級的pod在低優(yōu)先級的pod之前綁定。不過灸异,在job/podgroup級別的優(yōu)先級上仍有一些工作要做府适,例如高優(yōu)先級job/podgroup應該嘗試以較低優(yōu)先級搶占整個job/podgroup,而不是從不同job/podgroup搶占幾個pod肺樟。

????搶占 (Preemption & Reclaim)

????????通過公平分享來支持借貸模型檐春,一些作業(yè)/隊列在空閑時會過度使用資源。但是么伯,如果有任何進一步的資源請求疟暖,資源“所有者”將“收回”。 資源可以在隊列或作業(yè)之間共享:回收用于隊列之間的資源平衡田柔,搶占用于作業(yè)之間的資源平衡俐巴。

????預留與回填 (Reservation & Backfill)

????????當一個請求大量資源的“巨大”作業(yè)提交給kubernetes時,當有許多小作業(yè)在管道中時硬爆,該作業(yè)可能會餓死欣舵,并最終根據當前的調度策略/算法被殺死。為了避免饑餓缀磕, 應該有條件地為作業(yè)保留資源缘圈,例如超時劣光。當資源被保留時,它們可能會處于空閑和未使用狀態(tài)糟把。為了提高資源利用率赎线,調度程序將有條件地將“較小”作業(yè)回填到那些保留資源中。 保留和回填都是根據插件的反饋觸發(fā)的:volcano調度器提供了幾個回調接口糊饱,供開發(fā)人員或用戶決定哪些作業(yè)應該被填充或保留。





Volcano重要組件??

華為云Volcano:讓企業(yè)AI算力像火山一樣爆發(fā)_華為云官方博客-CSDN博客_華為火山

? Volcano-Scheduler

? ? ? Volcano-Scheduler在Kube-Batch的基礎上颠黎,又更進一步另锋,引入了更多領域性的動作和插件,包括BinPack狭归,GPUShare夭坪,GPUTopoAware等。

? ? ?關于kube-batch过椎,詳見

? Volcano-Controller

Volcano通過CRD的方式提供了通用靈活的Job抽象Volcano Job (batch.volcano.sh/jobs), Controller則負責跟Scheduler配合室梅,管理Job的整個生命周期。主要功能包括:

①: 自定義的Job資源: 跟K8s內置的Job(作業(yè))資源相比疚宇,Volcano Job有了更多增強配置亡鼠,比如:任務配置,提交重試敷待,最小調度資源數间涵,作業(yè)優(yōu)先級, 資源隊列等。

②: Job生命周期管理: Volcano Controller會監(jiān)控Job的創(chuàng)建榜揖,創(chuàng)建和管理對應的子資源(Pod, ConfigMap, Service)勾哩,刷新作業(yè)的進度概要,提供CLI方便用戶查看和管理作業(yè)資源等举哟。

③: 任務執(zhí)行策略: 單個Job下面往往會關聯(lián)多個任務(Task)思劳,而且任務之間可能存在相互依賴關系,Volcano Controller支持配置任務策略妨猩,方便異常情況下的任務間關聯(lián)性重試或終止潜叛。

④: 擴展插件: 在提交作業(yè)、創(chuàng)建Pod等多個階段册赛,Controller支持配置插件用來執(zhí)行自定義的環(huán)境準備和清理的工作钠导,比如常見的MPI作業(yè),在提交前就需要配置SSH插件森瘪,用來完成Pod資源的SSH信息配置牡属。


job管理

job管理的官方文檔

Volcano中job管理 - 簡書?中文文檔

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市扼睬,隨后出現(xiàn)的幾起案子逮栅,更是在濱河造成了極大的恐慌悴势,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件措伐,死亡現(xiàn)場離奇詭異特纤,居然都是意外死亡,警方通過查閱死者的電腦和手機侥加,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進店門捧存,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人担败,你說我怎么就攤上這事昔穴。” “怎么了提前?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵吗货,是天一觀的道長。 經常有香客問我狈网,道長宙搬,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任拓哺,我火速辦了婚禮勇垛,結果婚禮上,老公的妹妹穿的比我還像新娘拓售。我一直安慰自己窥摄,他們只是感情好,可當我...
    茶點故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布础淤。 她就那樣靜靜地躺著崭放,像睡著了一般。 火紅的嫁衣襯著肌膚如雪鸽凶。 梳的紋絲不亂的頭發(fā)上币砂,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天,我揣著相機與錄音玻侥,去河邊找鬼决摧。 笑死,一個胖子當著我的面吹牛凑兰,可吹牛的內容都是我干的掌桩。 我是一名探鬼主播,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼姑食,長吁一口氣:“原來是場噩夢啊……” “哼波岛!你這毒婦竟也來了?” 一聲冷哼從身側響起音半,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤则拷,失蹤者是張志新(化名)和其女友劉穎贡蓖,沒想到半個月后,有當地人在樹林里發(fā)現(xiàn)了一具尸體煌茬,經...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡斥铺,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了坛善。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片晾蜘。...
    茶點故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖眠屎,靈堂內的尸體忽然破棺而出笙纤,到底是詐尸還是另有隱情,我是刑警寧澤组力,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站抖拴,受9級特大地震影響燎字,放射性物質發(fā)生泄漏。R本人自食惡果不足惜阿宅,卻給世界環(huán)境...
    茶點故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一候衍、第九天 我趴在偏房一處隱蔽的房頂上張望饭豹。 院中可真熱鬧翎承,春花似錦、人聲如沸蒲每。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至领追,卻和暖如春他膳,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背绒窑。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工棕孙, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人些膨。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓蟀俊,卻偏偏與公主長得像,于是被迫代替她去往敵國和親订雾。 傳聞我的和親對象是個殘疾皇子肢预,可洞房花燭夜當晚...
    茶點故事閱讀 44,843評論 2 354