Apache的Mesos和Google的Kubernetes 有什么區別?
本文來自StackOverFlow上的一個問題,主要討論Mesos和Kubernetes的區別,相信我們很多人也有同意的疑問。
Kubernetes的開發者Craig回答了這個問題,同時masi也做了概述,不一定對,供讀者參考。Kubernetes主要針對容器集群,而
Mesos適用于任何的框架和應用,所以Kubernetes可以運行于Mesos上。
Kubernetes是一個開源項目,它把谷歌的集群管理工具引入到虛擬機和裸機場景中。它可以完美運行在現代的操作系統環境(比如CoreOS
和Red Hat
Atomic),并提供可以被你管控的輕量級的計算節點。Kubernetes使用Golang開發,具有輕量化、模塊化、便攜以及可擴展的特點。我們
(Kubernetes開發團隊)正在和一些不同的技術公司(包括維護著Mesos項目的MesoSphere)合作來把Kubernetes升級為一種
與計算集群交互的標準方式。Kubernetes重新實現了Google在構建集群應用時積累的經驗。這些概念包括如下內容:
- Pods:一種將容器組織在一起的方法;
- Replication Controllers:一種控制容器生命周期的方法(譯者注:Replication Controller確保任何時候Kubernetes集群中有指定數量的pod副本(replicas)在運行);
- Labels:一種可以找到和查詢容器的方法;
- Services:一個用于實現某一特定功能的容器組;
因此,只要使用Kubernetes你就能夠簡單并快速的啟動、移植并擴展集群。在這種情況下,集群就像是類似虛擬機一樣靈活的資源,它是一個邏輯運算單元。打開它,使用它,調整它的大小,然后關閉它,就是這么快,就是這么簡單。
Mesos和Kubernetes的愿景差不多,但是它們在不同的生命周期中各有不同的優勢。Mesos是分布式系統內核,它可以將不同的機器整 合在一個邏輯計算機上面。當你擁有很多的物理資源并想構建一個巨大的靜態的計算集群的時候,Mesos就派上用場了。有很多的現代化可擴展性的數據處理應 用都可以在Mesos上運行,包括Hadoop、Kafka、Spark等,同時你可以通過容器技術將所有的數據處理應用都運行在一個基礎的資源池中。在 某個方面來看,Mesos是一個比Kubernetes更加重量級的項目,但是得益于那些像Mesosphere一樣的貢獻者,Mesos正在變得更加簡 單并且容易管理。
有趣的是Mesos正在接受Kubernetes的理念,并已經開始支持Kubernetes API。因此如果你需要它們的話,它將是對你的Kubernetes應用去獲得更多能力的一個便捷方式(比如高可用的主干、更加高級的調度命令、去管控很 大數目結點的能力),同時能夠很好的適用于產品級工作環境中(畢竟Kubernetes仍然還是一個初始版本)。
當被問到區別的時候,我會這樣回答:
- 如果你是一個集群世界的新手,那Kubernetes是一個很棒的開始。它可以用最快的、最簡單的、最輕量級的方式來解決你的問題,并幫 助你進行面向集群的開發。它提供了一個高水平的可移植方案,因為很多廠商已經開始支持Kubernetes,例如微軟、IBM、Red Hat、CoreOS、MesoSphere、VMWare等。
- 如果你擁有已經存在的工作任務(Hadoop、Spark、Kafka等),那Mesos可以給你提供了一個將不同工作任務相互交錯的框架,然后還可以加入一些新的東西,比如Kubernetes應用。
- 如果你想使用的功能Kuberntes還沒實現,那Mesos是一個不錯的替代品,畢竟它已經成熟。
原文鏈接:Whats the difference between Apaches Mesos and Googles Kubernetes (翻譯:劉凱寧 校對:李穎杰)
來自:http://dockerone.com/article/147
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!