mesos marathon如何处理应用程序数据持久性?

yr9zkbsy  于 2021-06-21  发布在  Mesos
关注(0)|答案(1)|浏览(444)

我一直在探索mesos,一种部署应用程序的马拉松式框架。我有一个疑问,马拉松如何处理应用程序文件时,一个应用程序被杀死。
例如,我们正在使用jenkins,它是通过marathon运行的,如果jenkins服务器出现故障,它将通过marathon重新启动,但这次定义的旧作业将丢失。
现在我的问题是,如何确保如果应用程序重新启动,那些旧的应用程序作业应该可用?
谢谢。

vlurs2pr

vlurs2pr1#

到目前为止,mesos/marathon非常擅长支持无状态应用程序,但是对有状态应用程序的支持正在增加。默认情况下,任务数据会写入沙盒,因此在任务失败/重新启动时会丢失。请注意,通常只有一小部分任务失败(例如,只有失败节点上的任务)。
现在让我们看看不同的失败场景。
从从属进程失败中恢复:当只有mesos从属进程失败(或升级)时,框架可以使用从属检查点重新连接到正在运行的执行器。
执行器失败(例如jenkins进程失败):在这种情况下,框架可以将自己的元数据持久化到某个持久性媒体上,并使用它来重新启动。请注意,这是高度特定于应用程序的,因此mesos/marathon无法提供一种通用的方法来实现这一点(实际上,我不确定jenkins的情况下会是什么样子)。持久数据可以写入hdfs、cassandra,也可以查看动态保留的概念。

相关问题