【问题标题】:How Mesos Marathon handle application data persistence?Mesos Marathon 如何处理应用程序数据持久性?
【发布时间】:2015-06-22 11:29:49
【问题描述】:

我一直在探索 Mesos,Marathon 框架来部署应用程序。我怀疑 Marathon 在应用程序被杀死时如何处理应用程序文件。

例如,我们使用的是通过 Marathon 运行的 Jenkins,如果 Jenkins 服务器出现故障,它将由 Marathon 再次重新启动,但这次定义的旧作业将丢失。

现在我的问题是如何确保如果应用程序重新启动,那些旧的应用程序作业应该可用?

谢谢。

【问题讨论】:

    标签: jenkins mesos application-restart mesosphere marathon


    【解决方案1】:

    目前 mesos/marathon 非常擅长支持无状态应用程序,但对有状态应用程序的支持正在增加。 默认情况下,任务数据被写入沙箱,因此在任务失败/重新启动时会丢失。请注意,通常只有一小部分任务失败(例如,只有失败节点上的任务)。

    现在让我们看看不同的失败场景。

    1. 从从属进程故障中恢复: 当只有 Mesos 从属进程失败(或升级)时,框架可以使用slave checkpointing 重新连接到正在运行的执行程序。

    2. 执行器故障(例如 Jenkins 进程故障): 在这种情况下,框架可以将它自己的元数据保存在一些持久媒体上并使用它来重新启动。请注意,这是高度特定于应用程序的,因此 mesos/marathon 无法提供通用的方法来执行此操作(实际上我不确定在 jenkins 的情况下会是什么样子)。持久数据可以写入 HDFS、Cassandra,或者您可以查看concept of dynamic reservations

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多