新しいバージョンのRancherでは、インフラストラクチャに新しいノードを追加すると、ドッカーSWARM(1.12+)にコンテナを再配布するよう指示できますか?新しいノードを追加した後のスワームの再スケジューリング
5つのノードを追加すると、各ノードに4つのコンテナを持つようにコンテナを再配布したいと思います。
ノードがクラッシュするか、シャットダウン(クラスタの規模を縮小)すると、再スケジューリングがトリガされますが、1つ以上のノードを追加してスケールアップすると何も起こりません。
新しいバージョンのRancherでは、インフラストラクチャに新しいノードを追加すると、ドッカーSWARM(1.12+)にコンテナを再配布するよう指示できますか?新しいノードを追加した後のスワームの再スケジューリング
5つのノードを追加すると、各ノードに4つのコンテナを持つようにコンテナを再配布したいと思います。
ノードがクラッシュするか、シャットダウン(クラスタの規模を縮小)すると、再スケジューリングがトリガされますが、1つ以上のノードを追加してスケールアップすると何も起こりません。
これは現在できません。あなたができることは、docker service update
でサービスを更新しています(つまり、環境変数を追加することによって)
ドッカー1.13に入ってくる新しい機能は、サービスを更新し、ノードの再配布を強制しますので、docker service update --force $(docker service ls -q)
のようなものが可能かもしれません(まだ試していないので、まだ確認できません)。
あなたは、私は正確に同じ問題を抱えていたこのblogpost
にこの機能の詳細情報を見つけることができます。しかし、新しいノードを追加するのではなく、ノード間の共有ストレージにノード障害が発生しました(共有NFSストレージを使用して読み取り専用コンフィグレーションのマウントポイントを共有していました)。
Dockerバージョン17.05.0-ce、build 89658beのバージョンで、ドッカーサービスのアップデート--force $(ドッカーサービスls -q)が機能しません。
scale-up.sh:
#!/bin/bash
echo "Enter the amount by which you want to scale your services (NUMBER), followed by ENTER: "
read SCALENUM
for OUTPUT in $(docker service ls | awk '{print $2}' | sed -n '1!p')
do
echo "Scaling up "$OUTPUT" to "$SCALENUM
docker service scale $OUTPUT=$SCALENUM
done
scale-down.sh:2番目のスクリプトは、それが使用できなくなって、サービスを縮小することを
#!/bin/bash
for OUTPUT in $(docker service ls | awk '{print $2}' | sed -n '1!p')
do
echo "Scaling down "$OUTPUT" to 0"
docker service scale $OUTPUT=0
done
注意。これは独立して、典型的なドッキングウィンドウサービスのlsコマンドで他の列のサービス名をプリントアウトして、あなたはまた、あなたが必要とするその他のスクリプトのための出発点として、次のコマンドを使用することができます。
$(docker service ls | awk '{print $2}' | sed -n '1!p')
私はこれが役に立てば幸い!