Kubernetes vs Mesos

來源:互聯網
上載者:User

標籤:mesoe   k8s   

當前國內最火的Lark非Kubernetes和Mesos莫屬,那麼這兩種解決方案各自的應用情境和解決的痛點分別是什麼呢,這篇內容就來帶大家簡單的聊一聊他們各自特性,內容來自於網路上各位大咖的總結,就當是一篇隨筆記錄吧。


Kubernetes簡介

Kubernetes是一個開源項目,它把Google的叢集管理工具引入到虛擬機器和裸機情境中。它可以完美運行在現代的作業系統環境(比如CoreOS和Red Hat Atomic),並提供可以被你管控的輕量級的計算節點。Kubernetes使用Golang開發,具有輕量化、模組化、便攜以及可擴充的特點。系統架構如:

650) this.width=650;" src="https://s3.51cto.com/wyfs02/M01/9C/DC/wKiom1l3AwmjiN7fAABMK2LeUmY517.png" title="Kubernetes-Architecture-Diagram.png" alt="wKiom1l3AwmjiN7fAABMK2LeUmY517.png" />

Kubernetes叢集的主要組件是:

  • pods : 容器組。Kubernetes以一個容器組為部署和調度的單位進行操作。一個典型的pod一般包含1到5個容器組成一個小型的叢集提供服務。

  •  Flat Networking Space : Kubernetes預設的網路類型為單一的扁平網路。允許所有的pod進行互相訪問。在同一個pod中的容器共用同一個IP,容器之間的互相訪問使用本地地址加連接埠的方式。

  • Labels:標籤是附加到對象的索引值對,可用於以單個集合搜尋和更新多個對象。

  • Services:服務是可以通過名稱解決的端點,可以使用標籤選取器串連到連接埠。 該服務將自動輪詢pod之間的請求。 Kubernetes將為叢集設定一個DNS伺服器,用於監視新服務,並允許按名稱進行定址。

  • Replication Controllers: 複製控制器是在Kubernetes中執行個體化pod的方法。 它們控制和監視啟動並執行伺服器連接埠的數量,從而提高容錯能力。

因此,只要使用Kubernetes你就能夠簡單並快速的啟動、移植並擴充叢集。在這種情況下,叢集就像是類似虛擬機器一樣靈活的資源,它是一個邏輯運算單元。開啟它,使用它,調整它的大小,然後關閉它,就是這麼快,就是這麼簡單。


Mesos + Marathon簡介

Apache Mesos是一個開源的群集管理器,旨在擴充到數百到數千個主機的大型群集。 Mesos支援多種工作負載,如Hadoop任務,雲本地應用程式等.Mesos的架構旨在提供高可用性和彈性。

650) this.width=650;" src="https://s4.51cto.com/wyfs02/M02/9C/E1/wKioL1l3LWiQ8AWEAAOALxS_CZY603.png" title="Mesos-architecture.png" alt="wKioL1l3LWiQ8AWEAAOALxS_CZY603.png" />

Mesos叢集中的主要組件有:

  • Mesos Agent Nodes: 負責運行最終的需求任務。 所有代理將可用資源的列表提交給master。

  • Mesos Master : Master負責向代理髮送任務。 它保留了可用資源的列表,並將其“提供”給架構,例如Hadoop的。 Master根據分配策略決定提供多少資源。 通常會有備用的Master執行個體在發生故障時接管。

  • Zookeeper: 用於選舉和尋找現任Master的地址。 運行ZooKeeper的多個執行個體來確保可用性並處理故障。

  • Frameworks: Frameworks與Master進行協調,將任務調度到agent節點上。 Frameworks 由兩個部分組件組成:

      a. 用於執行程式進程運行在代理程式上,並負責執行任務

      b. 用於調度的進程向主機註冊,並根據主機的需求選擇要使用的資源


Marathon由Mesosphere建立,旨在啟動,監控和擴充長服務應用程式,包括雲端的應用程式。 客戶通過REST API與Marathon互動。 還可以支援健全狀態檢查和可用於與Server Load Balancer器整合或用於分析指標的事件流。

Mesos和Kubernetes的願景差不多,但是它們在不同的生命週期中各有不同的優勢。Mesos是分布式系統核心,它可以將不同的機器整合在一個邏輯電腦上面。當你擁有很多的實體資源並想構建一個巨大的靜態計算叢集的時候,Mesos就派上用場了。有很多的現代化可擴充性的資料處理應用都可以在Mesos上運行,包括Hadoop、Kafka、Spark等,同時你可以通過容器技術將所有的資料處理應用都運行在一個基礎的資源集區中。在某個方面來看,Mesos是一個比Kubernetes更加重量級的項目,但是得益於那些像Mesosphere一樣的貢獻者,Mesos正在變得更加簡單並且容易管理。

Mesos正在接受Kubernetes的理念,並已經開始支援Kubernetes API。因此如果你需要它們的話,它將是對你的Kubernetes應用去獲得更多能力的一個便捷方式(比如高可用的主幹、更加進階的調度命令、去管控很大數目結點的能力),同時能夠很好的適用於產品級工作環境中(畢竟Kubernetes仍然還是一個初始版本)。


最後,總結一下Kubernetes的開發人員Craig對於兩個叢集架構的說明:

1、如果你是一個叢集世界的新手,那Kubernetes是一個很棒的開始。它可以用最快的、最簡單的、最輕量級的方式來解決你的問題,並協助你進行面向叢集的開發。它提供了一個高水平的可移植方案,因為很多廠商已經開始支援Kubernetes,例如微軟、IBM、Red Hat、CoreOS、MesoSphere、VMWare等。

2、如果你擁有已經存在的工作任務(Hadoop、Spark、Kafka等),那Mesos可以給你提供了一個將不同工作任務相互交錯的架構,然後還可以加入一些新的東西,比如Kubernetes應用。

3、如果你想使用的功能Kuberntes還沒實現,那Mesos是一個不錯的替代品,畢竟它已經成熟。


Mesos和Kubernetes都是為輔助應用程式在群集環境中運行而建立的,Kubernetes更加專註於運行容器群集,具有更多功能。

如果您同意Google的意見或沒有具體的方式來布局叢集,Kubernetes是一個很好的選擇,可以為您處理許多幕後煩惱。

與此同時,Mesos具有更多的靈活性,更強大的調度功能,並且能夠與更多種類的調度器配合使用,並且已經從原始建立中進行了修改,以更好地支援容器。

非Docker和非整合應用程式可以在Mesos上運行,它能夠處理將會慢慢轉移到容器的非常複雜的工作負載。它還經過數萬個節點的測試,證明了強大的可擴充性和基礎設施。但是,您需要更加自信地使用此產品,因為您需要自己管理Server Load Balancer和其他進階擴充功能。

在確定您的需求之後,您將能夠為您找到完美的容器編排工具。


參考連結:

http://dockone.io/article/147 

https://stackoverflow.com/questions/26705201/whats-the-difference-between-apaches-mesos-and-googles-kubernetes 

https://platform9.com/blog/compare-kubernetes-vs-mesos/ 

http://techgenix.com/swarm-kubernetes-mesos/ 


本文出自 “Trying” 部落格,請務必保留此出處http://tryingstuff.blog.51cto.com/4603492/1951155

Kubernetes vs Mesos

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.