迁移Marathon应用程序以进行mesos-slave正常关闭

时间:2015-07-31 11:13:49

标签: mesos marathon

我有一个小的Mesos集群,我正在使用Marathon来管理一组长期运行的服务,每个服务的实例数量可变。

我希望能够根据业务需求启动新节点或终止其中一些节点。但是,当终止节点时,我意识到存在一个潜在的问题:当我关闭Mesos从站时,会发生某些服务的实例数暂时低于定义的minimumHealthCapacity。例如,如果要停止的机器正在运行只有一个实例的服务,那么可能会导致一些停机。

考虑以下简化方案:节点1正在运行服务A,节点2正在运行服务B而节点3正在运行服务C.所有服务的minimumHealthCapacity是1.我想终止节点1并离开只有2和3运行。我不希望服务A停机。预期行为的一个例子是将服务A扩展到2,然后安全地终止节点1.

我可以做些什么来确保没有服务低于minimumHealthCapacity

理想情况下,我会有一个滚动更新启发过程 - 替换是在不同的机器中启动,然后终止要关闭的机器中的服务。我想至少有一个自动化的过程来做到这一点,所以缩小是一个简单的脚本。我没有要求花费这么多时间,即只有在我确定Marathon迁移完成并成功后才能关闭Mesos奴隶。

1 个答案:

答案 0 :(得分:1)

Mesos开发团队目前正在开发"维护基元"这样操作员可以指示特定机器被安排在特定时间(或ASAP)停机,向每个框架触发消息,通知它们预期的不可用性窗口。然后像Marathon这样的框架可以决定将其任务从该节点迁移出来,以便在没有任何服务停机的情况下安全地终止它。

有关详细信息/补丁,请参阅https://issues.apache.org/jira/browse/MESOS-1474