2017-09-19 11 views
0

Kubernetesネットワークに関する質問があります。kubernetesクラスタへのトラフィックのルーティング

は私がmicroserviceを持っている(たとえばnumcruncherpod)ポート9000経由の要求にサービスを提供しているポッドで実行している、と私は、このサービスが露出するタイプNodePortnumcrunchersvc)とノードポートの対応サービスを作成しているがあります30900

私クラスタは、次のIPを持つ3つのノードがあります。

  1. 192.168.201.70、
  2. 192.168.201.71
  3. を192.168.201.72

私は自分のクラスタにトラフィックをルーティングしますリバースプロキシ(nginx)を介して。私がnginxで理解しているように、トラフィックをクラスタにルーティングするためにこれらのクラスタノードのIPを指定する必要がありますが、私の理解は正しいですか?

nginxはクラスタの知識がないので、トラフィックを送信するクラスタノードを決定するのに良い判断ではないかもしれません。それで、私のkubernetesクラスタにトラフィックをルーティングするより良い方法はありますか?

PS:クラウドプラットフォームでクラスタを実行していません。

+0

あなたの質問から、nginxに、ノードが与えられていることを知ってほしいということを理解しています。 –

+1

@JavierSalmeron正確ではありません。 nginxからのトラフィックがいずれかのノードに当たっても、対応するポッドにルーティングされます(ポッドがそのノードで実行されていなくても)が、それは余分なホップになります。だから私の推測では、LB自体がクラスターの一部であると推測されます(サービスタイプIngressを使用すると良いでしょう)。 – sateesh

答えて

0

修正。 K8の下請けの一部またはすべてにトラフィックをルーティングできます。 K8ネットワーク層は、必要に応じて適切なミニオンに転送します。

たとえば、単一のポッドしか実行していない場合、nginxはほとんどの場合、要求をラウンドロビンします。リクエストがポッドが走っていないミニオンにぶつかった場合、リクエストはポッドが走っているミニオンに転送されます。

3つのポッドを実行する場合、各ミニオンに1つずつ、要求はnginxから要求を受け取ったミニョンによって処理されます。

各ミニオンで複数のポッドを実行する場合、要求は各ミニオンにラウンドロビンされ、そのミニオン上の各ポッドにラウンドロビンされます。

関連する問題