2017-06-12 8 views
0

ドッカーマネージャーを作成しました。サービスを作成し、同じサーバー内の5つのインスタンスにスケールアップしました。Docker swarm - 新規ワーカーを追加 - サービスの規模を変更する

2人の作業者を追加しました。今、3つのノードに5つのアプリケーションインスタンスをどのように再配布しますか?

初めからすべてをやり直す必要はありませんか?

docker service scale id=5です。それは正しい方法ですか?私はすでに存在するインスタンスを再起動したくありません。それは私がdocker swarm leaveによってクラスタから1つのノードを削除ノード1

docker service update servicename

で再起動します。私はサービスを更新しました。すべてのインスタンスが残りのノード内に複製されます。

嬉しいですが、アップデートが期待通りに機能しました。しかし、別のひねりがあります。

ノードを戻しました。その後、サービスを更新しました。今、私のインスタンスはすべて前のケースと同じように動作しています。新しいノードは使用しません。

どのように動作しますか?

答えて

0

再配布するには、サービスを破棄して再作成する必要はありませんが、コンテナはローリングアップグレードですべてバウンスされます。コマンドは、ノードを追加または削除する場合、電流と目標状態との間の差がある場合、ドッカーのみ再スケジュールしますdocker service update --force $service_name


あります。上記の更新コマンドを実行するまで、実行中のコンテナを早期に削除して新しいノードを再スケジュールすることはありません。

+0

ありがとうございました。編集した質問をご覧ください。 –

+0

最終的な説明、現在の状態とターゲットの状態はどういう意味ですか?それはイメージやサービスに関連していますか? '実行中のコンテナを早期に殺して、新しいノード上で再スケジュールするのではなく、上記の更新コマンドを実行するまでは' --force update'を実行すると実行中のコンテナを強制終了し、HAを確保するために再スケジュールします。私は正しい? –

+0

フォースアップデートでは、サービスのローリングアップデート、コンテナの再起動、およびリバランシングが行われます。現在の状態は現在実行中のもので、ターゲット状態はサービス内の定義です。 – BMitch

関連する問題