容器云平臺規(guī)劃部署架構(gòu)設(shè)計_第1頁
容器云平臺規(guī)劃部署架構(gòu)設(shè)計_第2頁
容器云平臺規(guī)劃部署架構(gòu)設(shè)計_第3頁
容器云平臺規(guī)劃部署架構(gòu)設(shè)計_第4頁
容器云平臺規(guī)劃部署架構(gòu)設(shè)計_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

引言隨著移動互聯(lián)網(wǎng)時代的大步躍進,互聯(lián)網(wǎng)公司業(yè)務(wù)的爆炸式增長發(fā)展給傳統(tǒng)行業(yè)帶來了巨大的沖擊和挑戰(zhàn),被迫考慮轉(zhuǎn)型和調(diào)整。對于我們傳統(tǒng)的航空行業(yè)來說,還存在傳統(tǒng)的思維、落后的技術(shù)。一項新業(yè)務(wù)從提出需求到立項審批、公開招標、項目實施、上線、交付運維,沒有一年半載下不來。而此中最為嚴重的問題是,系統(tǒng)交付時的功能可能已經(jīng)偏離最初的需求,系統(tǒng)使用方不滿意,IT人員覺得付出的勞動沒有被認可,雙方矛盾加劇。大力發(fā)展移動互聯(lián)網(wǎng)業(yè)務(wù),因此對業(yè)務(wù)需求的響應(yīng)速度有了更高的要求,越來越多傳統(tǒng)應(yīng)用架構(gòu),為了適應(yīng)不斷變化的業(yè)務(wù)需求和難以預估的訪問量而開始進行分布式改造、微服務(wù)改造,實現(xiàn)持續(xù)集成、持續(xù)發(fā)布、自動化測試、支持彈性伸縮、灰度發(fā)布、藍綠部署等能力,容器云平臺恰恰可以很好的支撐上述需求。容器技術(shù)是近些年來最火爆的技術(shù)方向之一,容器云能更好服務(wù)于應(yīng)用,不斷提升客戶滿意度。按照云計算的三種類型,建設(shè)PaaS(Platformasaservice)平臺將有助于我們實現(xiàn)這些目標。目前許多公司采用了VMware技術(shù)完成了Iaas虛擬化建設(shè),而IaaS虛擬化層僅提供了對存儲、網(wǎng)絡(luò)、計算資源的管理,在IaaS上即使經(jīng)過了深度的定制化自動改造,流程走完時也是普遍在交付時將帶有應(yīng)用軟件及軟件配置的一臺虛擬機交付到申請者手中,申請者需要自己通過IP登錄到機器上部署相應(yīng)的應(yīng)用,更不用說各應(yīng)用組件之間的配合設(shè)置。而在容器平臺中從代碼開發(fā)集成到一個容器鏡像打包了應(yīng)用程序和運行環(huán)境,加上容器的配置文件,一整套流程走下來時,應(yīng)用已經(jīng)可以直接上線了,負載均衡,安全策略都可以具備,可以說容器云平臺是Devops理論的最佳實踐。對于容器平臺的建設(shè),從初期就需要做好平臺的整體規(guī)劃,切莫為了容器化而容器化,還是要因地制宜,尋找平衡點逐漸落地,混合實施,了解開發(fā)運維等多方面的需求、平臺相關(guān)技術(shù)的原理機制,團結(jié)開發(fā)、運維、用戶等才能共同設(shè)計好一個容器平臺。本文基于對容器云平臺的應(yīng)用和研究,詳細探討容器云平臺的規(guī)劃部署和架構(gòu)設(shè)計。1云基礎(chǔ)架構(gòu)介紹1.1IaaS/PaaS/SaaSIaaS:基礎(chǔ)架構(gòu)即服務(wù)云基礎(chǔ)架構(gòu)服務(wù)稱為基礎(chǔ)架構(gòu)即服務(wù)(IaaS),由高度可擴展和自動化的計算資源組成。IaaS是完全自助服務(wù),用于訪問和監(jiān)控計算、網(wǎng)絡(luò),存儲和其他服務(wù)等內(nèi)容,它允許企業(yè)按需求和需要購買資源,而不必購買全部硬件。PaaS:平臺即服務(wù)云平臺服務(wù)或平臺即服務(wù)(PaaS)為某些軟件提供云組件,這些組件主要用于應(yīng)用程序。PaaS為開發(fā)人員提供了一個框架,使他們可以基于它創(chuàng)建自定義應(yīng)用程序。所有服務(wù)器,存儲和網(wǎng)絡(luò)都可以由企業(yè)或第三方提供商進行管理,而開發(fā)人員可以負責應(yīng)用程序的管理。SaaS:軟件即服務(wù)軟件即服務(wù)(也稱為云應(yīng)用程序服務(wù))代表了云市場中企業(yè)最常用的選項。SaaS利用互聯(lián)網(wǎng)向其用戶提供應(yīng)用程序,這些應(yīng)用程序由第三方供應(yīng)商管理。大多數(shù)SaaS應(yīng)用程序直接通過Web瀏覽器運行,不需要在客戶端進行任何下載或安裝。1.2新寵CaaS(容器即服務(wù))CaaS(容器即服務(wù))——相對于IaaS和PaaS服務(wù),CaaS對底層的支持比PaaS更靈活,而對上層應(yīng)用的操控又比IaaS更容易。CaaS是以容器為核心的,它介于IaaS和PaaS之間,起到了屏蔽底層系統(tǒng)IaaS,支撐并豐富上層應(yīng)用平臺PaaS的作用。將底層的IaaS封裝成一個大的資源池,我們只要把自己的應(yīng)用部署到這個資源池中,不再需要關(guān)心資源的申請、管理,以及與業(yè)務(wù)開發(fā)無關(guān)的事情。2容器云平臺功能架構(gòu)2.1集群框架集群框架是容器集群管理及編排系統(tǒng)。目前國內(nèi)外的容器云管平臺有很多,目前選型都傾向于選擇基于GoogleKubernetes為主的容器管理平臺。直接采用GoogleKubernetes進行二次開發(fā),但是一般開發(fā)成本相對較高,相對比較復雜,為了節(jié)約項目成本,加快項目實施進度,一般企業(yè)會采用企業(yè)級的混合云容器平臺,如Redhat的Openshift平臺。2.2云持續(xù)交付管理(CI/CD)用戶可以創(chuàng)建項目的Gitlab服務(wù),鏡像倉庫服務(wù)以及Jenkins服務(wù),實現(xiàn)對項目的代碼以及鏡像的管理,運用Jenkins實現(xiàn)項目的持續(xù)集成,持續(xù)部署,持續(xù)交付等功能。不同角色處理不同的業(yè)務(wù)需求。系統(tǒng)管理員的主要任務(wù)是進行集群管理和云持續(xù)交付管理。系統(tǒng)管理員可以將部署好的集群添加到容器云平臺上進行管理,同時可以進行修改集群,查看計算資源等操作;在集群添加成功的情況下,系統(tǒng)管理員可以選擇相應(yīng)的集群和項目,創(chuàng)建項目Gitlab服務(wù)進行代碼管理,創(chuàng)建項目鏡像倉庫服務(wù)進行項目鏡像的管理,創(chuàng)建項目的Jenkins服務(wù),實現(xiàn)持續(xù)交付,持續(xù)集成,持續(xù)部署等功能。2.3多租戶管理在同一硬件平臺的基礎(chǔ)上實現(xiàn)多用戶的環(huán)境下共用相同的系統(tǒng)或程序組件,并且仍可確保各用戶間資源的隔離性和安全性。在對外運營的云平臺中,租戶管理用于監(jiān)控用戶使用的資源情況,方便進行資源的可用度計算和租戶的計費。而在企業(yè)內(nèi)部中,多租戶的用戶往往為各個不同的項目組,便于企業(yè)內(nèi)部不同項目之間的隔離。2.4跨主機集群可以將本地云平臺內(nèi)部的容器資源與平臺外部的客戶自有容器資源,及各種第三方公有云容器資源結(jié)合到一起形成混合容器云資源模式,增強平臺的包容性,降低用戶的使用門檻,同時用戶無需放棄自身原有的基礎(chǔ)資源。2.5鏡像倉庫提供本地公有/私有鏡像倉庫,提供第三方鏡像倉庫如Quay等的鏡像資源集成??梢詫⒈镜冂R像push到指定的鏡像倉庫中,也可以查看鏡像的版本等信息。鏡像倉庫可以對平臺使用人員應(yīng)用開發(fā)成果進行統(tǒng)一保存管理,平臺支持將應(yīng)用制作成鏡像,方便測試和運維。2.6應(yīng)用編排服務(wù)應(yīng)用編排服務(wù)是使容器之間能夠通信、彼此可以傳遞運行期,同時管理多個容器的行為。當容器集群共同構(gòu)建應(yīng)用架構(gòu)時,需要考慮集群環(huán)境中的容器,哪些端口需要暴露、哪些卷需要掛載等信息。2.7平臺支撐服務(wù)容器云平臺中需要一些公共服務(wù),基于PaaS之上的公有中間層SDK開發(fā)組件或API調(diào)用接口,及公有PaaS服務(wù)平臺。例:用戶統(tǒng)一身份認證組件,APP的消息推送組件,公有消息隊列平臺等。2.8容器管控對容器進行CPU/內(nèi)存資源配置,SSH或控制臺容器接入,網(wǎng)絡(luò)配置,環(huán)境變量設(shè)置,數(shù)據(jù)卷掛接,資源監(jiān)控,日志管控,事件記錄,二級域名或自有域名分配等功能。2.9數(shù)據(jù)卷或云盤基于云平臺的數(shù)據(jù)存儲工具。主要用于容器間數(shù)據(jù)共享,或某容器的外接數(shù)據(jù)卷進行數(shù)據(jù)持久化存儲。3容器云平臺架構(gòu)設(shè)計容器云在未來有可能會成為云管理平臺的統(tǒng)治者,也還會有更多的應(yīng)用在容器云上原生運行起來。因為對于容器云,它可以把很多分散的物理計算資源抽象成一個大的資源池,利用這些資源來執(zhí)行用戶的計算任務(wù)。對于用戶來說,操作一個分散的集群資源就像在使用一臺計算機。無論是容器技術(shù),還是DevOps和微服務(wù),都說明靈活、彈性、輕量化的IT應(yīng)用模式逐漸形成。而這種模式的形成對于復雜產(chǎn)品的快速開發(fā)有著積極意義。容器云架構(gòu)方案,劃分為六大部分,每個部分承擔了重要的職責。具體技術(shù)架構(gòu)如下:3.1容器管理方案Kubernetes的主要功能包括:1.基于容器的應(yīng)用部署、維護和滾動升級;2.負載均衡和服務(wù)發(fā)現(xiàn);3.跨機器和跨地區(qū)的集群調(diào)度;4.自動伸縮;5.無狀態(tài)服務(wù)和有狀態(tài)服務(wù);6.廣泛的Volume支持;7.插件機制保證擴展性。Kubernetes提供了很多的功能,它可以簡化應(yīng)用程序的工作流,加快開發(fā)速度。這里最佳實踐是選擇基于kubernetes的容器云平臺,以便更輕松地部署、擴展和管理應(yīng)用程序。用戶可以使用Label以自己的方式組織管理資源,還可以使用Annotation來自定義資源的描述信息,比如為管理工具提供狀態(tài)檢查等。此外,Kubernetes控制器也是構(gòu)建在跟開發(fā)人員和用戶使用的相同的API之上。用戶還可以編寫自己的控制器和調(diào)度器,也可以通過各種插件機制擴展系統(tǒng)的功能。這種設(shè)計使得可以方便地在Kubernetes之上構(gòu)建各種應(yīng)用系統(tǒng)。3.2平臺監(jiān)控方案3.2.1容器監(jiān)控容器監(jiān)控的對象主要包括Kubernetes集群(各組件)、應(yīng)用服務(wù)、Pod、容器及網(wǎng)絡(luò)等。這些對象主要表現(xiàn)為以下三個方面:1.Kubernetes集群自身健康狀態(tài)監(jiān)控(5個基礎(chǔ)組件、Docker、Etcd、Calico等)2.系統(tǒng)性能的監(jiān)控,比如:CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)、filesystem及processes等;3.業(yè)務(wù)資源狀態(tài)監(jiān)控,主要包括:rc/rs/deployment、Pod、Service等;針對容器的整體運行狀況及性能狀況監(jiān)控,目前主流的開源監(jiān)控技術(shù)對比如下:筆者所使用的Prometheus監(jiān)控方案如下:3.2.2主機監(jiān)控筆者這邊使用zabbix全面采集并監(jiān)控物理和虛擬服務(wù)器的可用性,CPU,磁盤空間和內(nèi)存利用率等關(guān)鍵性能指標。采集網(wǎng)絡(luò)中的所有性能指標和事件數(shù)據(jù),全面監(jiān)控網(wǎng)絡(luò)性能,實時檢測網(wǎng)絡(luò)故障,排除故障并防止停,基于zabbix二次開發(fā)輔助功能,用于各類中間件的運行狀態(tài)監(jiān)控。3.2.3特定中間件監(jiān)控提供常見中間件的性能監(jiān)控(WebLogic、Tomcat、Nginx等),為中間件鏡像制作腳本,中間件監(jiān)控程序直接整合到容器鏡像中,容器一啟動,即時上報性能數(shù)據(jù)到監(jiān)控平臺??梢灾苯釉趜abbix監(jiān)控平臺查看中間件的運行狀況。3.3日志收集方案容器平臺的日志系統(tǒng)一般包括:Kubernetes組件的日志,資源的事件日志及容器所運行的應(yīng)用的日志。關(guān)于容器日志的收集,筆者整理了之前做過的四種方案,并對每種方案進行對比:本容器云平臺,使用fluentd(以DaemonSet的方式啟動)來收集日志,并將收集的日志發(fā)送給統(tǒng)一日志平臺。3.4鏡像管理方案容器云平臺中的鏡像主要來源:1、用戶私有的鏡像倉庫;2、云平臺公共鏡像倉庫;私有鏡像倉庫作為用戶之間部署鏡像的基本隔離,是容器隔離的基礎(chǔ);而云平臺的公共鏡像倉庫提供常用開源鏡像的基礎(chǔ)服務(wù)。目前常用的鏡像倉庫有Registry、Nexus3、Harbor、Quay等。Harbor是一個用于存儲和分發(fā)Docker鏡像的企業(yè)級Registry服務(wù)器,通過添加一些企業(yè)必需的功能特性,例如安全、標識和管理等,擴展了開源DockerDistribution。作為一個企業(yè)級私有Registry服務(wù)器,Harbor提供了更好的性能和安全。提升用戶使用Registry構(gòu)建和運行環(huán)境傳輸鏡像的效率。本課程中選取Harbor作為鏡像倉庫。下表是部分鏡像倉庫的基本功能都對比:3.5基礎(chǔ)資源管理方案3.5.1主機管理容器云平臺的宿主機的接入方式是開放的,主機可以基于IaaS云平臺,使用IaaS云平臺歸集所有計算資源,對計算算資源進行二次分配之后,再接入云平臺中;也可以直接基于裸機接入容器云平臺;租戶可以根據(jù)自身使用情況任意添加自己的云主機到容器環(huán)境中來;而容器的整體資源限制交給容器管理平臺來管理,對容器管理平臺的規(guī)劃是:讓容器管理平臺管理資源,分配容器,容器所在的操作系統(tǒng)歸租戶所有。3.5.2網(wǎng)絡(luò)管理底層容器網(wǎng)絡(luò)可以使用各種符合CNI格式的插件,如Calico。Calico是一個純?nèi)龑泳W(wǎng)絡(luò),沒有引入一個DP,沒有封包。在主機內(nèi)部做另外一個容器,可以三條到達終端,你可以知道是誰出了問題,調(diào)試的時候很容易,很好管理。容器內(nèi)的應(yīng)用數(shù)據(jù)傳出來,和二層完全隔離,對于我們絕大多數(shù)的應(yīng)用來講只需要三層就夠了,很少有應(yīng)用處理二層。而且Calico支持豐富的網(wǎng)絡(luò)策略,可以實現(xiàn)多租戶管理。3.5.3存儲管理方案目標:極快的創(chuàng)建速度,極小的存儲資源消耗以及容器遷移的便捷性。后端存儲主要采用Ceph驅(qū)動。Ceph獨一無二地用統(tǒng)一的系統(tǒng)提供了對象、塊、和文件存儲功能,它可靠性高、管理簡便、并且是自由軟件。Ceph的強大足以支撐IT基礎(chǔ)架構(gòu)、和管理海量數(shù)據(jù)。Ceph可提供極大的伸縮性——供成千用戶訪問PB乃至EB級的數(shù)據(jù)。Ceph節(jié)點以普通硬件和智能守護進程作為支撐點,Ceph存儲集群組織起了大量節(jié)點,它們之間靠相互通訊來復制數(shù)據(jù)、并動態(tài)地重分布數(shù)據(jù)。Ceph在容器云中主要應(yīng)用場景是有狀態(tài)服務(wù)。包括關(guān)系型數(shù)據(jù)庫和nosql數(shù)據(jù)庫等數(shù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論