2016-10-28 14 views
1

ドッカースウォームモードを使用していくつかの問題があります。ドッカースウォームモードでの高可用性

私は、スターンモードで高可用性を確保したいと考えています。 私は群れのローリングアップデートでそれを行うことができると思います。このような

何か...

docker service update --env-add test=test --update-parallelism 1 --update-delay 10s 6bwm30rfabq4 

は、しかし問題があります。 ドッキング・イメージにエントリーポイントがあります。このため、サービス(私はドッカーのコンテナを意味する)が本当に上になるまで少し遅れがあります。しかし、ドッキングサービスは、コンテナのステータスが「アップ」であるため、サービスが既に実行されていると考えているだけです。サービスさえ、まだ進出に向けていくつかの仕事をしています。そのため、サービスに接続しようとすると、コンテナによってエラーが返されることがあります。

たとえば、「test」という名前のドッカーサービスを作成し、ポート8080で4まで拡張できます。ウェブブラウザでtest:8080にアクセスできます。そして、私は--update-parallelism 1 --update-delay 10sのオプションでローリングアップデートしようとしています。その後、私はサービスを再び接続しようとしました..一つのコンテナがエラーを返しました.. Dockerサービスはコンテナがすでに実行されていると思うので、コンテナはまだエントリーポイントのためにアップしていません。そして、10秒後に別のコンテナがエラーを返します。更新が開始され、ドッカーサービスもコンテナがすでに起動していると思うためです。

です。この問題を解決するソリューションはありますか? エラーコンテナへの接続を切断し、別のものに再接続するためのnginx設定をいくつか行う必要がありますか?

+0

'--update-delay'をより大きな値に増やしてみましたか? –

答えて

1

HEALTHCHECK Dockerfileコマンドは、この使用例で使用できます。 Dockerがコンテナが利用可能かどうかを確認する方法を指定し、更新中に使用され、Swarmのサービスレベルをチェックします。

ここには良い記事があります:Reducing Deploy Risk With Docker’s New Health Check Instruction

+0

これは私が探しているものです! –

関連する問題