mesos - 为什么马拉松在失去法定人数后不终止工作?

标签 mesos mesosphere marathon

我正在使用 Apache mesos 和 marathon。我有 3 个主节点和 3 个从节点。我使用 quorum 2 配置 mesos。后来我发布了一个 JSON 来使用 marathon 运行一项作业,一切看起来都很好。

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

最佳答案

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

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

另一方面,如果只是 Master/ZK 关闭,而 Slave 仍然启动并运行,则 Slave 仍然可以监视任务并排队状态更新,因此任务可以保持事件状态。如果 ZK 失去仲裁,则不存在领先的主节点,每个从节点将继续独立运行,直到检测到新的领导者,此时它将向主节点重新注册并发送任何排队的状态更新。

关于mesos - 为什么马拉松在失去法定人数后不终止工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28457891/

相关文章:

java - Hashicorp Nomad 上的 Quarkus

docker - Mesos杀死任务。无法确定 'cpu'子系统的cgroup

docker - Mesos + Docker,我会自动获得 Mesos HA 等的好处吗?

docker - 在现有cgroup中启动容器

performance - 如何在 DCOS 仪表板中查看长期利用率趋势(图表)

docker - 中间层局部发展

hadoop - 多节点hadoop集群和mesos上跑hadoop有什么区别?

docker - 无法在Mesos本地集群安装的系统中通过SSH为主节点

docker - 将 Ubuntu Docker 容器作为 Marathon 应用程序运行不断重启

containers - 如何衡量Mesos中每个容器的CPU利用率?