2

ディスカバリー バックエンドに 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 認証を実行していませんが、これがないと swarm は機能しないのでしょうか?

環境

  • すべてのマシンで Debian 8 (3.16.0-4-amd64) が実行されています。swarm1.programster.org の Ubuntu 14.04 でもテスト済みです。
  • Docker バージョン 1.9.1、ビルド a34a1d5
  • etcd バージョン 2.2.2
4

1 に答える 1

3

次のようにポート番号を含めてみてください。

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

私は同じ問題を抱えていて、ドッカーは「etcd://」からポート番号をインテリジェントに推測すると思いました-私は間違っていました。

于 2016-01-21T00:12:35.467 に答える