2017-10-30 5 views
1

私はデジタル海洋雲に2台のマシンを持っています。 188.226.167.12,146.185.135.232。 私のアプリケーションは、ホストの名前を表示します。Dockerは単一ノードへのリクエストを要求します

各ノードには、私のサービスの単一のレプリカが含まれています。 http://188.226.167.12:8080/またはhttp://146.185.135.232:8080/に複数回アクセスすると、ホスト名は変更されません。

これは、要求のロードバランシングがないことを意味します。

ドッキングウィンドウ-compose.yml:

version: "3" 
services: 
    web: 
    image: stavalfi/projecty:latest 
    deploy: 
     replicas: 2 
     restart_policy: 
     condition: on-failure 
    ports: 
     - "8080:8080" 
    networks: 
     - webnet 
networks: 
    webnet: 

は、どのように私は私のリクエストのためのロードバランサを行うことができますか?

+0

あなたのノードのIPアドレスは、インターネット上で公開されています。彼らの敏感なアプリケーションは、私はすぐにそれらを変更することをお勧めします –

+0

私が説明したように、そのコンピュータの名前を表示するためのアプリケーション。ここでは何も敏感ではない。 –

+0

これはLinuxホストであることを確認できますか? 'docker stack deploy'または' docker-compose up'でデプロイしましたか? – BMitch

答えて

1

RRロードバランシングは、オーバーレイネットワークである入力ネットワーク上で実行されます。あなたが必要とするネットワークのオーバーレイのための3つのポートが開か:

  • 7946/TCP(コントロール)
  • 7946/UDP(コントロール)
  • 4789/UDP(データ)カバーの下

、これをLinuxではVXLANです。あなたはオーバーレイネットワーク上のIPSecを有効にする場合は、iptablesのCLIでプロトコル50を必要とし、これは次のようになります。

iptables -A INPUT -p tcp -m tcp --dport 7946 -j ACCEPT 
iptables -A INPUT -p tcp -m udp --dport 7946 -j ACCEPT 
iptables -A INPUT -p tcp -m tcp --dport 4789 -j ACCEPT 
iptables -A INPUT -p 50 -j ACCEPT 

あなたは、さらにドッキングウィンドウのノード間の接続を許可するだけにそれらの規則を制限することができます。

関連する問題