创建后将Docker机器添加到Swarm群集
Docker Swarm群集可以创建为:创建后将Docker机器添加到Swarm群集,docker,Docker,Docker Swarm群集可以创建为: docker-machine create \ -d virtualbox --virtualbox-disk-size "5000" \ --swarm --swarm-master \ --swarm-discovery="consul://$(docker-machine ip consul-machine):8500" \ --
docker-machine create \
-d virtualbox --virtualbox-disk-size "5000" \
--swarm --swarm-master \
--swarm-discovery="consul://$(docker-machine ip consul-machine):8500" \
--engine-opt="cluster-store=consul://$(docker-machine ip consul-machine):8500" \
--engine-opt="cluster-advertise=eth1:2376" swarm-master
docker-machine create \
-d virtualbox --virtualbox-disk-size "5000" \
--swarm \
--swarm-discovery="consul://$(docker-machine ip consul-machine):8500" \
--engine-opt="cluster-store=consul://$(docker-machine ip consul-machine):8500" \
--engine-opt="cluster-advertise=eth1:2376" swarm-node-01
docker-machine create \
-d virtualbox --virtualbox-disk-size "5000" \
--swarm \
--swarm-discovery="consul://$(docker-machine ip consul-machine):8500" \
--engine-opt="cluster-store=consul://$(docker-machine ip consul-machine):8500" \
--engine-opt="cluster-advertise=eth1:2376" swarm-node-02
docker-machine create -d virtualbox --virtualbox-disk-size "5000" swarm-node-03
这些机器在创建过程中加入群集。如果新的Docker机器创建为:
docker-machine create \
-d virtualbox --virtualbox-disk-size "5000" \
--swarm --swarm-master \
--swarm-discovery="consul://$(docker-machine ip consul-machine):8500" \
--engine-opt="cluster-store=consul://$(docker-machine ip consul-machine):8500" \
--engine-opt="cluster-advertise=eth1:2376" swarm-master
docker-machine create \
-d virtualbox --virtualbox-disk-size "5000" \
--swarm \
--swarm-discovery="consul://$(docker-machine ip consul-machine):8500" \
--engine-opt="cluster-store=consul://$(docker-machine ip consul-machine):8500" \
--engine-opt="cluster-advertise=eth1:2376" swarm-node-01
docker-machine create \
-d virtualbox --virtualbox-disk-size "5000" \
--swarm \
--swarm-discovery="consul://$(docker-machine ip consul-machine):8500" \
--engine-opt="cluster-store=consul://$(docker-machine ip consul-machine):8500" \
--engine-opt="cluster-advertise=eth1:2376" swarm-node-02
docker-machine create -d virtualbox --virtualbox-disk-size "5000" swarm-node-03
以后如何将此计算机配置为同一Swarm群集的一部分?目前无法直接通过计算机进行配置,但您可以在创建的实例上手动运行Swarm容器。运行
docker ps--no trunc
并查看一个加入的Swarm容器,应该会向您显示需要启动的命令
最棘手的一点可能是确保TLS配置正确。我的建议是使用docker machine scp
将您需要的证书从一个已经运行的Swarm主机同步到另一个主机
在未来,我希望我们能将机器中“协调群”的部分分割成更小的部分,这样这种类型的用例就更容易了
更新:看起来比我想象的要简单一些。无需手动复制证书。在您的情况下,我认为类似以下命令的内容应该将机器连接到现有的群集:
$ docker \
$(docker-machine config swarm-node-03) \
run -d swarm \
join --advertise $(docker-machine ip swarm-node-03) --discovery="consul://$(docker-machine ip consul-machine):8500"
现在应该可以在Swarm master的docker信息中看到它了
试试这个:
docker \
$(docker-machine config swarm-node-03) \
run -d swarm join --addr $(docker-machine ip swarm-node-03):2376 \
consul://$(docker-machine ip consul-machine):8500
您将需要手动启动该计算机内的Swarm容器(代理等)。请参阅,以了解如何手动安装节点并将节点加入Swarm.docker信息,即使在发出命令后仍显示相同的节点集。是否将--cluster advision替换为--advision?不需要指定--cluster store?不需要设置
--cluster store
,我认为这是针对Docker守护进程的--advertise
(带参数)应适用于调用的swarm
命令。仍然存在一些问题,因为完全重复这些步骤并没有为我更新docker info
输出。有什么想法吗?您是否尝试过编辑docker配置文件来调整引擎选项,添加集群存储和集群播发参数,在机器内重新启动docker守护程序,然后添加swarm join容器?