Marathon vs Kubernetes vs Docker Swarm在DC / OS上使用Docker容器

时间:2015-03-22 19:26:39

标签: docker kubernetes marathon docker-swarm dcos

我正在寻找在DC / OS上运行Docker容器时是否使用Marathon和Chronos,Docker Swarm或Kubernetes的优缺点。

例如,何时使用Marathon / Chronos比使用Kubernetes更好,反之亦然?

现在我主要进行实验,但希望我们在夏天之后开始使用其中一种服务。这可能会使Docker Swarm失去资格,因为我不确定它是否会在那时生产。

我喜欢Docker Swarm的原因是它本质上只是“Docker命令”,你不需要学习全新的东西。我们已经在使用docker-compose,这将与Docker Swarm开箱即用(至少在理论上),这将是一个很大的优势。我对Docker Swarm的主要关注是它是否涵盖了在生产中运行系统所需的所有用例。

2 个答案:

答案 0 :(得分:167)

我将尝试分解Mesos上每个容器编排框架的独特方面。

使用Docker Swarm if:

使用Kubernetes-Mesos if:

  • 您想要推出K8s Pods,它们是共同安排和共处的容器组,共享资源。
  • 您希望与父容器旁边的一个或多个sidekick容器(例如日志存档程序,指标监视器)一起启动服务。
  • 您希望使用基于K8s标签的服务发现,负载平衡和复制控制。
  • 请参阅http://kubernetesio.blogspot.com/2015/04/kubernetes-and-mesosphere-dcos.html

使用Marathon if:

  • 您想要启动Docker或非Docker长期运行的应用程序/服务。
  • 您希望将Mesos属性用于基于约束的计划。
  • 您希望使用应用程序组和依赖关系来启动,扩展或升级相关服务。
  • 您希望使用运行状况检查来自动重启不健康的服务或回滚不健康的部署/升级。
  • 您希望将HAProxy或Consul集成以进行服务发现。
  • 您希望通过Web UI或REST API启动和监控应用程序。
  • 您想要使用从一开始就构建Mesos的框架。

使用Chronos if:

  • 您希望启动预期退出的Docker或非Docker任务。
  • 您希望将任务安排在特定时间/日程安排(la cron)。
  • 您希望安排依赖任务的DAG工作流程。
  • 您希望通过Web UI或REST API启动和监控作业。
  • 您想要使用从一开始就构建Mesos的框架。

答案 1 :(得分:16)

虽然它有点过时,但阅读What's the difference between Apache's Mesos and Google's Kubernetes可能会有所帮助,以获得一些正确的基础知识。另外,请注意Mesos的运行级别与Kubernetes / Marathon / Chronos不同。最后但并非最不重要的,请参阅Timothy Chen的Docker Swarm + Mesos,记住Marathon和Swarm可以在同一个Mesos集群上同时运行。