第3章 ゲートウェイ経由で送信トラフィックを誘導する
Istio API を使用すると、ゲートウェイインジェクションを使用してインストールされたゲートウェイプロキシーを設定して、外部サービスに送信されるトラフィックを誘導できます。
3.1. ゲートウェイ経由での Egress トラフィックの誘導について リンクのコピーリンクがクリップボードにコピーされました!
サービスメッシュから出るトラフィックの出口ポイントとして、ゲートウェイインジェクションによってインストールされたゲートウェイを設定できます。メッシュの外部のサービスに送信されるリクエストの転送プロキシーとして機能します。
- Egress ゲートウェイ
Egress ゲートウェイは、サービスメッシュから出るトラフィックの出発点として設定され、外部サービスに送信される要求の転送プロキシーとして機能します。セキュリティー要件を満たすように Egress ゲートウェイを設定できます。
- トラフィック制限: トラフィック制限が厳しい環境では、Egress ゲートウェイにより、すべての送信トラフィックが専用のノードセットを通過するようになります。
- ネットワークポリシーの適用: ネットワークポリシーによってアプリケーションノードが外部サービスに直接アクセスできない場合、Egress ゲートウェイが外部アクセスを処理します。
このようなシナリオでは、ゲートウェイプロキシーは、外部サービスにアクセスできる専用の Egress ノードにデプロイされます。これらのノードは、その後、セキュリティー強化のために厳格なネットワークポリシーの適用や追加のモニタリングを受けることができます。
- Egress トラフィックの設定
次の Istio リソースを組み合わせることで、ゲートウェイインジェクションを通じてインストールされたゲートウェイを設定し、出力トラフィックを送信できます。
-
ServiceEntryリソースを使用して、外部サービスのプロパティーを定義します。外部サービスはメッシュの Istio サービスレジストリーに追加され、これにより、監視やルーティングルールなどの Istio 機能を、外部サービス宛てのメッシュから出るトラフィックに適用できるようになります。 -
Gateway、VirtualService、およびDestinationRuleリソースを使用し、ゲートウェイプロキシーを使用してメッシュから外部サービスにトラフィックをルーティングするルールをセットアップします。
-
- アンビエントモードでの出力ルーティング
デプロイメントでアンビエントモードを使用する場合は、Istio
GatewayおよびVirtualServiceリソースではなく、Kubernetes Gateway API を使用して Egress ルーティングを設定する必要があります。Kubernetes Gateway API は、トラフィックがメッシュを出て外部サービスに到達する方法を定義するための標準化された Kubernetes ネイティブメソッドを提供します。GatewayおよびHTTPRoute(またはGRPCRoute) リソースを使用して、メッシュトラフィックをクラスター外部の宛先にルーティングする方法を制御できます。ゲートウェイ API はアンビエントモードで完全にサポートされており、サイドカーベースのデプロイメントでも使用できるため、Ingress と Egress ルーティングの両方に一貫した設定モデルが提供されます。