1

文脈のために、私はこのセットアップを持っています:

        istio mesh                    external service
          grpc            |        grpc                     2 * istances
app:client -> envoy ->    |     aws classic load balance -> app:server 

2 つのサンプル アプリケーション (クライアントとサーバー) を取得しました。クライアントは grpc 永続接続を介してサーバーに要求を送信し、サーバーはプライベート IP を返します。

私はそれを機能させましたが、クライアントは 2 つのインスタンス間のラウンド ロビンではなく、常に同じアプリケーションにリクエストを送信しています。

ラウンド ロビンは、シナリオがメッシュ内で発生する場合に機能しますが、外側では機能しません。ドキュメントを見て何かを見つけようとしましたが、例はすべてmysqlサーバーに関するものです。

アプリケーションが envoy への接続を指している (envoy が aws elb への接続をプロキシするように構成されている) だけで、istio なしでテストを行い、ラウンドロビンが発生しました。istio がトラフィックを制御しているときに、なぜこれが起こらないのかわかりません。

問題は、istio の外部サービスに対する grpc リクエスト (同じ接続) をラウンドロビンする方法を知っている人はいますか?

ありがとう

4

1 に答える 1