sponsored links

OpenStack和Kubernetes在雲計算領域定位及作用

OpenStack和Kubernetes在雲計算領域定位及作用

當下雲計算的領域裡熱度最高的兩個專案,無疑是OpenStack和Kubernetes。如果雲計算是一個風起雲湧的江湖,毫不誇張的說OpenStack和Kubernetes就是江湖裡的泰山北斗。OpenStack就像是少林,基礎紮實、沉穩厚重,而Kubernetes就是武當,輕巧空靈、飄逸精妙。使用過這兩種系統的人都應該有這樣的感受,OpenStack出身於虛擬化技術,穩定但速度慢,Kubernetes則來自於容器技術,快速但有侷限。兩種不同的技術就決定了有著不同的人生軌跡。那麼究竟兩者有著怎樣的際遇呢?我們分析分析。

出身對比:

OpenStack:

2010年7月,RackSpace公司和美國國家航空航天局NASA合作,分別貢獻出了RackSpack雲檔案平臺程式碼和NASA平臺程式碼,釋出OpenStack的第一個版本Austin。2010的Rackspace是美國第二大雲計算廠商,但規模只能佔到亞馬遜的5%。只依靠內部的力量來超越或者追趕亞馬遜不大可能,這家公司就把自己的專案開源了,也就是後來的 OpenStack 的儲存原始碼(swift)。與此同時NASA也對自己使用的 Eucalyptus 雲計算管理平臺很不爽。NASA想給Eucalyptus開源版本貢獻,結果Eucalyptus不接受。當時NASA 的六個開發人員,用了一個星期時間拿Python做出來一套原型,結果虛擬機器在這上面執行的很成功,這就是Nova(計算原始碼)的起源。Austin只有swift和Nova這兩個專案,即目前的物件儲存和計算服務。此後OpenStack大概保持著每半年釋出一次版本的頻率,截止到目前最新的版本是Rocky。在最新的版本中專案已經達到60多個。

Kubernetes:

Kubernetes是Google在2014年釋出的一個開源專案。Google開發了一個叫Brog的系統來排程內部數量龐大的容器和工作負載。在積累了多年經驗之後,Google決定重寫這個容器管理,並將其貢獻到開源社群,讓全世界都能夠受益。在2014年第一個版本釋出以來,Kubernetes迅速受到開源社群的的追捧,目前Kubernetes已經成為發展最快,市場佔有率最高的容器編排引擎。截止到現在,Kubernetes的最新版本是1.11版本。

Kubernetes版本釋出表:

OpenStack和Kubernetes在雲計算領域定位及作用

技術實現

OpenStack:虛擬化

OpenStack作為一個開源的雲計算平臺,利用虛擬化技術和底層儲存服務,提供了可擴充套件,靈活,適應性強的雲計算服務。虛擬化是雲計算的基礎。簡單的說,虛擬化使得在一臺物理的伺服器上可以跑多臺虛擬機器,虛擬機器共享物理機的CPU、記憶體、IO硬體資源,但邏輯上虛擬機器之間是相互隔離的。宿主機一般使用hypervisor程式實現硬體資源虛擬化,並提供給客戶機使用。如下圖所示是一種虛擬化的架構。

OpenStack和Kubernetes在雲計算領域定位及作用

每一個虛擬機器都擁有自己的核心和檔案系統,完全是一個獨立的作業系統。而上圖是兩種虛擬化方式中的其中一種:半虛擬化——KVM。在目前的環境中,KVM虛擬化技術是使用率最高的技術。
虛擬化優點:隔離性強,所有的虛擬機器都有自己的協議棧,各個虛擬機器底層相互隔離。
虛擬化缺點:資源佔用多,虛擬化技術本身佔用資源,宿主機效能有10%左右的消耗。

Kubernetes:docker

Kubernetes是容器管理編排引擎,那麼底層實現自然是容器技術。容器是一種輕量級、可移植、自包含的軟體打包技術,打包的應用程式可以在幾乎任何地方以相同的方式執行。以容器典型代表docker為例,docker起源於2013年3月,是基於LXC為基礎構建的容器引擎,透過namespace和cgourp實現了資源隔離和調配,使用分層儲存來構建映象。它基於Google公司推出的Go語言實現。docker相比KVM虛擬化技術最明顯的特點就是啟動快,資源佔用小。虛擬化啟動虛擬機器是分鐘級別的,而docker是秒級別的。如下是docker的架構圖。

docker的啟動速度快,佔用資源少,原因在於技術架構:
一個作業系統分為核心+檔案系統。容器技術就是使用宿主機的核心系統加上自身的檔案系統。執行容器時是在使用宿主機的核心情況下載入檔案系統,精簡的檔案系統可以小到100MB以內,所以比虛擬機器自然要快很多。可以將容器看作是在核心上執行的獨立程式碼單元,它們非常輕。因此佔用的資源也少。
容器優點:啟動快,資源佔用小,移植性好
容器缺點:隔離性不好,共用宿主機的核心,底層能夠訪問。依賴宿主機核心所以容器的系統選擇有限制。

架構對比

OpenStack:

OpenStack的服務分為核心功能和非核心功能。核心功能是指執行OpenStack系統必須的功能,其中核心功能有:

OpenStack和Kubernetes在雲計算領域定位及作用

其工作模式如下:

在“為什麼選擇OpenStack”的使用者調查中得出一個比例很高的結果是:開放平臺和標準化的API。OpenStack貫徹松耦解耦的思想,各個服務之間使用標準的API介面呼叫,並且這些介面是能夠開發給非OpenStack程式去呼叫。

具體到OpenStack就是Resutful(表述性狀態轉移)和RPC(遠端過程呼叫)。服務與服務之間使用Restful API通訊,最大程度地減少了服務之間的依賴。例如建立虛擬機器時,nova服務要呼叫glance服務,要呼叫neutron服務,這些都是透過Restful api 來完成的。服務內部的模組之間的呼叫使用了RPC,增加了橫向擴充套件能力。例如nova-api接收到建立虛擬機器的請求,要先後呼叫nova-scheduler 選定建立虛擬機器的主機,nova-compte完成虛擬機器建立的具體工作。此外,opnestack用到的通用技術還有:

1. 訊息匯流排 AMQP
2. ORM模型資料庫 SQLalchemy
3. WSGI Web伺服器網管介面
4. Eventlet 協程

OpenStack採用開源技術,避免重複製造輪子,這對團隊的技術選擇有著借鑑意義。

Kubernetes:

Kubernetes的思想是儘量保證使用者的理想狀態。通俗來說就是使用者建立了3個容器,Kubernetes要保證這三個容器的生命,時時刻刻都是健康的三個容器,受到斷電等故障的情況能夠及時補上。Kubernetes是由Master和Node組成,Master是大腦,Node是計算節點。
如下圖的構成:

在Master節點上執行的服務有:

1. API Server:提供Restful api。各種客戶端工具或者其他元件可以呼叫其完成資源呼叫。
2. Scheduler:排程服務,決定將容器建立在哪個Node上。
3. Controller Manager:管理系統中各種資源,保證資源處於預期的狀態。
4. Etcd:儲存系統的配置資訊和各種資源的狀態資訊。
5. Pod網路:可以是macvlan、flannel、weave、calico等其中的一種。

Node節點的服務:

1. kubelet :接收Master節點發來的建立請求資訊,並向Master報告執行狀態。
2. kube-proxy :訪問控制。

同樣以建立一個服務的方式來解析整個系統的運作流程。Kubernetes 客戶端傳送建立請求到系統,API server接收到請求,並通知controller建立一個deployment資源,controller負責具體的建立過程,呼叫Scheduler選擇哪個主機建立,然後將請求發往Node節點,Node節點上的kubelet接收到請求,建立具體的docker。

Kubernetes同樣遵循標準化API介面。

Kubernetes API是集群系統中的重要組成部分,Kubernetes中各種資源(物件)的資料透過該API介面被提交到後端的持久化儲存(etcd)中,Kubernetes叢集中的各部件之間透過該API介面實現解耦合,同時叢集中一個重要且便捷的管理工具kubectl也是透過訪問該API介面實現其強大的管理功能的。系統中大多數情況下,API定義和實現都符合標準的HTTP REST格式,比如透過標準的HTTP動詞(POST、PUT、GET、DELETE)來完成對相關資源物件的查詢、建立、修改、刪除等操作。但同時Kubernetes 也為某些非標準的REST行為實現了附加的API介面,例如Watch某個資源的變化、進入容器執行某個操作等。

使用場景

OpenStack:

場景一:安全和隔離。OpenStack適用於搭建私有云以及基於私有云的使用的場景。OpenStack底層使用了虛擬化技術,其基因中就有著隔離性好,穩定,部署靈活等特點。在OpenStack的成功案例中,雲桌面是典型的例子。有不少的企業都已經將自己的生產環境搬到雲端,例如企業上雲,工作環境就是使用雲桌面的形式。第一是降低了裝置成本,上雲之前是每人一臺主機,到現在幾十個人使用一臺伺服器,如果考慮cpu,記憶體使用率,成本肯定降下來了。第二是安全,所有的資料都不是儲存在身邊,在一些安全係數高的行業中尤為重要。OpenStack一直受到金融行業的青睞,這裡少不了看中OpenStack安全的特性。

OpenStack和Kubernetes在雲計算領域定位及作用

場景二:提供基礎設施。OpenStack是定位於laas平臺的專案,其優點是能夠提供虛擬機器這種很底層的設施。如果在業務場景中很依賴虛擬機器,例如編譯核心,或者驅動開發等這些場景,那麼OpenStack是很好的選擇。

場景三:儲存需求。儲存是OpenStack另一個優勢所在。OpenStack第一個版本的專案組成就是儲存和計算,在後期不斷的開發中,儲存作為一個重要的功能一直不斷的完善和創新。如cinder塊儲存,ceph共享儲存能。在儲存需求很大的場景下,OpenStack能夠提供高效,安全的儲存方案,這也是為什麼電信行業看好OpenStack的一個原因。

場景四:動態資料場景。即不需要反覆地建立和銷燬這些服務的執行環境。虛擬機器優勢在於穩定,那麼OpenStack優勢也在於執行穩定的專案。

Kubernetes:

場景一:Kubernetes適用於業務變化快,業務量未知的靜態使用場景。所謂靜態使用場景是指在其建立的容器中不會實時產生資料的場景。例如:網站架構,一次部署,長時間使用。特別是遇到一些線上業務量不確定的場景,Kubernetes能夠動態擴充套件,靈活伸縮,從5W的併發量到10W的併發量,完全可以秒級處理。

場景二:需要反覆地建立和銷燬這些服務的執行環境。docker的優勢就在於啟動快速,消耗資源小。所以在需要頻繁建立和銷燬的場景中,Kubernetes是一個不錯的選擇。

場景三:需要業務模組化和可伸縮性:容器可以很容易地將應用程式的功能分解為單個元件,符合微服務架構的設計模式。

場景四:應用雲化。將已有應用、要新開發的應用打造成雲原生應用,發揮雲平臺的可擴充套件、彈性、高可用等特性,並藉助PaaS層提供的API實現更高階的特性,比如自動恢復、定製化的彈性伸縮等。

場景五:微服務架構和API管理。服務拆分來抽象不同系統的許可權控制和任務,以方便業務開發人員透過服務組合快速的建立企業應用。有的企業在沒有對應的管理平臺之前就已經將應用拆分成很多服務,如何部署這些微服務和進行API許可權控制,則成了需要解決的問題,而Kubernetes代表的PaaS則是理想的選擇。

社群對比

對於開源專案來說,社群火熱程度代表著生命力和潛力。如何判斷一個專案的未來發展,關注社群肯定是最基本的要求。

OpenStack:

OpenStack是開源專案的代表作之一。

OpenStack從第一個版本開始到現在的R版本的開發過程,為探索開源生態交出一份高分數的答卷,其生態環境做的已經很完善,運作模式可以當做其他開源專案的典範。最明顯的標誌是每個發行版本的程式碼貢獻量。程式碼的貢獻量是衡量某個企業實力的重要標準,代表開源社群的話語權,更代表著為自身爭取權益的能力。所以擁抱OpenStack的企業花費人力物力為社群程式碼做出貢獻。

OpenStack和Kubernetes在雲計算領域定位及作用

另一方面OpenStack的出現大大加速了IT架構演進程序。社群對於OpenStack開發流程的把控是十分有效的,無論是程式碼質量保證,還是測試如單元測試和整合測試都是值得借鑑的。

Kubernetes:

Kubernetes社群起步晚於OpenStack,目前尚沒有OpenStack的火熱,但是Kubernetes在中國開發中的普及度還是很高的。Kubernetes中文社群為國內的愛好者提供了教程,中文文件,安裝教程等,大大減少了國內使用者的開發使用難度。

融合

OpenStack和Kubernetes在雲計算領域定位及作用

雖然說OpenStack和Kubernetes是雲計算領域裡兩個領導者,那麼兩者一定是水火不容嗎?其實恰恰相反,兩者一直積極地相互融合當中。OpenStack中可以整合Docker,目前有三種方案:

1. Docker Driver for Nova
2. Docker Plugin for Heat
3. Magnum

OpenStack來部署Kubernetes是另一種融合的方式,很多公司已經實現將 Kubernetes部署到OpenStack中。反過來使用docker來部署OpenStack的服務也是一個很成功的部署方式。在需要頻繁部署OpenStack環境的場景下,docker可以做到分鐘級別的部署實施,大大減少了部署的困難度和耗時。

從長遠來看,兩者之間的融合趨勢不可避免。

總結

OpenStack是定位於laaS平臺的專案,Kubernetes是定位於PaaS平臺的專案,兩者在自己的領域中已經做的很好了。如果說OpenStack不如Kubernetes靈活,那麼同樣Kubernetes不如OpenStack沉穩。就像說武當功夫基礎肯定強不過少林,而少林拳腳沒有武當功夫將講究悟性。事實上根據業務需求,懂得靈活使用這兩種不同風格的系統才是制勝之道。

透過對兩種系統的出身,技術架構,使用場景和社群對比,希望能在選擇上給讀者一些有益的借鑑。

分類: 科技
時間: 2021-10-10

相關文章

科技巨頭的下一場大戰:亞馬遜進入醫療領域

科技巨頭的下一場大戰:亞馬遜進入醫療領域
這家電子商務公司正在為消費者和醫院開發服務,但面臨來自谷歌.微軟和沃爾瑪的競爭. 數以百萬計的人每天與亞馬遜的語音助手交談,其中大部分是平凡的命令,例如"播放音樂"或"為 ...

世紀華通與二股東騰訊再籤雲計算合作協議,一家遊戲公司為何頻頻加碼IDC業務?
21世紀經濟報道記者孫煜報道 世紀華通(002602.SZ)與其重要股東騰訊的合作再進一步. 10月10日晚間,世紀華通釋出公告稱,控股子公司上海世紀瓏騰資料科技有限公司(以下簡稱"世紀瓏騰 ...

Docker終失C位,開源少年緣何黑化

Docker終失C位,開源少年緣何黑化
作者 | 馬超 出品 | CSDN(ID:CSDNnews) 開源真是火了,近些年成功的IT專案像TensorFlow.RocketMQ.TDEngine都是開源專案,而且這種火爆還出了圈,連帶著RI ...

深信服-梳理

深信服-梳理
1. 主營業務及商業模式分析1) 主營業務及結構:a) 公司專注於企業級IT領域, 主營業務為向企業級使用者(政府及事業.金融.企業等)提供資訊保安.雲計算.企業級無線等相關的產品和解決方案.致力於讓 ...

自動駕駛的爭議與未來,北斗專家如何看?

自動駕駛的爭議與未來,北斗專家如何看?
中新網客戶端長沙9月17日電 (記者 張旭)9月16日,首屆北斗規模應用國際峰會在湖南長沙舉行,學界業界共商北斗的現在和未來,應用和願景. 今年8月,31歲企業家林文欽駕駛蔚來ES8汽車並啟用NOP領 ...

12-30萬預算!這些車型即將換代 換代以後更值得買?

12-30萬預算!這些車型即將換代 換代以後更值得買?
在過去的汽車行業,合資品牌憑藉著長久的歷史發展以及技術的沉澱,得以在市場競爭長期佔據著壟斷的競爭勢態.但俗話說的好"落後就要捱打",用這句話來表達過去的國產品牌多少有些諷刺的意味. ...

100億美元!美高梅將在大阪開發世界級綜合度假目的地;復星時尚集團更名為復朗集團 | 美通社頭條

100億美元!美高梅將在大阪開發世界級綜合度假目的地;復星時尚集團更名為復朗集團 | 美通社頭條
要聞摘要:美高梅將在大阪開發世界級綜合度假目的地.復星時尚集團更名為復朗集團.廣交會首次釋出吉祥物"好寶""好妮".400億!國內頁岩氣累計產氣新紀錄.阿科瑪將 ...

SaaS之王,Salesforce(CRM)500億美元收入目標靠什麼來實現?

SaaS之王,Salesforce(CRM)500億美元收入目標靠什麼來實現?
導讀: 作為雲計算SaaS行業的鼻祖,#賽富時#是雲#CRM#行業的領導者,也是美股SaaS行業領軍企業家的培養搖籃.擁有全球首屈一指的 CRM 平臺,可為所有使用者提供人工智慧服務,作為全球首個採用 ...

大V:OV米等廠商驗證聯發科下一代天璣旗艦SoC效能功耗都很出色

大V:OV米等廠商驗證聯發科下一代天璣旗艦SoC效能功耗都很出色
以雲計算為承載,融合大資料.人工智慧.區塊鏈.數字孿生等新一代數字技術於一體的平臺底座,是當前企業數字基礎設施數字化轉型發展的重要方向. 2021年3月,國有資產管理監督委員會發布的<關於釋出2 ...

肖飛:打破外國壟斷造就中國電芯,為國家節省10個億,被授一等功

肖飛:打破外國壟斷造就中國電芯,為國家節省10個億,被授一等功
自工業革命起,西方科技就一度遙遙領先於世界.儘管近年來我國綜合國力大幅提升,但在軍隊戰艦的推進方面,始終無法與美俄等國相較. 直到2018年,一位名叫肖飛的研究員橫空出世,用"直流全電力推進 ...

消失的航母!中國購買的另外兩艘航母去哪了,為何沒有服役海軍?

消失的航母!中國購買的另外兩艘航母去哪了,為何沒有服役海軍?
為提高海軍實力,我國曾花大價錢,從外國購買了數艘前蘇聯的航母.其中有的被改裝成了遼寧號航空母艦,有些卻彷彿在歷史的長河中裡"神秘失蹤"了.那麼這些並沒有裝備到我國海軍中的航母,究竟 ...

尋找另一個地球

尋找另一個地球
|作者:賙濟林† 劉慧根 謝基偉 (南京大學天文與空間科學學院) 本文選自<物理>2021年第3期 摘要 系外行星尤其是宜居行星的搜尋與刻畫,是天文學研究的熱點前沿問題.尋找另一個地球,是 ...

新疆獨有的犬種-哈薩克牧羊犬

新疆獨有的犬種-哈薩克牧羊犬
此犬運動能力和耐力好,聰明易訓,可以與家庭的兒童.老人以及其他寵物和睦相處.有護衛主人和家庭財產的本能,對外來威脅高度警惕.兇猛善鬥,抗病能力極強.是極佳的家庭護衛犬品種. 犬,是人類最忠誠的夥伴.我 ...

科研人員發展出融合水環境模擬與影象分析的水體濁度新型監測方法

科研人員發展出融合水環境模擬與影象分析的水體濁度新型監測方法
水體濁度/透明度是影響河湖水生態系統健康的重要因素,其高效快捷監測是水環境管理的迫切需求.中國科學院南京地理與湖泊研究所副研究員黃佳聰.研究員高俊峰等,發展出一種針對河湖水體濁度的新型監測方法,該方法 ...

迄今最大最詳細宇宙模擬軟體釋出 包含2.1萬億個粒子 跨越96.3億光年
據美國<每日科學>網站近日報道,來自日本.西班牙.美國.阿根廷.澳大利亞.智利.法國和義大利的科學家組成的國際研究團隊使用世界上最強大的天文超級計算機ATERUI II,歷時一年,開發了迄 ...

60年前,這群人決定餓著肚子造導彈……

60年前,這群人決定餓著肚子造導彈……
綿綿太行山,巍巍鎮崗塔,在北京的西南郊有這樣一處神秘的地方.1957 年12 月9 日,遵照中央軍委的命令,我軍第一個綜合性的導彈專業培訓機構--中國人民解放軍炮兵教導大隊,在北京長辛店外的雲崗正式成 ...

我國5G已實現商用,技術、規模已領先,卻因3個問題難以全面普及

我國5G已實現商用,技術、規模已領先,卻因3個問題難以全面普及
最近這兩年最常聽到的話題應該就是5G了,在人工智慧時代下5G產業也迎來了飛速發展.根據官方釋出的<2021一季度通訊業經濟執行情況>來看,截止到今年3月底,國內5G基站總數達到81.9萬個 ...

德國領跑產業數字化
數字化和數字經濟的發展長期以來一直是德國經濟"痛點"之一.多年來各界不斷呼籲德國各級政府加快數字化轉型程序並加大對數字化基礎設施建設的投入,但德國數字化程序仍有待加速. 根據歐盟委 ...

人工智慧賦能新藥研發,這次跨行對醫藥行業帶來什麼?

人工智慧賦能新藥研發,這次跨行對醫藥行業帶來什麼?
隨著人們健康生活水平的提高,新藥研發的需求日益迫切.目前,由於新藥物靶點和作用機制越來越少以及研發成本提升,醫藥公司研發新藥難以克服"高成本.高風險.長週期"仍是國內外藥物研發的沉 ...