物理主机重启时 Mesos 集群不恢复
Mesos cluster does not recover when physical host restart
我在 Ubuntu 14.04 上的 3 台主机上使用 mesosphere,如下所示:
- 一个有 mesos master
- 两个有 mesos slave
一切正常,但在重新启动所有物理主机后,所有计划的作业都丢失了。 正常吗?我希望zookeeper会存储当前的作业,然后当系统需要重新启动它时,所有的作业都会在主引导后重新安排。
更新:
我在同一个节点上使用 marathon 和 mesos,我是 运行 marathon with flag --zk
启用 marathon 的 --zk
和 --ha
后,Marathon 应该将其状态存储在 ZK 中并在重启时恢复它,只要 Mesos 允许它使用相同的框架 ID 重新注册。
但是,您还需要启用 Mesos 注册中心(即使对于单个主服务器),以确保 Mesos 在主服务器发生故障转移时保留有关注册了哪些 frameworkId 的信息。这可以通过设置 --registry=replicated_log
(默认)、--quorum=1
(因为您只有 1 个主控)和 --work_dir=/path/to/registry
(存储状态的位置)来实现。
我按照以下安装说明解决了问题:How To Configure a Production-Ready Mesosphere Cluster on Ubuntu 14.04
虽然您找到了解决方案,但我想对这个问题进行更多解释:)
官方文档:http://mesos.apache.org/documentation/latest/slave-recovery/
Note that if the operating system on the slave is rebooted, all
executors and tasks running on the host are killed and are not
automatically restarted when the host comes back up.
所以Mesos上的所有框架都会在重启后被杀死。重启框架的一种方法是 运行 Marathon 上的所有框架,它将管理其他框架并在需要时重启它们。
但是,您需要在 Marathon 被终止时自动重启它。在你说的digitialoceanlink中,Marathon是用脚本安装在init.d中的,所以重启后可以重新启动。否则,如果您通过源代码安装了 Marathon,则可以使用 supervisord 之类的工具来监控 Marathon。
我在 Ubuntu 14.04 上的 3 台主机上使用 mesosphere,如下所示:
- 一个有 mesos master
- 两个有 mesos slave
一切正常,但在重新启动所有物理主机后,所有计划的作业都丢失了。 正常吗?我希望zookeeper会存储当前的作业,然后当系统需要重新启动它时,所有的作业都会在主引导后重新安排。
更新: 我在同一个节点上使用 marathon 和 mesos,我是 运行 marathon with flag --zk
启用 marathon 的 --zk
和 --ha
后,Marathon 应该将其状态存储在 ZK 中并在重启时恢复它,只要 Mesos 允许它使用相同的框架 ID 重新注册。
但是,您还需要启用 Mesos 注册中心(即使对于单个主服务器),以确保 Mesos 在主服务器发生故障转移时保留有关注册了哪些 frameworkId 的信息。这可以通过设置 --registry=replicated_log
(默认)、--quorum=1
(因为您只有 1 个主控)和 --work_dir=/path/to/registry
(存储状态的位置)来实现。
我按照以下安装说明解决了问题:How To Configure a Production-Ready Mesosphere Cluster on Ubuntu 14.04
虽然您找到了解决方案,但我想对这个问题进行更多解释:)
官方文档:http://mesos.apache.org/documentation/latest/slave-recovery/
Note that if the operating system on the slave is rebooted, all executors and tasks running on the host are killed and are not automatically restarted when the host comes back up.
所以Mesos上的所有框架都会在重启后被杀死。重启框架的一种方法是 运行 Marathon 上的所有框架,它将管理其他框架并在需要时重启它们。
但是,您需要在 Marathon 被终止时自动重启它。在你说的digitialoceanlink中,Marathon是用脚本安装在init.d中的,所以重启后可以重新启动。否则,如果您通过源代码安装了 Marathon,则可以使用 supervisord 之类的工具来监控 Marathon。