2017-10-06 8 views
0

通信にHTTP(後でHTTPSが使用される)を使用するいくつかのサービスを持つマイクロサービス配備(配備ファイルhttps://github.com/mojlighetsministeriet/groups/blob/master/docker-compose.example.yml)ネットワークの外部に露出することなく内部的に使用できます。後で、特定の機能を公開するプロキシサービスを追加します。私は、ドッキングウィンドウの群れモードと特異的にこれをしたいと私は私が開始できるように、ドッキングウィンドウ-compose.ymlでの展開を定義する可能性を好む:Docker swarmモード。内部的には一意のドメイン名を持つ複数のサービスがそれぞれポート80に接続されています。

$ docker stack deploy my-platform -c docker-compose.example.yml 

私がGET http://identity-provider/public-keyようになり、内部APIのURLをしたいですおよびGET http://groups/b0c44674-58e0-4a8a-87e0-e1de35088964。以前はKubernetesの設定でこれをやっていましたが、これはうまくいきましたが、今はドッカーの集団モードで動作させたいと思っています。

DNSの部分は問題なく動作しますが、ドッカーの集団モードでは、各サービスがポート80でリッスンすることはできません(後で443になります)。各サービスには、アイデンティティプロバイダやグループなどの固有のドメイン名があるにもかかわらず、ポートの競合について不平を言っています。

これを行うには特定のネットワークドライバを使用する必要がありますか?私は現在、オーバーレイを使用しています。

ランダムなポートなしでドメイン名を使用すると、サービス間の呼び出しが、たとえば、 http://identity-provider:1234およびhttp://groups:1235の場合、ポートは設定を複雑にします。

何らかの形で役立つ場合は、ドッカーの最先端のバージョンを使用しても問題ありません。

これは可能でしょうか?

答えて

1

Docker Swarmはパブリッシュされたポートに基づいて着信要求をルーティングしますが、単一のSwarmに同じポート番号を持つ2つのアプリケーションを持つことはできません。

+0

各サービスに固有のDNSレコードがあるため、各サービスも一意のIPを持つと仮定し、複数のサービスを同じポート上で異なるIPアドレスで公開できると仮定していたと思います。 – Tirithen

関連する問題