2017-09-19 19 views
0

docker swarmまたはアプリケーションの一部を実装し始めています。これらの部分のうちの1つは、特定のユーザーに "ライブ"コンテンツをプッシュできるWebソケットサーバーです。docker swarmのすべてのインスタンスにアクセス

私の質問は、オーバーレイネットワーク上で負荷分散されたものではなく、特定のコンテナを休憩したい場合です。もしそうなら、私はそれをどうやってやりますか?

おかげ

ベン

+0

Swarmがあなたのようなユースケースに該当するかどうかはわかりません。あなたのコンテナをいくつかのレプリカで展開/ロードバランスさせ、必要に応じてSwarmがコンテナの移転を管理できるようにしますか?このような動的な振る舞いを望むように、ユースケースは聞こえません。 – gesellix

+0

保留したい保留中の接続について、特定のコンテナまたはその他のものにリクエストを送信することについて問題がありますか? – gesellix

+0

私はロードバランス "プロキシ"を持っています - そのコンテナに接続されているクライアントに何かを渡すために、実行中の各インスタンスにAPIコールを送信したい –

答えて

1

私が正しくあなたのユースケースを理解している場合、次の例では、始めに役立つかもしれません。あなたがのためにすべてのタスクを見つけることができるコンテナ内

docker run --rm -it --network nginx alpine:edge ash 

docker network create --driver overlay --attachable nginx 
docker service create --name nginx --network nginx --replicas 3 nginx:alpine 

あなたはnginxのネットワークに接続された容器を実行することができます:オーバーレイネットワークと複数のレプリカとサービスを考えると

apk add -U drill 
drill tasks.nginx 

応答には次のようなものが含まれている必要があります。simiこれからは

... 
;; ANSWER SECTION: 
tasks.nginx. 600 IN A 10.0.1.3 
tasks.nginx. 600 IN A 10.0.1.4 
tasks.nginx. 600 IN A 10.0.1.5 
... 

本当に添付可能なネットワークと単一のコンテナは必要ありません。あるいは、nginxのような同じネットワークに別のサービスを作成して、そのサービスがtasks.<service-name>検索を実行して必要なアクションを実行できるようにすることもできます。

+0

そこにIPを使用して正確なコンテナにアクセスできますか? –

+1

私はswarmの主要なデザインの周りに何かしようとしていると思う - 私は今見ようと思っている、パブ/サブのためにredisまたは同様のものを使用していると、すべてのプロキシをredisに接続して特定のチャンネルを購読する - すべてのコンテナに単一のコマンドを送信したいときは、そこに公開するだけです。 –

+0

ありがとう、これは私が必要としていたものです! –

関連する問題