• <strike id="fdgpu"><input id="fdgpu"></input></strike>
    <label id="fdgpu"></label>
    <s id="fdgpu"><code id="fdgpu"></code></s>

  • <label id="fdgpu"></label>
  • <span id="fdgpu"><u id="fdgpu"></u></span>

    <s id="fdgpu"><sub id="fdgpu"></sub></s>
    您當前的位置是:  首頁(yè) > 資訊 > 文章精選 >
     首頁(yè) > 資訊 > 文章精選 >

    白皮書(shū)《Leveraging Containers and OpenStack》(上)

    2019-03-06 10:45:30   作者:   來(lái)源:CTI論壇   評論:0  點(diǎn)擊:


      引言
      想象一下,你的任務(wù)是從頭開(kāi)始構建整個(gè)私有云基礎設施。你的預算有限,帶領(lǐng)一個(gè)小而專(zhuān)的團隊,而且被要求創(chuàng )造奇跡。
      幾年前,你會(huì )構建一個(gè)基礎設施,包含在虛擬機中運行的應用程序,以及一些用于遺留應用程序的裸機。隨著(zhù)基礎設施的發(fā)展,虛擬機(VM)可以實(shí)現更高的效率和靈活性,但僅靠虛擬機并不能完全滿(mǎn)足敏捷的應用程序部署方法的需求。它們繼續作為運行許多應用程序的基礎,但越來(lái)越多的開(kāi)發(fā)人員正在尋求容器的新興趨勢,以進(jìn)行前沿的應用程序開(kāi)發(fā)和部署——因為容器提供了更高的靈活性和效率。
      Docker和Kubernetes等容器技術(shù)正在成為構建容器化應用的領(lǐng)先標準。它們幫助組織消除了限制開(kāi)發(fā)靈活性的復雜性。容器、容器基礎設施和容器部署技術(shù)已被證明是非常強大的抽象,可應用于許多不同的用例。使用Kubernetes等技術(shù),組織可以提供僅使用容器進(jìn)行應用程序交付的云。
      但是,領(lǐng)先的私有云不僅僅是容器,容器也不適合所有工作負載和用例。如今,大多數私有云基礎設施都需要包含用于管理基礎設施的裸機、用于遺留應用程序的虛擬機以及用于新應用程序的容器。支持、管理和協(xié)調這三種方法的能力是運營(yíng)效率的關(guān)鍵所在。
      OpenStack是目前構建私有云的最佳選擇,具有管理網(wǎng)絡(luò )、存儲和計算基礎設施的能力,支持來(lái)自一個(gè)控制平面的虛擬機、裸機和容器。雖然Kubernetes可以說(shuō)是最受歡迎的容器編排器并且已經(jīng)改變了應用程序的交付,但它取決于是否有可靠的云基礎設施,而OpenStack為托管應用程序提供了最全面的開(kāi)源基礎設施。OpenStack的多租戶(hù)云基礎設施非常適合Kubernetes,擁有多個(gè)集成點(diǎn)、部署解決方案和跨多個(gè)云聯(lián)合的能力。
      在本文中,我們將探討容器如何在OpenStack中工作,檢查各種用例,并提供OpenStack等開(kāi)源項目的概述——這有助于使容器成為易于采用和利用的技術(shù)。
      I. OpenStack中容器的高級視圖
      容器和OpenStack的交匯有三種主要場(chǎng)景。
      第一種場(chǎng)景稱(chēng)為基礎設施容器,允許運維人員以改進(jìn)云基礎設施部署、管理和運維的方式利用容器。在此場(chǎng)景中,容器在裸機基礎設施上設置,并允許對主機資源進(jìn)行特權訪(fǎng)問(wèn)。此訪(fǎng)問(wèn)權限允許它們直接利用容器運行時(shí)通常試圖不讓用戶(hù)感知的計算、網(wǎng)絡(luò )和存儲資源。容器隔離了每個(gè)應用程序所依賴(lài)的復雜依賴(lài)關(guān)系,同時(shí)仍允許基礎設施應用程序直接管理和操作底層系統資源。當需要升級服務(wù)時(shí),可以在不改變依賴(lài)關(guān)系的情況下處理升級,從而不破壞共址服務(wù)。
      新版本的OpenStack已經(jīng)采用了這種基礎設施容器模型,現在通過(guò)組合編排工具和容器化服務(wù)來(lái)管理OpenStack部署的整個(gè)生命周期是正常的。基礎設施容器使運維人員能夠使用容器編排技術(shù)來(lái)解決許多問(wèn)題,尤其是在快速迭代/升級現有軟件(包括OpenStack)的過(guò)程中。在容器內運行OpenStack有助于運維人員解決Day 2的挑戰,包括為服務(wù)添加新組件、快速升級軟件版本以及跨機器和數據中心快速滾動(dòng)更新。這種方法將容器的敏捷性好處帶給了OpenStack的部署和升級。
      第二種場(chǎng)景涉及在云基礎設施上托管容器化應用程序框架。包括像Docker Swarm和Kubernetes這樣的Container Orchestration Engines(COE),或者更輕量級的容器專(zhuān)用服務(wù)和無(wú)服務(wù)器API。無(wú)論是在裸機還是虛擬機上,OpenStack社區都致力于確保在安全、租戶(hù)隔離的云主機上提供容器化應用程序。驅動(dòng)程序推動(dòng)了這種場(chǎng)景,這些驅動(dòng)程序允許像Kubernetes這樣的項目直接利用OpenStack API進(jìn)行存儲、負載均衡和身份識別。它還包括用于按需配置托管Kubernetes集群和應用程序容器的API。借助這些功能,開(kāi)發(fā)團隊可以編寫(xiě)新的容器化應用程序,并在OpenStack云上快速配置Kubernetes集群。它是一個(gè)完整的應用程序生命周期解決方案,提供開(kāi)發(fā)、測試和調試代碼所需的資源,并具有強大的自動(dòng)化功能,可將應用程序部署到生產(chǎn)環(huán)境中。
      在最后一種場(chǎng)景中,我們考慮了獨立OpenStack和COE部署之間的交互,而本文特別考慮了Kubernetes集群。跨OpenStack和Kubernetes集群的API的一致性和互操作性是此方案成功的主要原因。例如,Kubernetes可以直接連接到OpenStack Cinder托管卷,使用OpenStack Keystone作為授權和身份驗證后端,或者連接到OpenStack Neutron作為OpenStack Kuryr的網(wǎng)絡(luò )覆蓋。相反,OpenStack云可能與Kubernetes集群共享相同的網(wǎng)絡(luò )覆蓋,其中包含用于Calico等項目的Neutron驅動(dòng)程序。第三種場(chǎng)景不太關(guān)注如何托管云服務(wù)(無(wú)論是Kubernetes還是OpenStack),而是更關(guān)注獨立服務(wù)如何交互。
      II . OpenStack容器集成點(diǎn)
      在容器上部署OpenStack基礎設施
      如引言中所述,OpenStack的部署和管理隨著(zhù)容器的出現而發(fā)生了顯著(zhù)變化,因為容器帶來(lái)了管理基礎設施代碼的新方法。以前的管理策略要么需要創(chuàng )建和維護重量級的黃金級機器鏡像,要么使用脆弱的狀態(tài)維護配置管理系統。每種方法都有其復雜性和限制。難上加難的是管理一系列服務(wù)——這些服務(wù)都需要自己的依賴(lài)關(guān)系,這些依賴(lài)關(guān)系隨發(fā)布版本的變化而變。如果沒(méi)有某種形式的應用程序隔離,解決依賴(lài)關(guān)系的問(wèn)題會(huì )很困難甚至不可能。
      基礎設施容器使新的OpenStack部署項目能夠在兩者之間取得平衡,同時(shí)很好地解決依賴(lài)關(guān)系問(wèn)題。使用輕量級、獨立、自包含且通常無(wú)狀態(tài)的應用程序容器,云運維人員在部署復雜控制平面時(shí)可獲得極大的靈活性。結合容器運行時(shí)和編排引擎,基礎設施容器可以快速部署、維護和升級復雜且高度可用的基礎設施。
      在構建OpenStack集群時(shí),選擇部署技術(shù)有幾個(gè)方面。運維人員可以為其基本容器選擇Linux Containers(LXC)或Docker,使用預構建或定制的應用程序容器,并選擇傳統的配置管理系統進(jìn)行編排或更現代的方法(如Kubernetes)。表1總結了現有的OpenStack部署項目及其基礎技術(shù)。
      每個(gè)部署系統的基礎是為OpenStack代碼和支持服務(wù)構建一組容器的不同方法。 OpenStack Ansible(OSA)和Kolla項目提供它們自己的項目管理構建系統,而LOCI專(zhuān)注于構建項目應用程序容器,而不管特定的編排系統。在更高的層次上,它們之間的差異是:
      OSA的獨特之處在于它依賴(lài)于較低級別的LXC容器,并且具有用于創(chuàng )建LXC應用程序容器的自定義構建系統。
      Kolla構建系統生成Docker容器(每個(gè)服務(wù)一個(gè)),以及用于初始化和管理OpenStack部署的支持容器。 Kolla容器具有高度可配置性,可選擇基本操作系統、源或包安裝,以及用于進(jìn)一步定制的模板引擎。
      構建OpenStack應用程序容器的最后一個(gè)選選擇是LOCI。LOCI還構建了一個(gè)Docker容器,并為每個(gè)項目提供了一個(gè)容器。LOCI專(zhuān)注于為所有常見(jiàn)版本快速生成緊湊且安全的容器,并期望它們可用作部署系統構建的基礎。
      裸機基礎設施——OpenStack和解決Bootstrap問(wèn)題
      在每個(gè)云的基礎上,都有一個(gè)托管基礎設施服務(wù)的裸機服務(wù)器數據中心。甚至“無(wú)服務(wù)器計算”也在數據中心的硬件上運行云上的軟件。如何引導硬件基礎設施是一個(gè)關(guān)鍵問(wèn)題,OpenStack軟件在這一點(diǎn)上很獨特,可為裸機管理提供類(lèi)似云的質(zhì)量。
      OpenStack Ironic提供裸機即服務(wù)。作為一項獨立服務(wù),它可以發(fā)現裸機節點(diǎn),在管理數據庫中對它們進(jìn)行編目,并管理整個(gè)服務(wù)器生命周期,包括注冊、配置、維護和退役。當用作OpenStack Nova的驅動(dòng)程序并與OpenStack服務(wù)套件結合使用時(shí),它為管理整個(gè)裸機基礎設施提供了強大的類(lèi)似云的服務(wù)。
      這提出了一個(gè)問(wèn)題:引導OpenStack服務(wù)如何管理裸機基礎設施?典型的解決方案是使用上一節中描述的基于容器的安裝工具創(chuàng )建種子安裝。這種種子通常被稱(chēng)為“undercloud”,可用于完全自動(dòng)化裸機集群的管理,就像它是虛擬化云一樣。
      這不僅可以在裸機云上運行OpenStack虛擬化,還可以運行裸機Kubernetes安裝,從而利用OpenStack服務(wù)提供的身份、存儲、網(wǎng)絡(luò )和其他云API。 。
      在OpenStack上提供基于容器的應用程序
      基礎設施容器和裸機基礎設施很重要,但當大多數人想到容器時(shí),他們會(huì )想到應用容器。容器提供的隔離、包裝和易維護性使其成為交付應用的理想解決方案。但是,無(wú)論是裸機、公有云還是私有云,容器仍然需要主機平臺來(lái)提供服務(wù)。
      Kubernetes是一個(gè)提供最適合云API的應用程序的平臺,可以自動(dòng)交付關(guān)鍵基礎設施,如永久存儲、負載均衡器、網(wǎng)絡(luò )和計算節點(diǎn)的動(dòng)態(tài)分配。OpenStack提供云基礎設施,可以是本地私有云,也可以是任何公有或托管的OpenStack云。
      OpenStack是Kubernetes的第一個(gè)上游云提供商之一,擁有一個(gè)活躍的開(kāi)發(fā)團隊,負責維護“Kubernetes / Cloud Provider OpenStack”插件。該插件允許Kubernetes利用Cinder塊存儲、Neutron和Octavia負載均衡器,并使用Nova直接管理計算資源。使用provider就像將驅動(dòng)程序部署到Kubernetes安裝,設置標志以加載驅動(dòng)程序并提供本地用戶(hù)云憑證一樣簡(jiǎn)單。
      有許多解決方案可以在OpenStack上安裝Kubernetes和其他應用程序框架。提供容器框架的最簡(jiǎn)單方法之一是使用Magnum——這是一個(gè)OpenStack項目,提供一個(gè)簡(jiǎn)單的API來(lái)部署完全托管的集群(有多個(gè)應用程序平臺可以,包括Kubernetes)。這是Kubernetes部署系統的一個(gè)例子,它依賴(lài)于OpenStack API和云提供程序插件。例如,現在它被用于在CERN的OpenStack現場(chǎng)云以及合作伙伴云上,管理200多個(gè)獨立和聯(lián)合的Kubernetes安裝。如果你在首選的OpenStack云中沒(méi)有可用的Magnum API,則可以使用任何其他Kubernetes安裝工具(如kubeadm、Kubernetes Anywhere、Cross-Cloud或Kubespray)在OpenStack上安裝和管理Kubernetes集群。由于每個(gè)都使用標準Kubernetes,因此很容易使云provider接口能夠利用存儲和負載均衡。
      另一個(gè)OpenStack項目Zun提供了一個(gè)輕量級的容器服務(wù)API,用于管理單個(gè)容器,而無(wú)需管理服務(wù)器或集群。OpenStack托管的Kubernetes集群具有彈性,因為可以通過(guò)Nova API直接向集群添加或刪除云資源來(lái)動(dòng)態(tài)調整大小。或者,Kubernetes可以作為OpenStack Zun的容器后端,將pod基礎設施的管理權轉交給Zun。它為運行容器提供了輕量級和多租戶(hù)容器服務(wù)API,無(wú)需直接創(chuàng )建服務(wù)器。與Neutron和Cinder的直接集成用于為各個(gè)容器提供網(wǎng)絡(luò )和卷。
      最后,Qinling項目提供“功能即服務(wù)”,旨在提供支持無(wú)服務(wù)器功能的平臺,類(lèi)似于Lambda、Azure Functions和Google Cloud Functions。它進(jìn)一步抽象了容器的管理,并允許用戶(hù)通過(guò)按需擴展的事件驅動(dòng)、無(wú)服務(wù)器計算體驗來(lái)加速開(kāi)發(fā)。Qinling支持不同的容器編排后端(如Kubernetes和Docker swarm)、各種流行的功能包存儲后端(如本地存儲和OpenStack Swift)。
      原文鏈接:
      https://www.openstack.org/containers/leveraging-containers-and-openstack/
      獲取更多開(kāi)源云技術(shù)資訊&大咖交流&免費活動(dòng),歡迎添加開(kāi)源云中文社區小助手,備注開(kāi)源云!
    【免責聲明】本文僅代表作者本人觀(guān)點(diǎn),與CTI論壇無(wú)關(guān)。CTI論壇對文中陳述、觀(guān)點(diǎn)判斷保持中立,不對所包含內容的準確性、可靠性或完整性提供任何明示或暗示的保證。請讀者僅作參考,并請自行承擔全部責任。

    專(zhuān)題

    CTI論壇會(huì )員企業(yè)

    亚洲精品网站在线观看不卡无广告,国产a不卡片精品免费观看,欧美亚洲一区二区三区在线,国产一区二区三区日韩 祁阳县| 海林市| 佛教| 中方县| 郸城县| 酉阳| 呼伦贝尔市| 金山区| 汽车| 玛纳斯县| 黑水县| 嫩江县| 渝北区| 盱眙县| 襄城县| 马公市| 绥阳县| 稷山县| 舞阳县| 蒙阴县| 灵川县| 西林县| 马边| 宜君县| 论坛| 吉林省| 丽水市| 南昌县| 青浦区| 河津市| 乌什县| 两当县| 舟曲县| 兰考县| 龙岩市| 松溪县| 秀山| 四会市| 东乌珠穆沁旗| 新干县| 温泉县| http://444 http://444 http://444 http://444 http://444 http://444