Volcano:帶你體驗容器與批量計算的碰撞的火花


摘要:今年(2020)7月初,Volcano 發布了1.0版本。1.0做為里程碑版本,在Volcano整個規划中起到了承上啟下的作用。此次發布的1.0版本支持了GPU共享,作業動態擴縮容,批任務搶占等功能,並主要加強了穩定性;同時,在1.0發布后 Volcano也在線下討論了分布式調度系統的未來發展的趨勢等。

歷史

在分析趨勢之前,我們先看一下分布式調度系統的歷史。早期分布式調度系統以批處理系統為主,例如九幾年的LSF/SGE/PBS等,這些批處理系統大規划的使用在HPC領域,而且對作業級的調度進行大量的研究工作;后續由批處理系統延伸出多集群、多組織資源共享的需求,便成了網絡計算。

網絡計算與雲計算最大的不同是:網絡計算強調多組織的資源共享,而雲計算強調雲廠商的集中式支持;這也是雲計算成為主流的主要原因:多組織之間共享需要完備的協議和足夠的安全支持,而雲服務僅需要對用戶提供相應服務和安全,並不需要在多個雲廠商之間進行共享;隨着開源社區的發展,再將應用接口逐步統一,e.g. Kubernetes。Hadoop出現后,不僅推動了分布式調度系統中對數據的處理,同時也推動了開源軟件的生態。2012和2014是兩個重要的節點,Hadoop將資源管理層與領域框架層分開,隨后的領域框架也有機會構建自己的生態,e.g. Spark;同時,將資源管理層與領域框架分開也被廣泛認可。

在容器及Kuberentes流行后,憑借其高資源利用率與隔離,環境標准化等優勢,越來越多的人希望將這些批量計算應用統一到 Kubernetes 平台上。

未來的趨勢

多種應用統一調度

隨着各行各業的發展,涌現出越來越多的領域框架來支持業務的發展;這些框架都在相應的業務領域有着不可替代的作用,e.g. Spark, Tensorflow, Flink等。在業務復雜性能不斷增加的情況下,單一的領域框架很難應對現在復雜的業務場景;因此現在普遍使用多種框架達成業務目標,如下圖所示。

但隨着各個領域框架集群的不斷擴大,以及單個業務的波動性,各個子集群的資源浪費比較嚴重;因此越來越多的用戶希望通過統一調度系統來解決資源共享的問題。在技術選型上,Kubernetes憑借其優秀的擴展性獲得大部分用戶青睞。

異構硬件

在批量計算任務向雲原生環境遷移的過程中,對雲原生環境的算力提出了新的要求;各個廠商為了應對這些新的需求,為各個場景提供了不同架構的硬件,例如 鯤鵬,昇騰,X86,GPU等。當多種應用運行在統一平台上時,需要雲原生調度系統能夠對異構硬件資源進行統一的管理與調度,使用各種應用達到最優的資源配比。目前,硬件的信息通過kubernetes的 device plugin 機制提供,但Kubernetes的 device plugin 仍有一些不足,例如 無法很好的支持硬件拓撲。在調度方面 Volcano 已經支持主流的調度策略,並在最新的1.0版本中支持了 GPU 共享,大大增加了GPU的利用率,有效降低了GPU的使用成本。

跨集群/跨雲

跨集群一直是分布調度系統解決大規模、災備等問題的主要解決方案;同時,為了降低廠商綁定的風險,並最大限度兼顧不同雲廠商的優勢,多雲環境下的負載高效分發逐漸成為趨勢。在多雲的環境中,面向數據位置的優化,作業執行時間預估等問題都是需要調度系統解決的問題;在 Volcano 中,將通過多個項目實現跨集群、跨雲的作業調度,例如 JobForward (#880)。

智能化

調度算法在分布調度系統中有大量的研究,從早期的批處理系統到近期的Borg,Volcano等;早期的批處理系統以特定場景的算法優化為主,對於復雜的場景需要大量的計算,雖然有大量針對HPC和網絡的調度優化,但常用和落地的算法比較少。隨着人工智能的發展,越來越多的調度系統將會使用AI相應的能力對算法進行優化;在 Volcano 中,將通過AI的能力驅動 Volcano 中各個調度算法進行優化,並通過AI的能力提供新的調度算法。

總結

分布式調度系統是一個復雜的系統,需要多個組件共協作以提高整體的效率,例如 應用管理,調度,異構硬件管理,存儲等,僅靠調度器無法完成這些工作。Volcano 作為CNCF首個面向批量計算的分布式調度系統,包含了應用管理,作業調度,異構硬件等多個組件和功能;其調度器兼容kubernetes調度策略,同時支持在線、離線兩種作業類型;控制器提供了統一的作業管理,支持多種作業的接入,包括 MPI, Tensorflow, MidSpore, Spark 等;設備插件提供了對異構硬件的支持,例如 1.0 版中支持了 GPU 共享。因此,Volcano面向分布式調度系統的趨勢提供了完整的方案,可以在多種場景下提高作業性能,資源使用率等。

Volcano特訓營:六節課學懂容器批量計算

由Volcnao項目發起者馬達主講的直播課程正在進行中,課程共有6期,從技術原理到實戰演練,涵蓋Volcano全景。

鎖定后續課程信息,獲取往期回放與講師PPT,請假助手微信(k8s2222)並備注“Volcano”。

 

點擊關注,第一時間了解華為雲新鮮技術~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM