108

我正在寻找在 DC/OS 上运行 Docker 容器时是否使用 Marathon 和 Chronos、Docker Swarm 或 Kubernetes 的一些利弊。

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

现在我主要是在试验,但希望我们能在夏天之后开始在生产中使用这些服务之一。这可能会取消 Docker Swarm 的资格,因为我不确定到那时它是否可以投入生产。

我喜欢 Docker Swarm 的地方在于它本质上只是“Docker 命令”,你不必学习全新的东西。我们已经在使用docker-composeDocker Swarm(至少在理论上),这将是开箱即用的,所以这将是一个很大的优势。我对 Docker Swarm 的主要担忧是它是否能涵盖在生产环境中运行系统所需的所有用例。

4

2 回答 2

171

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

在以下情况下使用Docker Swarm

在以下情况下使用Kubernetes-Mesos

  • 你想启动 K8s Pod,它们是一组共同调度和共同定位的容器,共享资源。
  • 您希望在一个或多个与父容器相邻的 Sidekick 容器(例如日志归档器、指标监视器)旁边启动一项服务。
  • 您想使用 K8s 基于标签的服务发现、负载平衡和复制控制。
  • http://kubernetesio.blogspot.com/2015/04/kubernetes-and-mesosphere-dcos.html

在以下情况下使用马拉松

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

在以下情况下使用Chronos

  • 您想要启动预期退出的 Docker 或非 Docker 任务。
  • 您想要安排任务在特定时间/时间表(a la cron)运行。
  • 您想要安排相关任务的 DAG 工作流。
  • 您希望通过 Web UI 或 REST API 启动和监控作业。
  • 您想使用从一开始就考虑到 Mesos 构建的框架。
于 2015-04-23T06:06:23.597 回答
15

尽管它有点过时,但阅读Apache 的 Mesos 和 Google 的 Kubernetes 之间的区别可能会有所帮助,以了解一些基础知识。另外,请注意,Mesos 的运行级别与 Kubernetes/Marathon/Chronos 不同。最后但同样重要的是,请参阅Timothy Chen 的Docker Swarm + Mesos,记住 Marathon 和 Swarm 可以在同一个 Mesos 集群上同时运行。

于 2015-03-23T04:03:02.877 回答