【问题标题】:How to run stateful applications in Apache Mesos?如何在 Apache Mesos 中运行有状态的应用程序?
【发布时间】:2016-12-16 09:04:55
【问题描述】:

有状态容器如何在 Mesos 中运行?

根据 Mesos 文档,沙箱可以用来存储状态:

随着持久卷、执行器和任务的引入 永远不要在沙盒之外创建文件。

同时在以下情况下安排沙盒文件进行垃圾回收:

  • 执行程序被删除或终止。
  • 框架被移除。
  • 在代理恢复期间未能成功恢复执行程序。

这是唯一的方法吗?或者可以使用 docker 容器来维护状态(以类似于 VM 的方式)?

例如,可以创建一个容器并跨 2 个节点运行吗?这样的容器是否可以包含状态并且在任务完成后不被销毁?

【问题讨论】:

    标签: mesos mesosphere


    【解决方案1】:

    Mesos 文档中引用的关键语句是

    随着持久卷的引入...

    沙盒可以被垃圾收集是正确的。但是,Mesos 提供了一个名为 persistent volumes 的原语,它允许您创建将在任务失败和代理重新启动后持续存在且不会被垃圾收集的卷。

    此外,Mesos 现在还通过Docker volume isolator 提供对网络存储的支持。这允许您使用 Docker 卷驱动程序挂载网络卷,从而可以使用各种存储后端。

    Docker 容器可以存储持久状态,但它们必须通过 Docker 卷隔离器在 Mesos 持久卷或网络附加卷中这样做。这些卷存在于 Docker 容器之外并被挂载到容器中,因此它们在容器死亡后仍然存在。

    Mesos 任务不能跨多个节点运行。请注意,如果后端存储提供程序支持并发访问,则不同节点上的多个任务可以通过 Docker 卷隔离器访问同一个网络附加卷。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-28
      • 1970-01-01
      • 2018-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-06
      • 2021-02-24
      相关资源
      最近更新 更多