私は、飼育者のバックエンドとしてZookeeperを使用して、生産準備が整ったSwarmクラスタを構築することを任されています。私はこの目的のために公式の文書、https://docs.docker.com/swarm/install-manual/を使用しました。バックエンドの発見に関して私はこれを使った:https://docs.docker.com/swarm/discovery/。今私は問題があります。私は群れと通信しようとすると、私はこのエラーがあります:選ばれた主クラスタマネージャーはありません。Docker Swarm with Zookeeper - 選択されていないプライマリクラスタマネージャー
これは私の設定です:
私は私の群れマネージャと同じホストでのZooKeeper 3.4.9打ち上げで、ドッキングウィンドウのクライアント/サーバーバージョン1.12.3でのUbuntu 16.04上で実行していますよ。オン
$ docker run -d -p 4000:4000 swarm manage -H :4000 --replication --advertise <swarm-manager-ip>:4000 zk://<swarm-manager-ip>/swarm
:私は、群れのマネージャーに今1つの群れマネージャと1つの群れワーカー
各ノードのドッカーEngineのインストール後に2つのノードアーキテクチャ、
$ nohup docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock &
を使用していますswarm worker:
$ docker run -d swarm join --advertise=<swarm-worker-ip>:2375 zk://<swarm-manager-ip>/swarm
ここですべてがうまくいくかどうかを確認するには、以下のコマンドを実行します。結果は次のようになります。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
91c3864ba6ee swarm "/swarm manage -H :40" 17 hours ago Up 19 minutes 2375/tcp, 0.0.0.0:4000->4000/tcp swarm-master
に
私は群れのマスターを見ることができると私は群れノードのログを参照しようとすると、私はこの見ることができます:$ docker logs 91c3864ba6ee
time="2016-12-09T20:29:39Z" level=info msg="Initializing discovery without TLS"
time="2016-12-09T20:29:39Z" level=info msg="Listening for HTTP" addr=":4000" proto=tcp
time="2016-12-09T20:29:39Z" level=info msg="Leader Election: Cluster leadership lost"
2016/12/09 20:29:40 Failed to connect to <swarm-manager-ip>:2181: dial tcp <swarm-manager-ip>:2181: i/o timeout
time="2016-12-09T20:29:40Z" level=error msg="zk: could not connect to a server"
time="2016-12-09T20:29:40Z" level=error msg="zk: could not connect to a server"
time="2016-12-09T20:29:40Z" level=error msg="Discovery error: zk: could not connect to a server"
2016/12/09 20:29:42 Failed to connect to <swarm-manager-ip>:2181: dial tcp <swarm-manager-ip>:2181: i/o timeout
time="2016-12-09T20:29:42Z" level=error msg="Discovery error: zk: could not connect to a server"
2016/12/09 20:29:44 Failed to connect to <swarm-manager-ip>:2181: dial tcp <swarm-manager-ip>:2181: i/o timeout
time="2016-12-09T20:29:44Z" level=error msg="Discovery error: zk: could not connect to a server"
time="2016-12-09T20:29:44Z" level=error msg="Discovery error: Unexpected watch error"
2016/12/09 20:29:46 Failed to connect to <swarm-manager-ip>:2181: dial tcp <swarm-manager-ip>:2181: i/o timeout
2016/12/09 20:29:48 Failed to connect to <swarm-manager-ip>:2181: dial tcp <swarm-manager-ip>:2181: i/o timeout
time="2016-12-09T20:29:50Z" level=info msg="Leader Election: Cluster leadership lost"
2016/12/09 20:29:50 Failed to connect to <swarm-manager-ip>:2181: dial tcp <swarm-manager-ip>:2181: i/o timeout
time="2016-12-09T20:29:50Z" level=error msg="zk: could not connect to a server"
time="2016-12-09T20:29:50Z" level=error msg="zk: could not connect to a server"
を私はこれを行う
$ docker -H <swarm-manager-ip>:4000 ps -a
Error response from daemon: No elected primary cluster manager
しかし、単純なtelnetコマンドは、私の飼い猫のホストが動作していることを私に示しています。だから、群れが飼い猫発見のバックエンドに接続しようとすると、私はどのようにしてI/Oタイムアウトを取ることができますか?
あなたは古い遺産群と協力していると思いますか?バージョン1.12ではドッカーに新しい「Swarmモード」が追加されました。私はこれがアプリケーションディスカバリーのためのサポートを提供しているので、これを調べることを強くお勧めします(あなたには飼い葉桶が不要です) –
お返事ありがとうございますO'Connor。私は更新するつもりです。 –
あなたはDocker 1.12を実行しています...なぜ、あなたはまだ古いSwarmを実行しようとしていますか? Swarmを実行するために、飼い主のようなバックエンドは必要なくなりました。 –