Docker Swarm:--swarm-discovery和cluster-store之间的区别

时间:2016-05-19 15:53:46

标签: docker docker-swarm

当创建一个新的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" \

到目前为止我发现的是:

  • - swarm-discovery指示创建的Swarm工作容器使用指定的地址和协议查找创建的键值存储(consul:// here)
  • - cluster-store告诉Docker守护程序哪个KV存储用于libnetwork所需的协调,类似于上面概述的--swarm-discovery选项。

但他们之间的差异仍然不明确。

1 个答案:

答案 0 :(得分:1)

你基本上是对的。

--swarm-discovery选项用于指定包含Swarm节点详细信息的键值存储,用于管理群集服务发现。请注意,这甚至可以是带有节点列表的简单文件,或者(不推荐)Docker Hub。

--cluster-store选项必须libkv支持的键值存储。 Docker Engine使用它来共享容器,网络和卷的详细信息。这需要Swarm,完全可以创建一个使用Consul链接的Docker集群,但它使用一些替代的编排机制来Swarm。通常,Swarm和Docker集群最简单的方法是共享同一个商店,尽管也可以为每个商店提供不同的机制。