Kata Containers——通過(guò)虛擬化保護應用程序
Kata Containers是一個(gè)新的開(kāi)源項目,是輕量級虛擬機的一種新穎實(shí)現,可以無(wú)縫集成到容器生態(tài)系統中。 Kata Containers與容器一樣輕巧快速,并與容器管理層集成(包括流行的編排工具,如Docker和Kubernetes),同時(shí)還提供了VM的安全優(yōu)勢。Kata Containers遵循Open Container Initiative(OCI)標準——OpenStack Foundation是該標準的積極分子。Kata Containers托管于OpenStack Foundation,但與OpenStack項目分開(kāi),擁有自己的治理和社區。
行業(yè)向容器的轉變帶來(lái)了獨特的挑戰,即在多租戶(hù)環(huán)境中保護用戶(hù)工作負載,同時(shí)兼顧可信和不可信工作負載。Kata Containers使用硬件支持的隔離作為pod中每個(gè)容器或容器集合的邊界。此方法解決了傳統容器架構構中共享內核的安全問(wèn)題。
Kata Containers非常適合按需、基于事件的部署,例如持續集成/持續交付,以及運行時(shí)間更長(cháng)的Web服務(wù)器應用程序。Kata還支持從傳統虛擬化環(huán)境輕松過(guò)渡到容器,因為它支持傳統訪(fǎng)客內核和設備傳遞功能。Kata Containers提供增強的安全性、可擴展性和更高的資源利用率,同時(shí)簡(jiǎn)化整體堆棧的實(shí)現。

OpenStack和Kubernetes集成
選擇開(kāi)源平臺的主要好處之一是跨這些平臺的標準部署的接口的穩定性。 OpenStack Foundation和Cloud Native Computing Foundation(CNCF)都為OpenStack云和Kubernetes集群維護互操作性標準,保證庫、應用程序和驅動(dòng)程序可以在所有平臺上運行,無(wú)論它們在何處部署。這為“肩并肩”集成創(chuàng )造了機會(huì ),允許OpenStack和Kubernetes利用另一方提供的資源。
Kubernetes社區中的OpenStack Special Interest Group(SIG-OpenStack)維護著(zhù)Cloud Provider OpenStack插件。除了在OpenStack上運行Kubernetes的云provider接口外,它還維護了幾個(gè)允許Kubernetes利用各個(gè)OpenStack服務(wù)的驅動(dòng)程序。這些驅動(dòng)包括:
- 兩個(gè)獨立的Cinder驅動(dòng)程序。Flex Volume驅動(dòng)程序使用基于exec的模型與驅動(dòng)程序接口,以及容器存儲接口(CSI)驅動(dòng)程序(該驅動(dòng)程序使用容器編排系統的標準接口將任意存儲系統暴露給其容器工作負載)。這些驅動(dòng)程序支持70多種存儲驅動(dòng)程序,可通過(guò)單個(gè)Cinder API連接大量經(jīng)過(guò)實(shí)戰考驗的專(zhuān)有和開(kāi)源存儲設備。
- Keystone的基于webhook的身份驗證和授權接口。每種模式、身份驗證和授權都可以彼此獨立配置。雖然正在進(jìn)一步開(kāi)發(fā)中,但該接口支持軟多租戶(hù)(支持Kubernetes RBAC)。
OpenStack和Kubernetes都支持由各種驅動(dòng)程序支持的高動(dòng)態(tài)網(wǎng)絡(luò )模型。由于這些標準網(wǎng)絡(luò )接口,可以輕松構建具有強大網(wǎng)絡(luò )集成的獨立OpenStack和Kubernetes集群。在OpenStack中,Kuryr項目生成一個(gè)通用網(wǎng)絡(luò )接口(CNI)驅動(dòng)程序,為Docker和Kubernetes提供Neutron網(wǎng)絡(luò )。另一方面,像Calico這樣的項目提供Neutron驅動(dòng)程序,通過(guò)標準的Neutron API直接訪(fǎng)問(wèn)流行的Kubernetes網(wǎng)絡(luò )覆蓋。
III 案例研究
OpenStack社區的許多成員正在為與容器相關(guān)的各種OpenStack項目提供新代碼,評估容器的含義和好處,并在生產(chǎn)中使用容器來(lái)解決挑戰并解鎖新功能。本節重點(diǎn)介紹一些最有趣的案例研究。
AT&T
AT&T是全球最大的電信公司之一,它利用容器技術(shù)來(lái)部署和管理OpenStack本身,依靠基礎設施容器來(lái)實(shí)現簡(jiǎn)單性和效率,目的是在容器化的OpenStack上構建5G基礎設施。
為了實(shí)現目標,AT&T正在使用OpenStack-Helm項目在Kubernetes集群中編排基于LOCI的OpenStack鏡像,同時(shí)利用Kubernetes、Docker和核心OpenStack服務(wù)。AT&T還使用Bandit、Tempest、Patrole和許多其他OpenStack項目。AT&T還在社區中合作推出了一系列名為Airship的云服務(wù)項目——該項目提供從裸機到運行OpenStack工作負載的生產(chǎn)級Kubernetes的云。

AT&T發(fā)現容器化允許其將傳統的部署類(lèi)型活動(dòng)轉移到左側,并使用CI / CD進(jìn)行驗證。Kubernetes還提供了巨大的可擴展性和彈性,以及允許OpenStack-Helm以聲明方式配置操作行為,注入配置,完成滾動(dòng)升級和更新而不影響租戶(hù)工作負載的鉤子。
利用容器技術(shù)來(lái)部署和管理OpenStack不應該對租戶(hù)產(chǎn)生明顯的影響——除了為它們提供具有更高彈性的平臺,能夠更頻繁地獲得云功能并且中斷最少。AT&T的運維團隊的新經(jīng)驗將更多的努力轉移到定義站點(diǎn)的聲明性配置,并讓面向Kubernetes的自動(dòng)化自行進(jìn)行部署。
AT&T旨在利用這種架構為虛擬網(wǎng)絡(luò )功能提供支持——這些功能構成了其以消費者和業(yè)務(wù)為中心的產(chǎn)品和服務(wù)的支柱。AT&T的容器化Network Cloud的初始使用案例將是新興5G網(wǎng)絡(luò )的VNF的初始部署。OpenStack過(guò)去、現在和將來(lái)都非常適合AT&T的聚焦于VNF的云用例。容器化只是一種演變,允許AT&T以更可靠、快速、零接觸的方式部署、管理和擴展其OpenStack基礎設施。
在運維方面,AT&T仍在測試這種方法,但已承諾很快將5G服務(wù)投入生產(chǎn)。OpenStack和容器技術(shù)將成為這項服務(wù)的支柱,這對AT&T的數百萬(wàn)用戶(hù)來(lái)說(shuō)具有很強的戰略性。部署5G服務(wù)將證明OpenStack和容器在大規模分布式生產(chǎn)環(huán)境中的相關(guān)性。
CERN
CERN使物理學(xué)家和工程師能夠利用世界上最大和最復雜的科學(xué)儀器探索宇宙的基本結構,研究物質(zhì)的基本成分——基本粒子。CERN云為物理學(xué)家提供科學(xué)計算的計算資源,分析來(lái)自大型強子對撞機和其他實(shí)驗的數據。
自2013年以來(lái),CERN一直在運行OpenStack,目前正在單個(gè)云中為虛擬機、裸機和容器提供服務(wù)。容器可以在虛擬機或裸機上運行,具體取決于用例,所有這些都通過(guò)OpenStack Magnum進(jìn)行配置。CERN提供各種不同的容器技術(shù),包括Kubernetes、Docker Swarm和DC / OS。
CERN目前在OpenStack之上運行通過(guò)Magnum配置的250個(gè)容器集群。

CERN的OpenStack云為用戶(hù)提供自助服務(wù)訪(fǎng)問(wèn)權,可通過(guò)一些命令或Web GUI請求配置好的容器引擎。這允許快速利用這些技術(shù),并且如果需要可以擴展到1000個(gè)節點(diǎn)。可提供帶有內置監控并集成到CERN存儲和身份驗證服務(wù)的最佳實(shí)踐配置。
有效地運行此資源池,在不需要額外操作人力的情況下擴展它需要一致的管理流程和工具。通過(guò)Magnum在OpenStack之上添加容器使服務(wù)能夠使用先前開(kāi)發(fā)的自動(dòng)化,例如硬件修復過(guò)程和一致的授權模型,同時(shí)根據用戶(hù)需求快速重新分配資源。
CERN是一個(gè)公共資助的實(shí)驗室,Kubernetes和OpenStack等開(kāi)源解決方案提供了一個(gè)框架,使其可以與其他組織協(xié)作并回饋社區。CERN通過(guò)CERN openlab框架與眾多供應商合作,提供帶有多種功能的大規模云。這些經(jīng)驗也通過(guò)OpenStack特殊興趣小組與其他科學(xué)如Square Kilometer Array(SKA)、公共演示文稿(如Kubecon Europe)和博客(如OpenStack in Production)共享。

在CERN,幾個(gè)工作負載在Magnum提供的容器內運行,包括:
Reana /Recast
這些工具為在高能物理中執行可重復使用的工作流程提供了框架。容器能夠將分析軟件和數據打包在一個(gè)易于共享的單元中,并且可以輕松擴展內部部署和使用外部資源。接下來(lái)的工作為基于Yadage Workflows的Kubernetes作業(yè),支持分析和數據保存活動(dòng)。
Spark即服務(wù)
最近,Kubernetes被添加為Spark的資源管理器。Spark可以生成驅動(dòng)程序和執行程序,而pod和Kubernetes負責調度和生命周期。CERN IT部門(mén)的一個(gè)團隊正在開(kāi)發(fā)一項服務(wù),讓用戶(hù)可以使用OpenStack Magnum按需創(chuàng )建Kubernetes集群,并在Kubernetes上部署Spark,以安全的方式提供與CERN專(zhuān)用文件系統和數據源的所有必需集成。通過(guò)少量命令,用戶(hù)可以有效地創(chuàng )建具有所需大小的Spark部署,僅在需要的時(shí)候創(chuàng )建,并且可以選擇在運行的時(shí)候擴展或縮小部署。
用于LHC升級的LHC實(shí)驗檢測器觸發(fā)模擬
大型強子對撞機將在2020年左右升級到更高的發(fā)光度。CERN已經(jīng)創(chuàng )建了大規模Kubernetes集群來(lái)模擬ATLAS實(shí)驗的不同方法并驗證設計,從而對Kubernetes和OpenStack組件進(jìn)行了一些微調。
Gitlab持續集成運行器
Gitlab使用戶(hù)能夠構建CI / CD作業(yè)并在共享或項目特定的運行器上執行它們。CERN用戶(hù)可以利用CERN Container Service來(lái)測試和構建軟件,構建和發(fā)布容器鏡像和文檔,或設置管理整個(gè)應用程序生命周期的復雜管道,包括自動(dòng)部署到不同的環(huán)境中。
多個(gè)外部云的Federated Kubernetes compute farm
CERN使用Kubernetes集群聯(lián)合來(lái)支持多云操作。多個(gè)集群可以無(wú)縫集成在使用不同技術(shù)的云中,包括AWS、GCE和OpenStack云(如CERN和T-Systems Open Telekom Cloud)。
在單個(gè)框架下集成虛擬機、容器引擎和裸機,讓用戶(hù)可以輕松查看使用情況、所有權和配額。Kubernetes的Manila存儲驅動(dòng)程序允許透明地配置文件共享。這支持IT部門(mén)進(jìn)行容量規劃,支持實(shí)驗資源協(xié)調員確定其工作組的優(yōu)先級。資源管理策略,如在工作人員離開(kāi)時(shí)重新分配資源或使資源到期,將在一致的工作流程中處理。
SK Telecom
SK Telecom(SKT)是韓國最大的電信運營(yíng)商,一直在探索在Kubernetes上部署OpenStack的最優(yōu)方法,目的是將核心業(yè)務(wù)功能應用于容器化OpenStack。
SKT利用Kolla和Openstack-Helm, 部署由Kubespray自動(dòng)完成。SKT將近100%的開(kāi)發(fā)工作投入OpenStack-Helm,并與AT&T密切合作,推動(dòng)OpenStack-Helm的成功。
SKT還在其關(guān)于Kubernetes上的OpenStack的工作中加入了其他工具。對于日志記錄、監控和警報,SKT使用Prometheus和Elasticsearch、Fluent-bit和Kibana——所有這些都是OpenStack-Helm社區中的默認參考工具。SKT將所有這些組合成一個(gè)名為T(mén)ACO:SKT All Container OpenStack的封閉式集成解決方案。
SKT將重點(diǎn)放在圍繞容器化的Kubernetes上的Openstack的自動(dòng)化持續集成/持續交付(CI / CD)管道。SKT的CI系統包括Jenkins、Rally、Tempest、Docker Registry,以及Jira和Bitbucket。SKT還開(kāi)發(fā)了一個(gè)名為Cookiemonster的開(kāi)源工具——這是一種用于Kubernetes部署的彈性測試工具,可為其CI管道執行彈性測試。
每次更改,SKT都會(huì )自動(dòng)構建和測試OpenStack容器和Helm圖表。每天,他們會(huì )自動(dòng)安裝一個(gè)高度可用的OpenStack部署,包含三個(gè)控制節點(diǎn)和兩個(gè)計算節點(diǎn),從Tempest運行400個(gè)測試用例來(lái)驗證服務(wù),最后使用Cookiemonster和Rally運行彈性測試。完整的CI系統如下圖所示:

SKT通過(guò)Airship的子項目Armada實(shí)現自動(dòng)化部署——該項目由AT&T作為一個(gè)新的開(kāi)放式基礎設施項目在社區推出。SKT正在社區中進(jìn)行合作,根據其生產(chǎn)用途為項目提供增強功能。
在實(shí)際應用中,SKT已經(jīng)看到了在Kubernetes上部署OpenStack的大量好處,包括:簡(jiǎn)單易用的安裝;集群自動(dòng)修復;能夠升級和更新OpenStack并對運行的服務(wù)影響最小;快速采用高級發(fā)布方法;通過(guò)容器隔離完成Python依賴(lài)關(guān)系的自動(dòng)化管理;安全的秘密和配置管理;快速靈活地推出集群更新。
SKT仍在測試這種方法,但正在積極地在生產(chǎn)中運行OpenStack-Helm部署。很快,SKT將至少擁有三個(gè)生產(chǎn)集群,后續還有第四個(gè)和最大的生產(chǎn)集群將上線(xiàn)。這些用例包括:大數據平臺、桌面基礎設施架構平臺、通用內部私有云、基于虛擬網(wǎng)絡(luò )功能構建的電信網(wǎng)絡(luò )基礎設施。
SKT還試圖通過(guò)利用容器化的VNF并利用容器的自動(dòng)修復和快速擴展功能來(lái)改善電信基礎設施運維的自動(dòng)化。為了允許基于虛擬機的VNF和容器化VNF之間的交互,Simplified Overlay Network(SONA)——OpenStack的虛擬網(wǎng)絡(luò )解決方案,將支持VM和容器之間的通信。 SONA使用Kuryr項目集成OpenStack和Kubernetes,并使用軟件定義的網(wǎng)絡(luò )技術(shù)優(yōu)化網(wǎng)絡(luò )性能。
總的來(lái)說(shuō),SKT發(fā)現Kubernetes有助于解決部署和運維OpenStack的許多復雜問(wèn)題。簡(jiǎn)化OpenStack為他們提供了一種強大的方法,可以為5G時(shí)代提供先進(jìn)的基礎設施創(chuàng )新。Kubernetes上的Openstack,大大提高了他們應對容器中微服務(wù)不斷演變的能力,成為提供人工智能、物聯(lián)網(wǎng)和機器學(xué)習的關(guān)鍵基礎設施。
Superfluidity
Superfluidity項目由來(lái)自12個(gè)歐洲國家的18個(gè)合作伙伴組成。它旨在增強實(shí)時(shí)實(shí)例化服務(wù)的能力,在網(wǎng)絡(luò )中的任何位置運行它們,并將它們透明地轉移到不同的位置。SUPERFLUIDITY是一個(gè)歐洲研究項目(Horizon 2020),旨在通過(guò)利用和擴展知名的開(kāi)源項目,為5G網(wǎng)絡(luò )構建基礎設施模塊。SUPERFLUIDITY將提供融合的基于云的5G概念,可在移動(dòng)邊緣實(shí)現創(chuàng )新用例,增強新業(yè)務(wù)模式,并降低投資和運維成本。
為了實(shí)現這些目標,項目聯(lián)盟正在從傳統的基于VM的應用程序轉移到Cloud Native容器化應用程序。 Kuryr是OpenStack虛擬機、Kubernetes和OpenShift容器化服務(wù)之間的橋梁。
該項目利用ManageIQ作為中央網(wǎng)絡(luò )功能虛擬編排器(NFVO),Ansible來(lái)進(jìn)行Application部署和生命周期管理,OpenStack服務(wù)(包括Heat,Neutron和Octavia,以及Kubernetes)通過(guò)OpenShift實(shí)現虛擬機和容器的集成。

通過(guò)利用從ManageIQ設備執行的Ansible playbooks,SUPERFLUIDITY提供了一種部署應用程序的常用方法。這些應用程序反過(guò)來(lái)使用OpenStack Heat模板和OpenShift模板提供的云編排功能。
該聯(lián)盟在容器內部署5G云無(wú)線(xiàn)接入網(wǎng)絡(luò )(CRAN)和移動(dòng)邊緣計算(MEC)組件。它還在分布式基礎架構之上部署高吞吐量應用程序,如視頻流。
轉向應用程序交付的云原生方法可實(shí)現快速、靈活的SUPERFLUIDITY安裝。它可以實(shí)現從基于VM的應用程序和組件到容器的平穩過(guò)渡,同時(shí)保留為某些特定應用程序啟用VM的多功能性。例子是單路輸入/輸出虛擬化(SRIOV)所需的特殊安全保護或網(wǎng)絡(luò )加速。
在大規模性能測試中,SUPERFLUIDITY能夠以22個(gè)pod/秒的速度啟動(dòng)大約1000個(gè)容器。通過(guò)在OpenStack管理的VM上運行OpenShift實(shí)現了這一卓越的性能,其中Kuryr充當pod網(wǎng)絡(luò )驅動(dòng)程序。
IV 結論
在過(guò)去幾年中,隨著(zhù)容器成為開(kāi)發(fā)人員和組織的重要工具,OpenStack利用其模塊化設計和廣泛的社區將容器技術(shù)集成到多個(gè)層面。 這體現在,各種組織將容器和OpenStack投入生產(chǎn),以及與容器一起工作以提供新功能的項目數量越來(lái)越多上。OpenStack基金會(huì )致力于確保可以在OpenStack中整合和使用新興技術(shù),而容器則是該承諾的重要例子。
原文鏈接:
https://www.openstack.org/containers/leveraging-containers-and-openstack/
獲取更多開(kāi)源云技術(shù)資訊&大咖交流&免費活動(dòng),歡迎添加開(kāi)源云中文社區小助手,備注開(kāi)源云!