0
本文作者: 張帥 | 2020-03-21 08:21 |
本文為該系列的第二篇文章,第一篇文章點(diǎn)擊此處。
作者:Daniel Gruber,Burak Yenier和Wolfgang Gentzsch,UberCloud。
該公司成立于2013年,致力于開發(fā)HPC容器技術(shù)和容器化工程應(yīng)用程序,以促進(jìn)在共享的本地或按需云環(huán)境中訪問和使用工程HPC工作負(fù)載。本文及上一篇文章中,他們描述了過去12個(gè)月在Kubernetes上使用UberCloud HPC容器的經(jīng)驗(yàn)。
隨著云服務(wù)的興起,CIO意識(shí)到在各種計(jì)算環(huán)境中運(yùn)行的應(yīng)用程序,中間件和基礎(chǔ)架構(gòu)需要通用的管理和操作模型。通過為每個(gè)云提供商使用不同的專用基礎(chǔ)架構(gòu)和應(yīng)用程序管理解決方案,在本地和云環(huán)境中維護(hù)不同的應(yīng)用程序和中間件堆棧,會(huì)在動(dòng)態(tài)分配,使用和管理這些資源時(shí)增加很多麻煩。
混合云環(huán)境中缺乏通用的管理和運(yùn)營模型可能導(dǎo)致:
不均勻,分散的環(huán)境給管理人員,操作人員和安全性帶來了額外的復(fù)雜性。
由于沒有通用管理的混合環(huán)境,創(chuàng)新速度降低了。
當(dāng)依賴于云提供商的特定服務(wù)時(shí),很難更改或關(guān)閉云資源。
當(dāng)綁定到特定的云環(huán)境設(shè)置時(shí),工作負(fù)載不容易遷移回本地環(huán)境,反之亦然。
正如上一篇文章中指出的那樣,Kubernetes已成為事實(shí)上的標(biāo)準(zhǔn)容器編排器。所有主要公司都在隨處可用的標(biāo)準(zhǔn)化API之上提供并構(gòu)建解決方案。CIO現(xiàn)在正在研究Kubernetes在混合云中對(duì)HPC的適用性,因?yàn)樗鼮槊糠N環(huán)境提供了通用的管理和操作模型。
Kubernetes促進(jìn)了服務(wù)器隊(duì)列中運(yùn)行的無數(shù)容器的使用和管理,它是由許多IT供應(yīng)商和云提供商支持的用于混合環(huán)境的新標(biāo)準(zhǔn)平臺(tái)?,F(xiàn)在,CIO可以分配一個(gè)完全配置并受支持的容器編排器,作為其所有應(yīng)用程序工作負(fù)載的基礎(chǔ)。
與專有基礎(chǔ)架構(gòu)解決方案不同,Kubernetes具有可移植性,易于管理,高可用性,可集成性和監(jiān)視功能。在Kubernetes上管理資源時(shí),CIO不再綁定到特定的基礎(chǔ)架構(gòu)。他們可以使用相同的應(yīng)用程序堆棧為用戶提供相同的功能集,無論是本地還是在任何云中。用戶甚至不知道自己的應(yīng)用程序正在Kubernetes上運(yùn)行,也不知道它們?cè)谀膫€(gè)基礎(chǔ)架構(gòu)上運(yùn)行:是在自己的數(shù)據(jù)中心還是在特定的云提供商(例如Google,Microsoft或Amazon)上。
通過使用像Kubernetes這樣的標(biāo)準(zhǔn)化軟件棧來降低混合云環(huán)境的復(fù)雜性具有許多優(yōu)點(diǎn):對(duì)一個(gè)平臺(tái)進(jìn)行的改進(jìn)可以自動(dòng)在其他平臺(tái)上使用;部署和運(yùn)營方面可以簡(jiǎn)化;安全審核更容易,更嚴(yán)格地執(zhí)行。
Kubernetes已經(jīng)是AI和ML的事實(shí)平臺(tái),但是,當(dāng)涉及到傳統(tǒng)的高性能計(jì)算時(shí),仍然存在一些挑戰(zhàn)。HPC工作負(fù)載管理器中內(nèi)置了一組功能,Kubernetes中尚不可用。我們之前在第一篇文章已經(jīng)討論了主要差異,Kubernetes在HPC方面的主要差距是:對(duì)分布式內(nèi)存作業(yè)(即MPI應(yīng)用程序)的本機(jī)支持,以及與現(xiàn)有HPC應(yīng)用程序兼容的缺少的作業(yè)排隊(duì)系統(tǒng)。
Kubernetes在許多層上都內(nèi)置了高可用性。但是,對(duì)于HPC作業(yè),僅重啟一個(gè)失敗的容器是不夠的,因?yàn)檎麄€(gè)分布式作業(yè)本身可能已經(jīng)失敗了。在這種情況下,需要對(duì)整個(gè)分布式內(nèi)存作業(yè)進(jìn)行自動(dòng)重新計(jì)劃。這是Kubernetes無法處理的。
除了這些挑戰(zhàn)之外,Kubernetes還為HPC帶來了許多好處:例如,工程師和容器化HPC應(yīng)用程序的環(huán)境始終是相同的,無論是本地部署還是在基于云的環(huán)境中運(yùn)行;快速從一種基礎(chǔ)架構(gòu)轉(zhuǎn)換為另一種基礎(chǔ)架構(gòu)的能力使HPC團(tuán)隊(duì)能夠與其公司的云路線圖保持一致。在基于通用API(Kubernetes API)的基礎(chǔ)架構(gòu)之間移動(dòng)工作負(fù)載的自由變得很有價(jià)值。
在過去的五年中,已經(jīng)將數(shù)十種HPC應(yīng)用程序進(jìn)行了容器化,無論是商業(yè)化的,例如ANSYS,COMSOL,STAR-CCM +,還是開源軟件包(如OpenFOAM和GROMACS),以及HPC集群調(diào)度程序,例如Univa Grid Engine和Slurm。由于采用了容器技術(shù),因此可以提供持續(xù)不斷的更新和改進(jìn),客戶可以快速,無縫地對(duì)其進(jìn)行更新。此外,容器映像允許用戶隨時(shí)返回到先前的應(yīng)用程序版本,以便他們始終可以重現(xiàn)其先前的結(jié)果。
在托管Kubernetes上運(yùn)行的示例HPC應(yīng)用程序集群架構(gòu)
同時(shí),通過使用諸如Terraform和Puppet之類的基礎(chǔ)架構(gòu)和配置管理工具或通過將特定于云的HPC集成構(gòu)建到現(xiàn)有門戶中,已經(jīng)實(shí)現(xiàn)了許多容器環(huán)境。但是隨著Kubernetes的到來,容器環(huán)境變得更易于維護(hù)并且更加動(dòng)態(tài)??刂破鞑粩囹?qū)動(dòng)集群,從而將集群推出,重新調(diào)整工作節(jié)點(diǎn)的規(guī)模,使用一組恒定的可搶占實(shí)例以及高可用性。
因此,Kubernetes和HPC主要差距已被消除。這樣,今天,任何Kubernetes環(huán)境都可以支持分布式內(nèi)存/ MPI作業(yè),該環(huán)境提供了在HPC容器內(nèi)運(yùn)行的內(nèi)置HPC工作負(fù)載管理器集成。這使傳統(tǒng)的HPC應(yīng)用程序無需任何更改即可運(yùn)行。同時(shí),通過在內(nèi)部運(yùn)行的高性能支持GPU的Pod,已成功啟動(dòng)了基于Ansys和COMSOL的GPU和未支持GPU的應(yīng)用程序。登錄到桌面后,工程師可以開始提交批處理作業(yè)或單個(gè)MPI應(yīng)用程序,這些應(yīng)用程序分布在多個(gè)節(jié)點(diǎn)上分配的一組Pod中。
Kubernetes不僅支持基于微服務(wù)的企業(yè)應(yīng)用程序,而且還支持自助服務(wù)工程HPC應(yīng)用程序??偠灾?,正如該研究表明的那樣,使用Kubernetes作為運(yùn)行容器化工程應(yīng)用程序的基礎(chǔ)的主要優(yōu)點(diǎn)是:
幾乎所有基礎(chǔ)架構(gòu)上均可使用統(tǒng)一應(yīng)用程序堆棧;
真正的混合云使用方案,可滿足工程負(fù)載的需求。對(duì)于工程師而言,無論在本地還是在云中運(yùn)行應(yīng)用程序,它都是透明的;
通過始終分配云中可用的最新和最快的機(jī)器,從而為運(yùn)行工程應(yīng)用程序提供最佳性能;
作為工程師的自助服務(wù),構(gòu)建并調(diào)整獨(dú)立的HPC應(yīng)用程序和計(jì)算集群的大小,并且僅受每個(gè)時(shí)間段的云配額和預(yù)算限制;
強(qiáng)大的管理堆棧,得到許多云提供商的支持;
僅通過支付使用費(fèi)用來優(yōu)化成本。不需要閑置資源,這些閑置資源將在使用前被分配;
通過獨(dú)立的專用計(jì)算集群實(shí)現(xiàn)高安全性;
通過自我配置和一次性組件(將更新簡(jiǎn)單地銷毀并重新創(chuàng)建命令),將操作開銷降至最低;
基于Kubernetes的工作負(fù)載更易于集成到廣泛采用的持續(xù)集成和部署解決方案中(例如Tekton,Concourse或Jenkins的未來版本)。
在這項(xiàng)研究中,基于容器的HPC應(yīng)用程序環(huán)境已在Kubernetes之上實(shí)現(xiàn)(例如,在Google GCP和Amazon AWS上),并且還用作自助服務(wù)測(cè)試環(huán)境,可由HPC應(yīng)用程序?qū)<叶沁\(yùn)營商從頭開始部署。它也已用于CI / CD管道中,以自動(dòng)構(gòu)建測(cè)試環(huán)境,以針對(duì)現(xiàn)有容器解決方案運(yùn)行測(cè)試并隨后關(guān)閉基礎(chǔ)架構(gòu)。在客戶環(huán)境中,IT部門受益于使用受支持的托管Kubernetes易于維護(hù)的系統(tǒng),該系統(tǒng)可以在幾分鐘之內(nèi)增加,調(diào)整大小和刪除計(jì)算資源。
雷鋒網(wǎng)編譯,viahpcwire.com(雷鋒網(wǎng)雷鋒網(wǎng))
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。