私はたくさんの群集の容器を持っています(現在、単一のホストにありますが、マルチノードの群に適合するマルチホストシステムです)。このシステムは、データサーバと、サーバによって受信されたビットを処理し、結果を取り込む自律型ワーカーの集合で構成される。入力データの取得と出力データの取り込みは、HTTP GET/POSTを使用して行われます。サーバー側(データ提供と結果受信)は動作し、Dockerなしで任意のホストで動作しているワーカーに対してテストすると、問題なく実行されます。しかし、私はこれらの労働者をドッカー集団に入れる必要があります。Docker:サーバーに接続している作業員を集めよう
私が達成できないのは、さまざまな隊員と外部サーバーとの通信です。私のサーバーは、いくつかのフォーラムで掘った後、ポート8080
python test-dataserver.py -H 10.69.180.30 -p 8080
で、IP 10.69.180.30を持つホストで実行されて、私は--subnet 10.69.180.0/24でオーバーレイネットワークを作成しようとしました、その後、このネットワークに接続されたワーカーのサービスを別のホストに開始します。しかし、方法はありません。この単純な例では
docker network create --driver overlay --subnet 10.69.180.0/24 mynet
docker service create --network mynet --name mysrv --replicas 4 \
centos curl http://10.69.180.30:8080/get_task
私は労働者を呼び出すちょうどcurl
サーバーとget_task
ノードのアドレスにしないでください。実行するタスクに関する情報を含むJSON
文字列を返します。しかし、サーバー側では私は何の要求も受けていません。
私はネットワークの専門家ではないので、私は些細な何か...欠けているかもしれません(ちなみに、私は最初に成功せず、同じことをしようとしましたが、同じホストで実行されているサーバーを持つ。)
この設定が可能かどうか知っていますか?私はこの仕事をするためのヒントを非常に感謝します...
ありがとうございます!
しかし、swarm createコマンドで '--add-host'オプションを使用できますか?私はそれが_traditional_コンテナでのみ利用可能だと思った。少なくとも私のシステムでは動作しません... – aardalath
間違いなく、動作します!つまり、 '/ etc/hosts'ファイルにサーバのIPが含まれるように画像を変更すると、通信が確立されます。さて、私は同じことを達成したいと思いますが、容器のイメージを調整する必要はありません... – aardalath