Docker Swarm 1.2.0の新バージョンをテストし、特に再スケジュール機能をテストします。docker swarm 1.2.0ポートマッピングを使用した再スケジュール
私はswarm managerがインストールされた1台のEC2VMと2台のswarmエージェントを持っています(他の2台のEC2VM上にあります)。
docker -H :4000 run -d -p :81 -e reschedule:on-node-failure myTestService
このコマンドラインは正常に動作し、一つのノード(ノード1)に私のテストサービスを展開:私は、私はこのような群れを通じて展開HTTP RESTサービスを持っています。 私は私のコンテナが1つのノードに配備見るドッキングウィンドウのPS実行する場合:ポートマッピングで
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
23ce231b5737 myTestService "/nodejs/bin/npm star" 3 minutes ago Up 3 minutes 0.0.0.0:32768->81/tcp distracted_sinoussi
ルック:0.0.0.0:32768->81/tcp私は、ドッキングウィンドウエンジンがホスト上で使用可能なポートを選択してみましょう(32768)。
ここでnode-1をシャットダウンすると、swarmは自分のコンテナを再スケジュールする必要があります。最後の行で
time="2016-04-19T13:56:31Z" level=info msg="Initializing discovery without TLS"
time="2016-04-19T13:56:31Z" level=info msg="Listening for HTTP" addr=":4000" proto=tcp
time="2016-04-19T13:56:38Z" level=info msg="Registered Engine ip-node-1 at ip.node.1:2375"
time="2016-04-19T13:56:45Z" level=info msg="Registered Engine ip-node -2 at ip.node.2:2375"
time="2016-04-19T13:58:24Z" level=error msg="Flagging engine as unhealthy. Connect failed 3 times" id="ZSWT:XLYS:D2HA:K5J3:O32D:AFVT:HUNR:ENKI:MBTC:2PVA:JIC2:X74L" name= ip-node-1
time="2016-04-19T13:58:24Z" level=error msg="Error monitoring events: unexpected EOF." id="ZSWT:XLYS:D2HA:K5J3:O32D:AFVT:HUNR:ENKI:MBTC:2PVA:JIC2:X74L" name= ip-node-1
time="2016-04-19T13:58:24Z" level=error msg="Restart event monitoring." id="ZSWT:XLYS:D2HA:K5J3:O32D:AFVT:HUNR:ENKI:MBTC:2PVA:JIC2:X74L" name= ip-node-1
time="2016-04-19T13:58:24Z" level=error msg="Error monitoring events: Get http://ip.node.1:2375/v1.15/events: dial tcp ip.node.1:2375: getsockopt: connection refused." id="ZSWT:XLYS:D2HA:K5J3:O32D:AFVT:HUNR:ENKI:MBTC:2PVA:JIC2:X74L" name=ip-node-1
time="2016-04-19T13:58:24Z" level=info msg="Rescheduled container 23ce231b57375a386909175f3dcd730720429eb4ed41d4366d5add17a30d210e from ip-node-1 to ip-node-2 as c7fe68332bc61f0f4c498848e59d3e34b58821468ce65bd4ebc92055156d5b8c"
、我々はコンテナがノード2に再スケジュールされていることを確認することができます:私は群れのログを見ると、私はこれを持っています。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c7fe68332bc6 myTestService nodejs/bin/npm star" 27 seconds ago Created sleepy_hopper
ので、コンテナがなく(単に「作成」)が実行されていると、ポートマッピングが空である:ファイン、ノード-2に少しドッキングウィンドウのpsコマンドを行うことができます。
ここで何が問題になりますか?
ありがとうございました
をテストされた...しかし
再スケジュール後に別の場所で再起動してください。あまりにも悪くないですか? –
はい、同意しますが、現在の実装は次のようなものです - [watchdog.go](https://github.com/docker/swarm/blob/master/cluster/watchdog.go#L86)再スケジュールポリシーのために、またはコンテナが最初に起動した場合にコンテナを起動する必要があります。--restart = always –