Apache Mesos做了哪些Kubernetes可以做什么,反之亦然?

时间:2017-12-12 09:49:51

标签: kubernetes mesos mesosphere

Apache Mesos做什么Kubernetes可以做什么,反之亦然?

Mesos是一个两级调度程序。当然它从每台机器上抓取资源信息并将其提供给顶级调度程序,这样kubernetes等框架可以用来跨机器调度容器,但Kubernetes本身可以跨机器调度容器(从这方面不需要Mesos)。那么,Apache Mesos可以做些什么,Kubernetes不能做什么,反之亦然?

1 个答案:

答案 0 :(得分:52)

Mesos和Kubernetes都是第n级容器协调员。这意味着你可以实现相同的功能,但在其中一个上可以更轻松地完成某些任务(读取更好)。事实上,你可以在Mesos上运行Kubernetes,反之亦然。

让我们通过主要的差异,在您需要做出决定时提供一些线索:

建筑

正如您所指出的,Mesos是一个两级调度程序,这是架构的主要区别。这使您能够创建自定义调度程序(也称为框架)来运行任务。而且,您可以拥有多个调度程序。您的所有调度程序都会使用Dominant Resources Fairness algorithm(可以使用自定义allocator替换)来竞争公平分配的资源。您还可以将roles分配给框架和任务,并为此角色分配weights以确定某些调度程序的优先级。角色与resources紧密相关。通过上述功能,您可以根据要运行的任务类型,使用不同的启发式方法为不同的应用程序(例如Fenzo)创建自己的调度方式。例如,在运行批处理任务时,将它们放在数据附近并且启动时间并不是那么重要。另一方面,运行无状态服务与节点无关,并且尽快运行它们更为关键。

Mesos Architecture

Kubernetes架构是一个单层调度程序,但所有内容都是可插拔的,并采用分层设计构建。

Kubernetes architecture

来源

Mesos是在Twitter上创建的(以前在伯克利,但第一次在Twitter上使用)以支持他们的规模。

  

2010年3月,大约一年进入Mesos项目,Hindman和他的伯克利同事在推特上发表了演讲。起初,他很失望。只有大约八个人出现。但随后Twitter的首席科学家告诉他,有八个人很多 - 约占公司全体员工的百分之十。然后,在谈话之后,其中三个人找到了他。

     

很快,Hindman就在Twitter上咨询,与那些前Google工程师和其他人一起进行扩展项目。然后他作为实习生加入了公司。一年后,他作为一名全职员工签约。   source

Kubernetes是由Google创建的,旨在将用户带入他们的云计算,承诺无锁定体验。这与亚马逊使用Kindle的技术相同。您可以阅读任何书籍,但在亚马逊上使用它可以为您提供最佳体验。谷歌也是如此。您可以在任何云(公共或私有)上运行Kubernetes,但只能在Google Cloud上获得最佳工具,集成和支持。

  

但谷歌与微软不同。微软希望支持Azure上的所有内容,而Google希望Kubernetes无处不在。 (从某种意义上说,微软正在辜负博格的名字,吸收所有的协调者,比谷歌更多。)而且从字面上看,Kubernetes就是谷歌如何在内部云群中发挥作用,使其与AWS区别开来(赢得了不会将其基础设施作为带有许可证的堆栈出售,尽管它表示VMware是其私有云合作伙伴)和微软(仍然没有将Azure Stack私有云推出门外)。 source

社区

  

Judging a project simply by its community size could be misleading. It's like you'd be saying that php is a great language because it has large community.

Mesos社区比Kubernetes小得多。这就是事实。 Kubernetes得到了许多大公司的资金支持,包括谷歌,英特尔,Mirantis,RedHat等等,而Mesos主要由Mesosphere开发,得到了苹果公司的支持。虽然Mesos是一个成熟的项目,但它的发展缓慢但稳定。另一方面,Kubernetes更年轻,但发展迅速。

Mesos Community

Meso contributors origin

The Kubernetes Community - Ian Lewis, Developer Advocate, Google

缩放

Mesos从一开始就面向大客户。它在Twitter,Apple,Verizon,Yelp,Netflix上用于在数千台服务器上运行数十万个容器。

Kubernetes由Google创办,旨在为开发人员提供Google基础架构体验(GIFFE)。从一开始,它就可以用于小规模的数百台机器。每次发布都会增加这种约束,但它们开始变小,变大。没有关于最大的Kubernetes装置的公开数据。

炒作

由于规模问题,Kuberntetes开始在小型公司(不是云规模)中受欢迎,而Mesos则是企业用户的目标。 Kubernetes由Cloud Native Foundation支持,而Mesos是Apache Foundation Project。这两个基金会有不同的创立和赞助。一般来说,更多的钱可以让你获得更好的营销,而Kubernetes肯定是正确的。

Mesos vs Kubernetes

https://g.co/trends/RUuhA

结论

看起来Kubernetes已经赢得了集装箱协调战争。但是如果你有一些自定义工作负载并且规模很大,那么Mesos可能是一个不错的选择。

  

主要区别在于社区规模和开源模式:其中DCOS由Mesosphere支持并仅在商业产品中提供企业功能(因为中间层不是慈善家),K8S拥有更强大的社区来自不同公司的贡献导致提供更多集成的企业功能(多租户,RBAC,配额,抢占,网关......),这意味着它们更易于使用,而不一定在DCOS中不存在。   我会在全球范围内说:

     
      
  • DCOS对有状态和大数据工作负载进行了更多的战斗测试,但缺乏与其他周边组件的集成,包括即插即用中央监控和日志记录以及安全模型,多租户,自动更新等企业功能......这是非常困难的将所有内容整合到生产级平台的方法。
  •   
  • K8S更适合无状态应用程序的测试,并提供许多即插即用工具,如prometheus,EFK,helm ......这使得生产级平台的实现变得更加容易。接下来,有状态工作负载的状态设置和运营商模式与mesos框架相当,但是K8S提供了大量工具来开发它们,成本更低,因为开箱即用的功能很多,需要很多功能。我花了两个月的时间来开发一个MongoDB运营商,以多租户和安全的方式提供MongoDB作为服务,我需要同时学习Golang。
  •   
     

source