簡體   English   中英

docker swarm-etcd群集不可用或配置錯誤

[英]docker swarm - etcd cluster is unavailable or misconfigured

我正在嘗試使用etcd作為發現后端使用docker swarm。 我的etcd服務器位於etcd.programster.org(10.1.0.44),而我的Docker節點位於swarm1.programster.org(10.1.0.47)。 所有計算機都在本地網絡(10.1.0.x)的Virtualbox實例上運行。

我設法讓我的etcd服務器運行以下命令:

MY_IP="10.1.0.44"

./etcd \
-name infra0 \
-initial-advertise-peer-urls http://$MY_IP:2380 \
-listen-peer-urls="http://0.0.0.0:2380,http://0.0.0.0:7001" \
-listen-client-urls="http://0.0.0.0:2379,http://0.0.0.0:4001" \
-advertise-client-urls="http://$MY_IP:2379" \
-initial-cluster-token etcd-cluster-1 \
-initial-cluster infra0=http://$MY_IP:2380 \
-initial-cluster-state new

我可以使用curl和etcd從swarm1.programster.org設置和檢索鍵值。

# setting key with etcdctl
./etcdctl --peers http://etcd.programster.org:4001 set etc://etcd.programster.org/mykey "test"

# setting key with curl
curl -L \
http://etcd.programster.org:4001/v2/keys/mykey \
-XPUT -d value="test"

# retrieving key with etcdctl
./etcdctl --peers http://etcd.programster.org:4001 get etc://etcd.programster.org/mykey

# retrieving key with curl
curl -L http://etcd.programster.org:4001/v2/keys/mykey

但是,每當我運行基於群體的命令,例如:

docker run swarm list etcd://10.1.0.44/

要么

docker run swarm join --advertise=10.1.0.47:2375 etcd://10.1.0.44/

我總是收到以下錯誤消息:

[timestamp] client: etcd cluster is unavailable or misconfigured

我的etcd服務器配置是否錯誤,或者是否需要首先在docker節點上執行網絡配置? 為了簡單起見,我還沒有執行任何TLS身份驗證,但是如果沒有此功能,可能無法群存?

上下文

  • 所有機器都在運行Debian 8(3.16.0-4-amd64)。 還已在Ubuntu 14.04上對swarm1.programster.org進行了測試。
  • Docker 1.9.1版,內部版本a34a1d5
  • etcd版本2.2.2

嘗試包括以下端口號:

docker run swarm join --advertise=10.1.0.47:2375 etcd://10.1.0.44:2379/swarm

我有同樣的問題,我認為碼頭工人會智能地從“ etcd://”推斷端口號-我錯了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM