作者:Daniel Gruber,Burak Yenier和Wolfgang Gentzsch,UberCloud。
該公司成立于2013年,致力于開發HPC容器技術和容器化工程應用程序,以促進在共享的本地或按需云環境中訪問和使用工程HPC工作負載。本文及上一篇文章中,他們描述了過去12個月在Kubernetes上使用UberCloud HPC容器的經驗。
隨著云服務的興起,CIO意識到在各種計算環境中運行的應用程序,中間件和基礎架構需要通用的管理和操作模型。通過為每個云提供商使用不同的專用基礎架構和應用程序管理解決方案,在本地和云環境中維護不同的應用程序和中間件堆棧,會在動態分配,使用和管理這些資源時增加很多麻煩。
混合云環境中缺乏通用的管理和運營模型可能導致:
不均勻,分散的環境給管理人員,操作人員和安全性帶來了額外的復雜性。
由于沒有通用管理的混合環境,創新速度降低了。
當依賴于云提供商的特定服務時,很難更改或關閉云資源。
當綁定到特定的云環境設置時,工作負載不容易遷移回本地環境,反之亦然。
正如上一篇文章中指出的那樣,Kubernetes已成為事實上的標準容器編排器。所有主要公司都在隨處可用的標準化API之上提供并構建解決方案。CIO現在正在研究Kubernetes在混合云中對HPC的適用性,因為它為每種環境提供了通用的管理和操作模型。
Kubernetes:混合云的通用管理和運營模型
Kubernetes促進了服務器隊列中運行的無數容器的使用和管理,它是由許多IT供應商和云提供商支持的用于混合環境的新標準平臺?,F在,CIO可以分配一個完全配置并受支持的容器編排器,作為其所有應用程序工作負載的基礎。
與專有基礎架構解決方案不同,Kubernetes具有可移植性,易于管理,高可用性,可集成性和監視功能。在Kubernetes上管理資源時,CIO不再綁定到特定的基礎架構。他們可以使用相同的應用程序堆棧為用戶提供相同的功能集,無論是本地還是在任何云中。用戶甚至不知道自己的應用程序正在Kubernetes上運行,也不知道它們在哪個基礎架構上運行:是在自己的數據中心還是在特定的云提供商(例如Google,Microsoft或Amazon)上。
通過使用像Kubernetes這樣的標準化軟件棧來降低混合云環境的復雜性具有許多優點:對一個平臺進行的改進可以自動在其他平臺上使用;部署和運營方面可以簡化;安全審核更容易,更嚴格地執行。
Kubernetes和HPC
Kubernetes已經是AI和ML的事實平臺,但是,當涉及到傳統的高性能計算時,仍然存在一些挑戰。HPC工作負載管理器中內置了一組功能,Kubernetes中尚不可用。我們之前在第一篇文章已經討論了主要差異,Kubernetes在HPC方面的主要差距是:對分布式內存作業(即MPI應用程序)的本機支持,以及與現有HPC應用程序兼容的缺少的作業排隊系統。
Kubernetes在許多層上都內置了高可用性。但是,對于HPC作業,僅重啟一個失敗的容器是不夠的,因為整個分布式作業本身可能已經失敗了。在這種情況下,需要對整個分布式內存作業進行自動重新計劃。這是Kubernetes無法處理的。
除了這些挑戰之外,Kubernetes還為HPC帶來了許多好處:例如,工程師和容器化HPC應用程序的環境始終是相同的,無論是本地部署還是在基于云的環境中運行;快速從一種基礎架構轉換為另一種基礎架構的能力使HPC團隊能夠與其公司的云路線圖保持一致。在基于通用API(Kubernetes API)的基礎架構之間移動工作負載的自由變得很有價值。
Kubernetes上的容器化HPC應用程序
在過去的五年中,已經將數十種HPC應用程序進行了容器化,無論是商業化的,例如ANSYS,COMSOL,STAR-CCM +,還是開源軟件包(如OpenFOAM和GROMACS),以及HPC集群調度程序,例如Univa Grid Engine和Slurm。由于采用了容器技術,因此可以提供持續不斷的更新和改進,客戶可以快速,無縫地對其進行更新。此外,容器映像允許用戶隨時返回到先前的應用程序版本,以便他們始終可以重現其先前的結果。
在托管Kubernetes上運行的示例HPC應用程序集群架構
同時,通過使用諸如Terraform和Puppet之類的基礎架構和配置管理工具或通過將特定于云的HPC集成構建到現有門戶中,已經實現了許多容器環境。但是隨著Kubernetes的到來,容器環境變得更易于維護并且更加動態。控制器不斷驅動集群,從而將集群推出,重新調整工作節點的規模,使用一組恒定的可搶占實例以及高可用性。
因此,Kubernetes和HPC主要差距已被消除。這樣,今天,任何Kubernetes環境都可以支持分布式內存/ MPI作業,該環境提供了在HPC容器內運行的內置HPC工作負載管理器集成。這使傳統的HPC應用程序無需任何更改即可運行。同時,通過在內部運行的高性能支持GPU的Pod,已成功啟動了基于Ansys和COMSOL的GPU和未支持GPU的應用程序。登錄到桌面后,工程師可以開始提交批處理作業或單個MPI應用程序,這些應用程序分布在多個節點上分配的一組Pod中。
結論
Kubernetes不僅支持基于微服務的企業應用程序,而且還支持自助服務工程HPC應用程序??偠灾?,正如該研究表明的那樣,使用Kubernetes作為運行容器化工程應用程序的基礎的主要優點是:
幾乎所有基礎架構上均可使用統一應用程序堆棧;
真正的混合云使用方案,可滿足工程負載的需求。對于工程師而言,無論在本地還是在云中運行應用程序,它都是透明的;
通過始終分配云中可用的最新和最快的機器,從而為運行工程應用程序提供最佳性能;
作為工程師的自助服務,構建并調整獨立的HPC應用程序和計算集群的大小,并且僅受每個時間段的云配額和預算限制;
強大的管理堆棧,得到許多云提供商的支持;
僅通過支付使用費用來優化成本。不需要閑置資源,這些閑置資源將在使用前被分配;
通過獨立的專用計算集群實現高安全性;
通過自我配置和一次性組件(將更新簡單地銷毀并重新創建命令),將操作開銷降至最低;
基于Kubernetes的工作負載更易于集成到廣泛采用的持續集成和部署解決方案中(例如Tekton,Concourse或Jenkins的未來版本)。
在這項研究中,基于容器的HPC應用程序環境已在Kubernetes之上實現(例如,在Google GCP和Amazon AWS上),并且還用作自助服務測試環境,可由HPC應用程序專家而非運營商從頭開始部署。它也已用于CI / CD管道中,以自動構建測試環境,以針對現有容器解決方案運行測試并隨后關閉基礎架構。在客戶環境中,IT部門受益于使用受支持的托管Kubernetes易于維護的系統,該系統可以在幾分鐘之內增加,調整大小和刪除計算資源。
-
HPC
+關注
關注
0文章
333瀏覽量
24237 -
混合云
+關注
關注
1文章
192瀏覽量
11482
發布評論請先 登錄
詳解Kubernetes中的Pod調度親和性
康佳特推出高性能COM-HPC模塊conga-HPC/cBLS
HPC云計算的技術架構
使用 Flexus 云服務器 X 實例部署 Kubernetes 圖形化管理平臺

評論