文脈のために、私はこのセットアップを持っています:
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 リクエスト (同じ接続) をラウンドロビンする方法を知っている人はいますか?
ありがとう