为什么马拉松不会在法定人数丢失后终止工作?

时间:2015-02-11 15:18:39

标签: mesos mesosphere marathon

我正在使用Apache mesos和马拉松。我有3个主节点和3个从节点。我使用仲裁2配置了mesos。后来我发布了一个JSON来运行一个马拉松的工作,看起来都很好。

然后我尝试关闭两个主节点以打破仲裁,在此之后,mesos取消注册所有奴隶并且所有看起来都没问题,但是当我检查奴隶时,我发现已启动的作业继续运行... 这是正常的?我假设马拉松在法定人数失去后停止所有工作

1 个答案:

答案 0 :(得分:2)

Mesos哲学的一部分,特别是对于长期运行的服务,是一个或多个Mesos组件中的故障不需要停止用户应用程序。

如果从属设备关闭且框架启用了检查点,则执行程序驱动程序将在关闭执行程序/任务之前等待从属设备--recovery_timeout(默认为15分钟)。为了防止这种情况,请禁用框架上的检查点(在Marathon中,只需在启动Marathon时设置--checkpoint=false)。另见https://mesosphere.github.io/marathon/docs/command-line-flags.html

上的Marathon --failover_timeout

另一方面,如果它只是关闭的Masters / ZK,并且Slaves仍在启动并运行,则从站仍然可以监视任务并排队状态更新,因此任务可以保持活动状态。如果ZK失去仲裁,则没有前导主设备,并且每个从设备将继续独立运行,直到检测到新的主设备,此时它将重新注册主设备并发送任何排队的状态更新。