Apache Mesos與Google Kubernetes的不同之處在哪里?

jopen 9年前發布 | 14K 次閱讀 Apache Mesos
 

假如你剛入門集群計算,那么Kubernetes將會是很好的出發點;它快捷、易用、輕量的方式來處理集群導向開發的集成和體驗。它提供了非常高瞻遠矚式的可移植性,讓它得以支持多家提供商(微軟、IBM、紅帽、CoreOS、Mesosphere、Kismatic、VMware等等)。

Kubernetes是一個開源項目,由Google Cloud Platform組開發,給全球的虛擬機帶來了容器集群管理的能力,當然還包括裸機硬件。它能和當代的操作系統很好的一起工作,例如:Ubuntu、 RedHat、Project Atomic/CentOS或者CoreOS。這些系統提供了輕量的計算節點來受你托管。Kubernetes是用Golang語言寫的,它輕量、模塊化、可移植還有擴展性。Google的Kubernetes開發組正在和數個不同背景的技術公司一起制定基于Kubernetes作為標準的計算集群的標準方案。這個想法就是借鑒Google在構建分布式應用上積累的經驗來幫助需要構建分布式應用的開發者。這些核心的理念包括以下一些基本概念:

  • Pods --- 是連接在一起的容器組合并共享文件卷。它們是最小的部署單元,由Kubernetes統一創建、調度、管理。Pods是可以直接創建的,但推薦的做法是你使用replication controller,即使是創建一個Pod。
  • Replication controllers --- 管理Pods的生命周期。它們確保指定數量的Pods會一直運行,通過創建和殺掉Pods可以保證到這個效果。
  • Labels --- 它被用來管理和選取基于鍵值對為基礎的對象組。
  • Services --- 提供獨立、可靠名稱和地址的Pods集合。它就像一個基礎版本的負載均衡器。

所以,伴隨著Kubernetes,你將獲得一些簡單、易用的獲得即起即用性、可一致性和擴展性。當加入“分布式”這個術語到你管理的事情上,這個事情將是一個真正輕量的方式。在一個集群里運行應用程序,不再擔心單獨的主機。在這個例子中,一個集群是一個靈活的資源就像一個虛擬機。它是一個邏輯計算單元,你可以啟動它,使用它,調整集群大小,關閉它,既快速也容易。

對于Mesos,這里有很多基本觀點的重疊定義,但是產品確實有一些不用的點在他們的生命周期之中,并且有一個亮點。Mesos是一個分布式系統內核,編織不同類型的主機放在一起當一臺邏輯計算電腦。它的出現是基于你擁有大量的物理機資源讓你能夠使用,來創建大型的靜態計算集群。很重要的事情是它能讓很多現代可擴展的計算處理應用能運行的很好在Mesos集群之上(Hadoop、Kafka和Spark)。它非常棒的地方在于可以在同樣的基礎資源環境里同時可以運行這些計算處理應用,包括同時運行微服務時代的容器類型的應用。有些地方它確實比Kubernetes重,但是它越來越易用,這要歸功于Mesosphere公司的團隊貢獻。

現在讓這個事情更有趣的是Mesos已經開始采用并加入更多Kubernetes的概念來支持Kubernetes API。假如你需要Mesos的特性,這樣會是一個網橋連接Mesos,以讓你的Kubernetes程序能到更多兼容性的特性(比如:高可靠 Master,更多調度的概念,以及管理大量節點的能力)。并且它已經很好的適配到生產環境中(Kubernetes仍然是一個預覽版測試階段,V1的調度將在1到2個月被發布出來)。

假如你已經有了特殊的環境(Spark、Hadoop、Kafka等等),Mesos將給你一個框架,讓你插入這些系統到你的集群里,并且可以混合運行一些Kubernetes程序。Mesos給你提供了一個安全閥,在你需要這些計算能力但社區還沒有提供實現的情況下可以實現支持。

假如你來自虛擬機的世界,或者傳統的服務器架構,Kubernetes將是很好的選則。Mesos需要一個自定義的"Framework"來支持例如運行 MariaDB,但是Kubernetes的容器化應用卻可以直接運行,并不需要任何修改。這是一個進入可擴展容器集群的最佳辦法。

原文鏈接: WHAT’S THE DIFFERENCE BETWEEN APACHE MESOS AND GOOGLE’S KUBERNETES? (翻譯:肖德時)

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!