2016-08-01 6 views
2

ManagerバージョンDocker version 1.12.0-rc5, build a3f2063Docker1.12ワーカークラスタに参加することはできません:

ワーカーバージョンDocker version 1.12.0-rc5, build a3f2063を(スウォーム保留中)。

作成さスウォームマネージャ:

docker swarm init --advertise-addr "172.25.30.2:4243" 

    Swarm initialized: current node (3kmewyb10p8xj3ke5rpjyw4s8) is now a manager. 

    To add a worker to this swarm, run the following command: 
     docker swarm join \ 
     --token SWMTKN-1-5lwzvv7au6hosiqqmdwmcxvmlmhtz4ts04jsg06284fq3posn0-enq26dqnwma38ij48hymtnioq \ 
     172.25.30.2:4243 

    To add a manager to this swarm, run the following command: 
     docker swarm join \ 
     --token SWMTKN-1-5lwzvv7au6hosiqqmdwmcxvmlmhtz4ts04jsg06284fq3posn0-85cwe5pf779qw0knjn6wxdbim \ 
     172.25.30.2:4243 

その後、私は労働者docker info

time="2016-08-01T00:22:47.449844174-07:00" level=warning msg="failed to retrieve remote root CA certificate: rpc error: code = 1 desc = context canceled" 
time="2016-08-01T00:22:47.449962215-07:00" level=warning msg="failed to retrieve remote root CA certificate: rpc error: code = 1 desc = context canceled" 
time="2016-08-01T00:22:47.450025342-07:00" level=warning msg="failed to retrieve remote root CA certificate: rpc error: code = 1 desc = context canceled" 
time="2016-08-01T00:22:47.450081950-07:00" level=warning msg="failed to retrieve remote root CA certificate: rpc error: code = 1 desc = context canceled" 
time="2016-08-01T00:22:47.450142443-07:00" level=warning msg="failed to retrieve remote root CA certificate: rpc error: code = 1 desc = context canceled" 
time="2016-08-01T00:22:47.450202836-07:00" level=error msg="cluster exited with error: rpc error: code = 1 desc = context canceled" 
time="2016-08-01T00:23:31.351868722-07:00" level=error msg="Handler for POST /v1.24/swarm/join returned error: Timeout was reached before node was joined. Attempt to join the cluster will continue in the background. Use \"docker info\" command to see the current swarm status of your node." 

でログをチェックして、私は "保留スウォーム" を見た労働者

docker swarm join --token SWMTKN-1-5lwzvv7au6hosiqqmdwmcxvmlmhtz4ts04jsg06284fq3posn0-enq26dqnwma38ij48hymtnioq 172.25.30.2:4243 
    Error response from daemon: Timeout was reached before node was joined. Attempt to join the cluster will continue in the background. Use "docker info" command to see the current swarm status of your node. 

を作成しました

私もdocker swarm updateをやった!それでも、作業員はクラスタに参加できませんでした。だから、どのように私はアンインストール&は、設定ファイルを削除してからバージョンDocker version 1.12.0, build 8eab29eで再びドッキングウィンドウ1.12をインストール

UPDATE-1

をresloveすることができます。 /var/logs/upstat/docker.logs

time="2016-08-01T11:22:08.629760770-07:00" level=error msg="Handler for POST /v1.24/swarm/join returned error: Timeout was reached before node was joined. Attempt to join the cluster will continue in the background. Use \"docker info\" command to see the current swarm status of your node." 

おかげで別のエラーで:

スティル(docker infoに「保留中スウォームを」に参加し、することはできません)同じ問題に直面して。

+3

明らかに、私は同じ問題がありました。私にとっての解決策は、労働者の日程を修正することでした。明確にするために、労働者の日付は正しくありませんでした(古い日付でした)。私は労働者にNTPサーバーを使用させ、問題を解決しました(私は推測します)。私は解決策としてそれを書いていません。何が起こっているのか十分に理解していないからです。私はそれが私のために働いたことを知っています。 –

+1

同じ問題がありました。おそらく、生成されたトークン(クラスタへの参加)は時間に依存するからです。 – lvthillo

+1

私は同じ問題を抱えていました。 @ IntiGonzalez-Herreraの日付/時間の言及が解決策でした。私はここでいくつかのファイアウォールの問題のためにNTPサーバをセットアップすることができませんでしたが、少なくとも私のワーカーをマネージャに同期させるためにNTPを使用できると想像してください。私がswarmのテストに使った簡単な解決策は、時刻を日付と同期させることでした--set = "$(ssh user @ server date)" –

答えて

3

問題は、間違った「ポート」(出力に表示されるdocker swarm init)と結合しようとしていたことです。

1) "docker swarm init"の前に、ポート "4243"でのみ動作しているドッカーです。私はnetstat -tulp | grep dockerとチェックした。だから、私はその港で広告しました!

[email protected]:~# netstat -tulpn | grep docker 
tcp6  0  0 :::4243     :::*     LISTEN  8750/dockerd 

[email protected]:~# docker swarm init --advertise-addr "172.25.30.2:4243" 
Swarm initialized: current node (exvwgj0pu4cd124ljnblt9xff) is now a manager. 

To add a worker to this swarm, run the following command: 
    docker swarm join \ 
    --token SWMTKN-1-5j9mpo8hepue6g1sjdas33thr92w1o9hlef5auwqpbxs3glt39-6zomhgu204m9alq51f632nzas \ 
    172.25.30.2:4243 

To add a manager to this swarm, run the following command: 
    docker swarm join \ 
    --token SWMTKN-1-5j9mpo8hepue6g1sjdas33thr92w1o9hlef5auwqpbxs3glt39-axhgqgo4jqw4hv38x578m44wh \ 
    172.25.30.2:4243 

2)docker swarm init後、ドッカーポート2377netstat -tupln | grep docker)を含む4ポートで実行されています。ポイント1では

[email protected]:~# netstat -tulp | grep docker 
tcp6  0  0 [::]:2377    [::]:*     LISTEN  8750/dockerd  
tcp6  0  0 [::]:7946    [::]:*     LISTEN  8750/dockerd  
tcp6  0  0 [::]:4243    [::]:*     LISTEN  8750/dockerd  
udp6  0  0 [::]:7946    [::]:*        8750/dockerd 

、労働者にポート4243docker swarm joinを実行するように指示されます。前に私はそれのように走った!(それは働かない!)

後で私はdocker swarm leaveをし、ポートと結合した。今私は参加することができます!

docker swarm join --token SWMTKN-1-5j9mpo8hepue6g1sjdas33thr92w1o9hlef5auwqpbxs3glt39-6zomhgu204m9alq51f632nzas 172.25.30.2:2377 
1

私の場合、ポートはファイアウォールルールのためにブロックされていましたが、同様の問題に直面していました。

+0

あなたは新しいユーザーだから、答えの代わりにコメントすることはできませんでしたが、あなたが解決した問題と同じ問題で他の人がこのスレッドに遭遇した場合に備えて、あなたが見つけた詳細な解答を提供してください。 [回答方法​​](https://stackoverflow.com/help/how-to-answer)を参照してください。 –

+0

ありがとう、私は他のソリューションを試して、私の問題はこれに煮詰まった。ファイアウォールを開くとすぐにすべてが機能しました。 – Luke101

+0

iptablesをフラッシュして解決する – AJN

0

私は同じ問題を抱えていました。 Azureでcoreos vmsを実行していました。私はすべての私のvmsが同じプライベートIPアドレスと異なるパブリックIPアドレスを持っていることを知りました。これは、通常、vmsが同じセキュリティグループの一部である場合に発生しますが、今回はそうではありませんでした。問題はアカウントが最大限のリソースに達していたため、IPアドレス、nsg、ネットワークなどのリソースを削除した後、新しいvmsを再プロビジョニングしました。私のドッカーのバージョンは1.12.6

0

私のためにファイアウォールも問題でした。

  1. Iはマネージャノードにpingを実行しようとし

  2. がポートはTelnetを使用して開いている場合はチェックして接続することができなかった、それがポートの問題であった考え出しバック

    にpingを実行しました。

ポートが簡単にfirewalldに

チェックを使用して開くことができますよりも、firewalldはあなたが

をしたいポートを開く

sudo firewall-cmd --state 

を実行している場合は、CentOSにを実行している場合

sudo firewall-cmd --zone=public --add-port=2377/tcp 

接続しようとしているノードポートごとにポートを変更します。

関連する問題