Swarm主节点应该作为单节点集群中的节点join吗?
我们正在build立一个小型集群,一个(奇怪的)要求是把所有东西都放在一台机器上,其他机器可以在未来join。
我设立了领事:
docker run -d -p 8500:8500 --name=consul progrium/consul -server -bootstrap
和主人一起:
docker run -d -p 4000:4000 swarm manage -H :4000 --advertise <ip_here>:4000 consul://<ip_here>:8500
docker工人在哪里运行:
sudo docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
和docker -H :4000 info
在此阶段将节点列为0,因为在docker -H :4000 run <image>
中我无法运行任何映像,因为No healthy node available in the cluster.
当我通过以下方式将主节点join到群集中时:
docker run -d swarm join --advertise=<ip_here>:2375 consul://<ip_here>:8500
然后docker -H :4000 info
列出节点为1,我可以运行容器。
请注意, <ip_here>
指的都是机器的相同IP地址。
这是预期的行为? 如果没有,我做错了什么?
在看到Docker Machine创buildSwarm集群的方式,以及使用集成到Docker v1.12.0的Swarm之后,我想发布一个更新。 Swarm master通过运行两个容器,一个代理和一个主服务器来joinSwarm集群。
至于我,我使用Swarm Master作为Consul服务器。 这个答案可能对你有帮助。 然后,回答Swarm Master不会作为单个节点集群join。
您不能在单个节点上部署Swarm。 这不是它的用途,不能这样工作。 Swarm 将Docker主机池变成单个虚拟Docker主机 ,所以如果Docker主机池包含零个主机…没有Docker代理主机容器。