cluster-computing - Docker-Swarm、Kubernetes、Mesos 和 Core-OS 舰队

标签 cluster-computing docker coreos kubernetes mesosphere

我对所有这些都比较陌生,但我很难清楚地了解列出的技术。

虽然,所有这些都试图解决不同的问题,但也有共同点。我想了解什么是共同的,什么是不同的。少数的组合很可能非常适合,如果是的话,它们是什么?

我列出了其中一些以及问题,但如果有人详细列出所有问题并回答问题,那就太好了。

  1. Kubernetes 与 Mesos:

    这个链接

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

    提供了对差异的深入了解,但我无法理解为什么 Kubernetes 应该在 Mesos 之上运行。是否更多地与将两个开源解决方案结合在一起?

  2. Kubernetes vs Core-OS Fleet:

    如果我使用 Kubernetes,是否需要舰队?

  3. Docker-Swarm 如何适应上述所有情况?

最佳答案

披露:我是 Kubernetes 的首席工程师

我认为 Mesos 和 Kubernetes 主要旨在解决运行集群应用程序的类似问题,它们有不同的历史和不同的解决问题的方法。

Mesos 将精力集中在非常通用的调度上,并插入多个不同的调度程序。这意味着它使 Hadoop 和 Marathon 等系统能够在同一个调度环境中共存。 Mesos 不太专注于运行容器。 Mesos 在容器受到广泛关注之前就已经存在,并且已经被重构为支持容器的部分。

相比之下,Kubernetes 从一开始就被设计成一个从容器构建分布式应用程序的环境。它包括用于复制和服务发现的原语作为核心原语,这些东西是通过 Mesos 中的框架添加的。 Kubernetes 的主要目标是构建、运行和管理分布式系统的系统。

Fleet 是一个较低级别的任务分发器。它对于引导集群系统很有用,例如 CoreOS 使用它来将 kubernetes 代理和二进制文件分发到集群中的机器,以便启动 kubernetes 集群。它并不是真正旨在解决相同的分布式应用程序开发问题,将其视为您的集群的 systemd/init.d/upstart。如果您运行 kubernetes,则不需要,您可以使用其他工具(例如 Salt、P​​uppet、Ansible、Chef 等)来完成相同的二进制分发。

Swarm 是 Docker 为扩展现有 Docker API 所做的努力,使机器集群看起来像单个 Docker API。从根本上说,我们在 Google 和其他地方的经验表明节点 API 不足以用于集群 API。你可以在这里看到一堆讨论:https://github.com/docker/docker/pull/8859在这里:https://github.com/docker/docker/issues/8781

希望对您有所帮助!如果您想了解更多信息,请加入 IRC @#google-containers。

关于cluster-computing - Docker-Swarm、Kubernetes、Mesos 和 Core-OS 舰队,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27640633/

相关文章:

java集群用于巨大的顺序计算

node.js - 尝试更新 Docker 中的 NPM : code EISDIR

php - 将使用 docker-compose 创建的容器连接到另一个使用 docker run 创建的容器

linux - 在 coreos 上将容器暴露给互联网

ubuntu - Gitlab CI 免费共享运行器来配置 Ubuntu 而不是 CoreOS?

php - 如何构建用于从 Kubernetes 集群外部的机器传递文件的 sidecar 容器?

java - quartz 在集群配置中的奇怪行为

transactions - 集群模式下spring data redis是否支持事务(multi,exec)?

linux - 生产中使用的是单cloudera单用户模式吗?

docker - 面临将我的traefik设置升级到docker swarm的问题