mesos slaves 没有连接到 mesos masters 集群

mesos slaves are not connecting with mesos masters cluster

我有一个设置,我正在使用 3 个 mesos masters 和 3 个 mesos slaves。在完成所有必需的配置后,我可以看到 3 个 mesos master 是 zookeeper 维护的集群的一部分。

现在我已经设置了 3 个 mesos 从服务器,当我启动 mesos-slave 服务时,我希望 mesos 从服务器可以在 mesos 主服务器 Web UI 页面上使用。但是我在奴隶标签中看不到他们中的任何一个。

selinux、防火墙、iptalbes 都被禁用了。能够在节点之间执行ssh。

[cloud-user@slave1 ~]$ sudo systemctl status mesos-slave -l
   mesos-slave.service - Mesos Slave
   Loaded: loaded (/usr/lib/systemd/system/mesos-slave.service; enabled)
   Active: active (running) since Sat 2016-01-16 16:11:55 UTC; 3s ago
   Main PID: 2483 (mesos-slave)
   CGroup: /system.slice/mesos-slave.service
           ├─2483 /usr/sbin/mesos-slave --master=zk://10.0.0.2:2181,10.0.0.6:2181,10.0.0.7:2181/mesos --log_dir=/var/log/mesos --containerizers=docker,mesos --executor_registration_timeout=5mins
           ├─2493 logger -p user.info -t mesos-slave[2483]
           └─2494 logger -p user.err -t mesos-slave[2483]

Jan 16 16:11:55 slave1.novalocal mesos-slave[2494]: I0116 16:11:55.628670  2497 detector.cpp:482] A new leading master (UPID=master@127.0.0.1:5050) is detected
Jan 16 16:11:55 slave1.novalocal mesos-slave[2494]: I0116 16:11:55.628732  2497 slave.cpp:729] New master detected at master@127.0.0.1:5050
Jan 16 16:11:55 slave1.novalocal mesos-slave[2494]: I0116 16:11:55.628825  2497 slave.cpp:754] No credentials provided. Attempting to register without authentication
Jan 16 16:11:55 slave1.novalocal mesos-slave[2494]: I0116 16:11:55.628844  2497 slave.cpp:765] Detecting new master
Jan 16 16:11:55 slave1.novalocal mesos-slave[2494]: I0116 16:11:55.628872  2497 status_update_manager.cpp:176] Pausing sending status updates
Jan 16 16:11:55 slave1.novalocal mesos-slave[2494]: E0116 16:11:55.628922  2503 process.cpp:1911] Failed to shutdown socket with fd 11: Transport endpoint is not connected
Jan 16 16:11:55 slave1.novalocal mesos-slave[2494]: I0116 16:11:55.629093  2502 slave.cpp:3215] master@127.0.0.1:5050 exited
Jan 16 16:11:55 slave1.novalocal mesos-slave[2494]: W0116 16:11:55.629107  2502 slave.cpp:3218] Master disconnected! Waiting for a new master to be elected
Jan 16 16:11:55 slave1.novalocal mesos-slave[2494]: E0116 16:11:55.983531  2503 process.cpp:1911] Failed to shutdown socket with fd 11: Transport endpoint is not connected
Jan 16 16:11:57 slave1.novalocal mesos-slave[2494]: E0116 16:11:57.465049  2503 process.cpp:1911] Failed to shutdown socket with fd 11: Transport endpoint is not connected

所以有问题的行是:

Jan 16 16:11:55 slave1.novalocal mesos-slave[2494]: I0116 16:11:55.629093  2502 slave.cpp:3215] master@127.0.0.1:5050 exited

具体来说,请注意它正在检测主机的 IP 地址为 127.0.0.1。 Mesos Agent[1] 看到该 IP 地址,并尝试连接失败(master 与 agent 运行 不在同一台机器上)。

发生这种情况是因为主节点向 Zookeeper 宣布了它认为自己的 IP 地址。在你的情况下,主人认为它的 IP 是 127.0.0.1,然后将其存储到 zk 中。 Mesos 有几个配置标志来控制这种行为,主要是 --hostname--no-hostname_lookup--ip--ip_discovery_command,以及通过设置环境变量 LIBPROCESS_IP。有关它们及其作用的详细信息,请参阅 http://mesos.apache.org/documentation/latest/configuration/

要确保开箱即用,您可以做的最好的事情就是确保机器具有可解析的主机名。 Mesos 会 reverse-DNS 查找 boxes 的主机名,以便找出人们将通过哪个 IP 联系它。

如果您无法正确设置主机名,我建议您手动设置 --hostname--ip,这将使 mesos 准确地宣布您想要的内容。

[1]mesos slave已经重命名为agent,参见:https://issues.apache.org/jira/browse/MESOS-1478