【问题标题】:mesos slaves are not connecting with mesos masters clustermesos slaves 没有与 mesos masters 集群连接
【发布时间】:2016-04-22 03:07:25
【问题描述】:

我有一个设置,我使用 3 个 mesos 主机和 3 个 mesos 从机。在完成所有必需的配置后,我可以看到 3 个 mesos 主服务器是由动物园管理员维护的集群的一部分。

现在我已经设置了 3 个 mesos 从站,当我启动 mesos-slave 服务时,我希望 mesos 从站将可用于 mesos masters 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

【问题讨论】:

    标签: apache-zookeeper mesos mesosphere marathon


    【解决方案1】:

    所以有问题的行是:

    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 代理[1] 看到该 IP 地址,并尝试连接失败(主服务器与代理不在同一台机器上运行)。

    发生这种情况是因为主服务器向 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 对框的主机名进行反向 DNS 查找,以确定人们将从哪个 IP 联系它。

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

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

    【讨论】:

    • 这正是我自己写的:-)
    • 感谢 Firebird,问题已解决,
    • 我尝试了几件事。只有 --ip 有效。而且我必须从 ifconfig 中解析 ip,这很麻烦。有没有办法在 Vagrant 中正确完成主机名解析?
    • 但是,使用 --ip 会导致控制台由于某种原因无法加载
    • 您需要 vagrant 中的每个盒子都具有来自其他盒子的完全可解析的主机名,以便在不设置 --ip 和 --hostname 的情况下制作多节点 vagrant。特别是,一台机器需要能够使用 DNS 查找它自己的主机名并取回一条 A 记录。每台其他机器都必须能够查找该主机名并返回完全相同的 A 记录。
    猜你喜欢
    • 1970-01-01
    • 2016-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-13
    • 1970-01-01
    • 2016-07-12
    相关资源
    最近更新 更多