【问题标题】:Apache Mesos vs Google KubernetesApache Mesos 与 Google Kubernetes
【发布时间】:2016-10-12 11:40:21
【问题描述】:

What's the difference between Apache's Mesos and Google's Kubernetes

我阅读了接受的答案,但我仍然对它们之间的区别感到困惑。

如果 Kubernetes 是一个集群管理,那么 Mesos 是做什么的(我通过观看大量视频了解它的作用,但我想我更困惑这两者是如何协同工作的)? 从阅读来看,Kubernetes 和 Marathon 都是位于 Mesos 之上的“框架”?

Mesos 负责什么,Kubernetes/Marathon 负责什么,它们如何相互协作?

编辑: 我认为更好的问题是When would I want to use Kubernetes on top of Mesos vs just running Mesos alone?

【问题讨论】:

  • 当相关问题问同样的事情时,如何将这个问题标记为已关闭?
  • 因为这个问题对于 StackOverflow 来说太宽泛了,而且主要是基于意见的
  • @Tobi 当我试图了解哪个部分做什么时,它怎么能基于意见?我不是问哪个更好.....

标签: kubernetes mesos marathon


【解决方案1】:

Apache Mesos 是一个资源管理器,它以公平的方式在机器集群之间共享资源(CPU 份额、RAM、磁盘、端口)。通过共享,我的意思是它将这些资源提供给所谓的框架调度程序(例如 Marathon),从而在资源管理和调度决策方面明确分离了关注点(这取决于作业类型,例如 long-由框架调度程序运行或批处理)。另请参阅Mesos architecture 了解更多详情。

【讨论】:

  • 所以 Kubernetes/Marathon 是框架调度程序,而 Mesos 是资源管理器?那么集群管理器是什么意思呢?和框架调度器一样吗?
  • 所以 Kubernetes/Marathon 是一种调度事物的方式,Mesos 告诉调度程序在哪里运行,以便实现负载平衡/什么不是?
  • @ealon 我已经清楚地定义了资源管理的含义,请再次阅读我的答案并花一些时间来实际考虑一下。在这种情况下,管理和共享是相同的,是的,调度与资源管理是分开的。而这一切都与负载均衡无关。我慢慢开始认为你在拖钓……
  • 对,但是这些 cpu 跨不同的节点...所以通过管理这些资源,您实际上是在负载平衡,因为您不想让特定节点超载...
  • 你明确地说“公平地”是负载平衡,不是吗?
【解决方案2】:

Mesos 是另一个抽象层。它只是抽象了底层硬件,因此想要在其之上运行的软件只能定义所需的资源,而无需知道任何其他信息。

Kubernetes 可以做类似的事情,但如果没有 Mesos 提供的抽象,您将无法在同一台机器上运行其他框架(例如 Spark 或 Cassandra),而无需在这些框架之间手动划分。

【讨论】:

  • 我试图了解什么时候适合三种不同的情况:1)单独使用 kubernetes,2)单独使用 Apache mesos,3)使用 kubernetes + Mesos。我想我明白但不确定。为什么没有人一直选择(3)?
  • 我不知道“集群编排”如何与“资源管理”联系起来 kubernetes 是否会产生一堆 Docker 并在它们上运行 Mesos 以抽象资源或其他什么?
  • 或者你在一个机器池上运行 mesos,kubernetes 根据 mesos 提供的资源信息告诉在哪里运行容器?
  • 我添加了图表以使其清晰。您在一组机器上运行 mesos,kubernetes 使用 Mesos 预设的报价。
猜你喜欢
  • 2016-04-09
  • 1970-01-01
  • 1970-01-01
  • 2018-12-26
  • 1970-01-01
  • 2023-04-10
  • 1970-01-01
  • 1970-01-01
  • 2018-07-03
相关资源
最近更新 更多