什么是Apache的Mesos和谷歌的Kubernetes之间的区别什么是Apache的Mesos和

2019-05-12 12:06发布

究竟什么是Apache的Mesos和谷歌的Kubernetes之间的区别? 据我所知都是服务器集群管理软件。 谁能阐述,其中主要的区别在于 - 当这会框架内优先?

你为什么要使用Kubernetes对中层的顶部 ?

Answer 1:

Kubernetes是一个开源项目,它带来的“谷歌式”集群管理功能,虚拟机的世界,还是“上的金属”的情景。 它工作得很好,提供了正在替您管理的轻量级计算“节点”现代操作系统环境(如CoreOS或Red Hat原子)。 这是写在Golang且重量轻,模块化,可移植,可扩展的。 我们(Kubernetes队)与许多不同的技术公司(包括中圈谁策划了Mesos开源项目)的合作,以建立Kubernetes为与计算集群进行交互的标准方式。 这样做是为了重现,我们看到人们需要基于我们在谷歌的经验来构建集群应用的模式。 其中一些概念包括:

  • 豆荚 -一种方式来组容器一起
  • 复制控制器 -一种方法来处理集装箱的生命周期
  • 标签 -办法找到和查询的容器,和
  • 服务 -一组执行共同的功能的容器。

因此,与单独Kubernetes你将有一些简单,容易启动和运行,增加了“集群”作为一个名词,你可能中重量最轻的方式管理的东西,便携和可扩展性。 运行在集群上的应用程序,而不必再担心个人机。 在这种情况下,集群是一种灵活的资源就像一个虚拟机。 它是一个逻辑运算单元。 打开它,使用它,调整它的大小,快速,轻松地把它记下来。

随着Mesos,有重叠的基本视觉方面相当数量,但产品在其生命周期完全不同的点,有不同的甜蜜点。 Mesos是一个分布式系统内核缝合在一起有很多不同的机器到一个逻辑计算机。 它诞生在您拥有大量的物理资源来创建一个大的静态计算集群的世界。 关于它的伟大的事情是,很多现代的可扩展的数据处理应用的上Mesos(Hadoop的,卡夫卡,星火)运行良好,这是很好的,因为你可以在相同的基本资源池运行它们,你的新时代集装箱打包应用程序一起。 这是较为沉重的重量比Kubernetes项目,但越来越容易管理感谢状中间层乡亲的工作。

现在什么变得非常有趣的是,Mesos目前正在调整,会增加很多的Kubernetes概念,并支持Kubernetes API。 因此,这将是一个网关,让您Kubernetes应用程序(高可用性大师,更先进的调度语义,扩展到一个非常大的数量的节点的能力),如果你需要他们更多的能力,非常适合于运行生产工作负载(Kubernetes仍然是在α-状态)。

当记者问,我往往会说:

  1. Kubernetes是一个伟大的地方开始,如果你是新来的聚类世界; 它是浅尝辄止,并开始与集群化发展试验最快,最简单,最轻的方式。 它提供了便携性非常高的水平,因为它是由很多不同的供应商(微软,IBM,红帽,CoreOs,中间层,VMWare的,等等)的支持。

  2. 如果您有现有的工作负载(Hadoop的,星火,卡夫卡等),Mesos为您提供了一个框架,它可以让你的交错负载对方,并在一些新的东西,包括Kubernetes应用混合。

  3. Mesos给你,如果你需要的是不被社会在Kubernetes框架尚未实现能力的排气阀。



Answer 2:

这两个项目的目标是使其更易于部署和管理您的数据中心或云容器中的应用程序。

为了在Mesos之上部署应用程序,可以使用马拉松或Kubernetes对于Mesos。

马拉松是对的cgroup和Docker容器运行Linux服务集群范围内的init和控制系统。 马拉松有一些不同的金丝雀部署功能,是一个非常成熟的项目。

马拉松运行在Mesos,这是一个高度可扩展,战斗测试,灵活的资源管理器的顶部。 马拉松被证明是规模和运行许多在许多生产环境。

该Mesos与中层技术堆栈提供运行现有的Linux工作负载的云般的环境,但同时也提供了构建新的分布式系统原生环境。

Mesos是一个分布式系统的内核,与编程直接对数据中心的一个完整的API。 它抽象底层硬件(例如裸金属或VM)的远离和只是暴露该资源。 它包含用于编写的分布式应用程序的原语(例如火花原是Mesos应用,Chronos的,等),例如消息传递,任务执行等。因此,完全新的应用成为可能。 Apache的Spark是一个新的(称为Mesos行话)框架,始建于Mesos一个例子。 这使真正快速发展 - 星火的开发商没有担心网络分发节点之间的任务,因为这是在Mesos原始核心。

据我所知,Kubernetes没有在生产部署目前使用谷歌内部。 对于生产,谷歌使用欧米茄/博格,这是更为相似Mesos /马拉松模式。 但是关于使用Mesos为基础的伟大的事情是,无论Kubernetes和马拉松可以在其上运行。

有关马拉松的更多资源:

https://mesosphere.github.io/marathon/

视频: https://www.youtube.com/watch?v=hZNGST2vIds



Answer 3:

Kubernetes和Mesos是天造地设的一对。 Kubernetes使波德(组共同定位的容器)的抽象,用波德标签用于服务发现,负载平衡,和复制控制沿。 Mesos提供细粒度的资源分配用于跨集群中的节点舱,并且可以使Kubernetes与同一群集资源运行的其他框架发挥很好。

从的kubernetes-mesos自述



Answer 4:

Mesos和Kubernetes都可以用来管理计算机和抽象的群集远离硬件。

Mesos,通过设计,不为您提供调度(决定何时何地运行流程,以及如果这个过程没有做),你可以使用像马拉松或Chronos的,或者自己编写。

Kubernetes会为你做调度开箱即用,可作为Mesos调度(请纠正我,如果我错了这里!),这是在那里你可以同时使用它们。 Mesos可以有多个调度共享相同的集群,所以从理论上讲,你可以在同一硬件上运行kubernetes和克罗诺斯在一起。

超级简单化:如果你想在你的容器是如何安排的控制,去Mesos,否则Kubernetes岩石。



Answer 5:

我很喜欢在这里这个短片mesos学习材料

与裸金属簇,你需要像产卵HDFS,SPARK,MR等栈......所以如果你只使用裸机集群管理推出与这些任务,将有大量的冷启动时间。

与mesos,你可以在裸金属的顶部安装这些服务,你能避免这些基础服务的实现时间。 这是后话mesos做得很好。 并且可以通过构建kubernetes在其顶部被利用。



Answer 6:

“据我所知都是服务器集群管理软件。”

这种说法并不完全正确。 Kubernetes不管理服务器集群,它编排容器,使得他们以最小的麻烦和曝光一起工作。 Kubernetes允许您定义应用程序的部分作为由“部署”或“守护进程设置”(和其他几个人),通过服务交付并暴露给外界“豆荚”(一个或多个容器)。 然而,Kubernetes不管理群集本身(也有工具可以提供,配置和集群规模为你,但这些都不是Kubernetes本身的一部分)。

在另一方面Mesos进来,它可以控制的运行,其中接近“集群管理”,但不只是在调度容器方面。 Mesos还管理集群服务器上运行的独立软件。 虽然它主要是用来作为替代Kubernetes,Mesos可以轻松Kubernetes上班,而功能在许多领域重叠,Mesos可以做更多的(但在重叠部分Kubernetes往往是更好)。



文章来源: What's the difference between Apache's Mesos and Google's Kubernetes