Apache Mesos做什么Kubernetes不能做,反之亦然?

问题描述 投票:17回答:1

Apache Mesos做什么Kubernetes不能做,反之亦然?

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

kubernetes mesos mesosphere
1个回答
52
投票

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

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

Architecture

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

Mesos Architecture

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

Kubernetes architecture

Origin

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

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

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

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

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

Community

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

Scale

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

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

Hype

由于规模问题,Kuberntetes开始在较小的公司(不是云规模)中受欢迎,而Mesos是针对企业用户的。 Kubernetes由Cloud Native Foundation支持,而Mesos是Apache Foundation Project。这两个基金会有不同的创立和赞助。一般来说,更多的钱给你更好的营销,Kubernetes绝对做得对。

Mesos vs Kubernetes

https://g.co/trends/RUuhA

Conclusion

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

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

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

source

© www.soinside.com 2019 - 2024. All rights reserved.