Mesos 部署的最佳基础

Mesos 部署的最佳基础

我们目前正在设计新的 Apache Mesos 云设置的架构。目标是通过将不同的堆栈移到同一架构上来统一我们的系统。主要工作负载是使用 Apache Spark 进行大数据分析以及我们的企业基础设施,包括 Web 服务器、邮件服务器等。

我们的想法是在 Docker 容器中运行我们的 Web 服务,这些容器运行在 Mesos 可用的调度程序之一(Marathon/Chronos、Aurora 或 Singularity)之上。因此,这将是第一个 Mesos 框架组。接下来,我们将有 Apache Spark 框架和几个用于数据存储的数据库框架。这将是第二组 Mesos 框架。我们将在并行运行所有这些框架进行测试后选择具体细节。

然而,我们很难决定以何种方式运行 Mesos 本身。理想情况下,我们希望尽可能接近硬件运行。我们还希望使用编排解决方案来确保 Mesos 和框架守护进程在发生故障时始终运行/重新启动。我们正在考虑的选项如下:

1) 在最小操作系统中将 Mesos 和框架作为 Docker 容器运行。在这方面,我们目前倾向于 CoreOS 和 Fleet。

2) 直接在 Ubuntu/Debian 服务器上运行 Mesos 和框架。对于此选项,我们倾向于使用 Foreman 和 Puppet。

对于这个问题,我们正在寻找按重要性排序的解决方案:

  • 配置起来最简单
  • 最容易维护和更新
  • 开销最少

我们之前没有使用过 CoreOS,但这是我们似乎正在采用的选择。我对此有一个很大的(主观)问题是,我们在 Docker 容器上运行 Mesos,然后在 Mesos 上运行 Docker 容器。在我看来,这似乎“不干净”且错误。这种考虑是否毫无价值?

类似的想法涉及层之间的冗余。为了解释我的观点,我更希望 Mesos 是一个实际的操作系统,它直接在金属上运行。似乎无论你使用什么基础,你最终都会在架构的多个层上获得相同的预期功能(即 CoreOS&Fleet&SystemD == Mesos&Marathon&Chronos)。这是不可避免的吗?

考虑到我们的标准,是否还有其他我们没有考虑到的好的选择来运行 Mesos 下面的层?

答案1

在 Mesos 下配置和运行服务可能是一个复杂的操作,也可能是一个简单的操作,您应该首先根据您的需求和目标定义您想要在其下运行的服务模式,以获得您想要的解决方案。

我在 HAProxy 下运行了 70 多台机器和各种不同的服务,以便使用 Mesos-DNS 和 Marathon、Api 网关、Chronos、Jenkins、Docker、Collectd 和 Graphite 实现动态负载平衡......

现在回答你的直接问题:

  • Mesos 的配置最简单,使用“最喜欢的” Linux 发行版您最熟悉的。
  • 最容易维护的还是你最熟悉的发行版。
  • 至于开销,Mesos 是一个软件系统,它使用底层操作系统库和其他软件功能,而将 Mesos 作为操作系统(与硬件和软件一起工作......)是完全错误的想象。

因此,我给你的最佳答案是使用你最喜欢的 Linux 发行版并安装 Mesos,或者如果你想学习一些新东西,并且可能快速而轻松地学习,那么使用(开源)DCOS核心操作系统

相关内容