問題タブ [envoyproxy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
kubernetes - Istio (1.0) 内 ReplicaSet ルーティング - Kubernetes デプロイメント内のポッド間のトラフィックをサポート
Istio は、同じサービス (より具体的には ReplicaSet) 内のポッド間の IP ベースのルーティングをどのようにサポートしますか?
Istio メッシュ内でレプリカ > 1 の Tomcat アプリケーションをデプロイしたいと考えています。このアプリは、JGroups を使用して通信とクラスタリングを整理する Infinispan を実行します。JGroups はそのクラスター メンバーを識別する必要があり、その目的のために KUBE_PING (JGroups の Kubernetes 検出プロトコル) があります。kubectl get podsに匹敵するルックアップで K8S API を調べます。クラスター メンバーは、他のサービスのポッドと同じサービス/デプロイ内のポッドの両方になることができます。
私たちの問題はかなり特定のニーズによって推進されていますが、トピックは一般的です。ポッドがレプリカ セット内で相互に通信できるようにするにはどうすればよいですか?
例: ショーケースとして、デモ アプリケーションhttps://github.com/jgroups-extras/jgroups-kubernetesをデプロイします。関連するものは次のとおりです。
Istioなしで実行すると、3 つのポッドが互いを検出し、クラスターを形成します。my-istio-namespaceでIstioと同じものをデプロイし、基本的な Service 定義を追加します。
以下の出力は幅が広いことに注意してください。IP を取得するには、右にスクロールする必要がある場合があります。
https://istio.io/help/ops/traffic-management/proxy-cmd/#deep-dive-into-envoy-configurationに従って、ポッドの 1 つの Envoy conf の結果を見てみましょう。
Istio doc では、上記のリスナーについて次のように説明しています。
関連する IP:PORT ペアのアウトバウンドの非 HTTP トラフィックをリスナーから受信します
0.0.0.0_15001
これはすべて理にかなっています。Pod ispn-perf-test-558666c5c6-g9jb5は 10.44.4.63 で自身に到達し、10.41.13.74 経由でサービスに到達できます。しかし...ポッドがパケットを 10.44.4.64 または 10.44.3.22 に送信するとどうなるでしょうか? これらの IP はリスナー間に存在しないため、2 つの「兄弟」ポッドはispn-perf-test-558666c5c6-g9jb5 では到達できません。
今日、Istio はこれをサポートできますか?