当创建一个新的swarm节点时,我们有类似于swarm master的以下代码:
docker-machine create \
-d digitalocean \
--swarm \
--swarm-master \
--swarm-discovery="consul://${KV_IP}:8500" \
--engine-opt="cluster-store=consul://${KV_IP}:8500" \
--engine-opt="cluster-advertise=eth1:2376" \
queenbee
我不明白为什么我们需要这两条线?
--swarm-discovery="consul://${KV_IP}:8500" \
--engine-opt="cluster-store=consul://${KV_IP}:8500" \
到目前为止我发现的是:
但他们之间的差异仍然不明确。
答案 0 :(得分:1)
你基本上是对的。
--swarm-discovery
选项用于指定包含Swarm节点详细信息的键值存储,用于管理群集服务发现。请注意,这甚至可以是带有节点列表的简单文件,或者(不推荐)Docker Hub。
--cluster-store
选项必须是libkv
支持的键值存储。 Docker Engine使用它来共享容器,网络和卷的详细信息。这不需要Swarm,完全可以创建一个使用Consul链接的Docker集群,但它使用一些替代的编排机制来Swarm。通常,Swarm和Docker集群最简单的方法是共享同一个商店,尽管也可以为每个商店提供不同的机制。