2016-12-02 13 views
1

新しいバージョンのRancherでは、インフラストラクチャに新しいノードを追加すると、ドッカーSWARM(1.12+)にコンテナを再配布するよう指示できますか?新しいノードを追加した後のスワームの再スケジューリング

5つのノードを追加すると、各ノードに4つのコンテナを持つようにコンテナを再配布したいと思います。

ノードがクラッシュするか、シャットダウン(クラスタの規模を縮小)すると、再スケジューリングがトリガされますが、1つ以上のノードを追加してスケールアップすると何も起こりません。

答えて

1

これは現在できません。あなたができることは、docker service updateでサービスを更新しています(つまり、環境変数を追加することによって)

ドッカー1.13に入ってくる新しい機能は、サービスを更新し、ノードの再配布を強制しますので、docker service update --force $(docker service ls -q)のようなものが可能かもしれません(まだ試していないので、まだ確認できません)。

あなたは、私は正確に同じ問題を抱えていたこのblogpost

0

にこの機能の詳細情報を見つけることができます。しかし、新しいノードを追加するのではなく、ノード間の共有ストレージにノード障害が発生しました(共有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') 

私はこれが役に立てば幸い!

関連する問題