企業級容器云架構開發指南》—1.2.2 存儲虛擬化">《企業級容器云架構開發指南》—1.2.2 存儲虛擬化
767
2025-04-02
1.4.3 Kubernetes & Mesos新秀
首先,我們來說說微服務架構之王——Kubernetes。
Kubernetes是目前PaaS領域里影響最大、最活躍的開源項目。用過Kubernetes的人都會有一個很深的體會:我們日常應用的設計、部署、擴容等環節,在Kubernetes里都能得到很好的支持。
Kubernetes中最重要的一個概念是Service,這實際上是微服務架構理念,Service就是一個微服務,背后對應一組從容器方式運行的程序實例,具備彈性擴容和自動故障恢復的能力。在后面的章節中我們會對Kubernetes進行深入的介紹和分析,因此這里就不做過多的介紹。
圖1-11體現了Kubernetes微服務架構平臺的核心思想。
圖1-11 容器化PaaS平臺——Kubernetes
Kubernetes第一次將Service的高度提升到超過Machine的地位,我們不再關注應用部署的細節,只要規劃好系統是由多少種不同的Service所組成的,每種Service需要部署多少個容器(Pod)實例才能滿足性能要求,其他的就交給Kubernetes引擎了,它會根據當前集群資源的使用情況給出最佳的調度方案,并且自動完成容器實例的創建和部署過程,我們無須再花費腦力進行規劃。
Kubernetes的另外一大核心設計思想和優勢是“高度自動化”。在Kubernetes的世界里,資源調度是自動化的,程序部署是自動化的,監控是自動化的,故障恢復是自動化的,服務平滑升級只要一鍵,服務擴容也只要一鍵,當前Kubernetes 1.5甚至已經初步實現了服務擴縮容的自動化。越深入學習和了解Kubernetes,你就越發地驚嘆谷歌驚為天人的巨大創造力。
其次,我們談談號稱“數據中心操作系統”的Mesos,如圖1-12所示。
圖1-12 容器化PaaS平臺——Mesos
從嚴格意義上說,Mesos其實不屬于一個完整的PaaS平臺,而是一個先進的資源分配和任務調度系統。但考慮到資源管理也是PaaS的基本功能之一,并且很多通用應用也都已經能夠在Mesos上安裝并運行,所以我們也將其歸到PaaS平臺進行介紹。
Mesos最初并不是針對容器來進行開發的,而是想對開源的大數據管理平臺Hadoop進行資源的管控和調度,從而設計和研發的一個開源項目。最早出自加州大學伯克利分校。
Mesos的設計理念分兩層:下層是物理機器,組成資源池;上層是稱為Framework的應用框架,每一個應用必須針對Mesos的Framework開發框架做定制化的開發后才能在Mesos上運行。為了支持Docker容器,Mesos后來提供了Marathon這個Framework。但Marathon并不是一個完整的微服務架構平臺,缺乏負載均衡器、DNS等必需的組件。
Mesos的穩定性和健壯性在業界是比較認可的。例如,Twitter、MBNB的數據中心都有由幾千臺機器組成的一個大的Mesos平臺,現在也有很多的公司以“Mesos+Marathon”為技術平臺來搭建他們的容器化運行環境。Mesos提出一個流行概念——DCOS,即把Mesos當成數據中心的一個操作系統,負責統一調度數據中心的每臺物理機,其上則運行各種大數據系統,這樣可以確保數據中心的物理資源得到更充分的利用。
Mesos和Kubernetes這兩個平臺是可以完全融合在一起的,因為Kubernetes的重點是實現容器化應用的支撐和運行,而Mesos負責底層資源的分配和管控,相較于Mesos而言,Kubernetes沒有更細致的底層資源管控層,所以Kubernetes和Mesos之間的調度沒有沖突,完全可以融合在一起實現整個資源調度的平臺。
具體的做法是Kubernetes可以作為一個Framework運行在Mesos之上,替換原來的Marathon實現容器化應用的支撐,而底層的資源則完全交給Mesos來負責管控和統一調度。實際上,Mesos中運行Kubernetes的方案就是采用了這個思路。
那么,Kubernetes是否可以替代Mesos呢?
這個問題目前還沒有清晰的答案,但我們看到,Kubernetes除了繼續完善微服務架構的高級功能之外,也開始進入任務調度的新領地。從本質上來說,任務調度系統的設計和開發難度要遠遠小于微服務架構系統,如果Kubernetes想往這方面深入發展,憑借谷歌的領導力和實力,有朝一日超越Mesos也不是不可能的事情。
最后,我們來簡單談談PaaS與Iaas融合的問題。
OpenStack原來是Iaas平臺系統,但是隨著容器技術的發展,OpenStack也開始支持Docker。最近由谷歌牽頭發起的Magnum子項目的目標是在OpenStack上直接支持容器,當然其主要目的是支持自家的Kubernetes平臺,這樣一來,既提升了 OpenStack的應用場景,又借著OpenStack這艘大船,進一步擴展了Kubernetes的地盤,是一箭雙雕的好事。
未來基于開源體系搭建的私有云(行業云)的技術棧目前看來非常清晰了,底層的IaaS平臺可以用OpenStack來實現主機、存儲、網絡的虛擬化和集中管控,上層則搭建基于容器化的新一代PaaS平臺(Kubernetes、Mesos等)來支撐上層應用,再輔以一些自動化運維工具和定制開發的Web管理系統,即可形成一套低成本同時又具備技術領先性的私有云。
在后面的章節中,我們將具體聊一聊微服務架構、DevOps、Docker、Kubernetes、Mesos,以及企業級容器云在電信行業的應用實踐。
OpenStack 云計算
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。