我有一个通过openstack部署的4 centos 7.1虚拟机的设置。他们有一个公共和一个私人的ip地址。主机不知道公共ip所以如果我运行
ifconfig -a
我只得到主机的私有ip地址。
现在我想使用mesosphere包部署mesos23.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"
其余的选项是默认值。
从机通过以下选项进行部署:
--log_dir=/var/log/mesos --containerizers=docker,mesos --executor_registration_timeout=5mins --hostname=<Public IP> --master=<Master Public IP>:5050
从属服务器被添加到集群中,但它们直接进入“停用”状态,因此我无法在集群上运行任何框架。我可以在5051上给奴隶们做一个远程通话。我还想补充 --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主机的日志文件时,我可以看到从机用他们的私有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>)
由于虚拟机无法在专用网络中通信,因此无法工作。我是否必须允许虚拟机通过他们的私有ip进行通信,或者如何使我的集群工作?
谢谢!
2条答案
按热度按时间pxq42qpu1#
如果您无法绑定到nic,您可以使用“--advertise\u ip”选项来分配浮动ip。
w46czmvw2#
我通过ifconfig添加公共ip解决了我的问题。也许有更好的解决办法?
我们现在决定允许vm之间通过私有ip进行通信,这也解决了这个问题。