OpenStack VM的公共IP上的Mesos

时间:2015-08-05 21:15:55

标签: linux openstack mesos mesosphere

我有4台CentOS 7.1 VM的安装程序,它们是通过OpenStack部署的。他们有一个公共和私人IP地址。如果我运行

,主机不知道公共IP
ifconfig -a

我只获取主机的私有IP地址。

现在我想使用mesosphere软件包部署Mesos 23.0,首先我使用以下选项部署Master

--cluster="my-cluster" --hostname="<Public-IP>" --log_dir="/var/log/mesos"  --port="5050" --zk="zk://127.0.0.1:2181/mesos" --quorum="1"

其余选项是默认值。

使用以下选项部署Slaves:

--log_dir=/var/log/mesos --containerizers=docker,mesos --executor_registration_timeout=5mins --hostname=<Public IP> --master=<Master Public IP>:5050

从属服务器被添加到集群中但它们直接进入“已停用”状态,因此我无法在集群上运行任何Framework。我可以在5051上对主服务器的 telnet 执行 telnet 。此外,我尝试添加--ip=<public IP>,这会导致绑定错误:

Failed to initialize: Failed to bind on <Public IP>:5051: Cannot assign requested address: Cannot assign requested address [99]

因为奴隶不知道它的公共IP。并且mesos-slave默认监听0.0.0.0

netstat -ltnp | grep ':5051'
tcp        0      0 0.0.0.0:5051            0.0.0.0:*               LISTEN      764/mesos-slave

当我查看来自mesos-master的日志文件时,我可以看到奴隶用他们的私有IP回应自己

Slave 20150805-161215-1059104960-5050-715-S1136 at slave(1)@<private IP>:5051 (<Public IP>) disconnected
Disconnecting slave 20150805-161215-1059104960-5050-715-S1136 at slave(1)@<private IP>:5051 (<Public IP>)
Deactivating slave 20150805-161215-1059104960-5050-715-S1136 at slave(1)@<private IP>:5051 (<Public IP>)

由于VM无法在专用网络中进行通信,因此无法正常工作。我是否必须允许VM通过其私有IP进行通话,或者如何使我的群集正常工作?

谢谢!

2 个答案:

答案 0 :(得分:1)

我通过ifconfig添加公共IP解决了我的问题。也许有更好的解决方案?

我们现在决定允许VM通过私有IP进行通信,这也解决了问题。

答案 1 :(得分:0)

您可以使用&#34; - advertise_ip&#34;如果无法绑定到NIC,则分配浮动IP的选项。