デプロイメントアーキテクチャ
Istioサービスメッシュは、論理的にコントロールプレーンとデータプレーンのコンポーネントに分割できます。データプレーンは、サービスメッシュのインスタンス間のネットワークトラフィックを管理するプロキシのセットで構成されています。コントロールプレーンは、データプレーンの動作を制御する構成を生成およびデプロイします。
Istioアーキテクチャとさまざまなコンポーネントの詳細については、Istioドキュメントを参照してください。
NetScalerとIstioコントロールプレーンコンポーネントの統合
Istioコントロールプレーンは、gRPCベースのサービス群であり、データプレーンでリッスンしているクライアントに構成変更をプッシュします。Pilot、Mixer、Galley、Citadelは重要なコントロールプレーンコンポーネントです。これらのコンポーネントのうち、データプレーンプロキシは主にPilotとCitadelと対話する必要があります。
PilotはgRPCベースのxDSサーバーであり、プロキシに構成データを提供します。NetScalerは、IstioサービスメッシュにNetScalerをインストールするために、Istioコントロールプレーンと通信するための
xDS-adapterというxDSクライアントを提供します。これは、コントロールプレーンAPIサーバーへのgRPCクライアントとして機能し、更新をリッスンします。コントロールプレーンからの更新に基づいて、NetScaler xDSアダプターは同等のNetScaler構成を生成します。その後、それに応じてNetScalerインgressまたはプロキシデバイスを構成します。
Citadelは、キーと証明書の管理を提供するコントロールプレーンサービスです。データプレーンプロキシにTLS証明書を提供する役割を担っています。NetScaler xDSアダプターは、Citadelによって管理されるシークレットを監視し、関連する詳細情報でNetScalerプロキシを更新します。
NetScalerサービスメッシュソリューションは、NetScaler Ingress Gatewayデバイスから統計データを収集し、PrometheusにエクスポートするNetScaler Metrics Exporterというコンテナを提供します。
Citrixは、テレメトリ目的で独自の社内ソリューションであるNetScaler Observability Exporterも提供しています。サイドカープロキシとして実行されているNetScaler CPXは、NetScaler Observability Exporterと対話します。NetScaler CPXは、メトリクスとトランザクションをNetScaler Observability Exporterに送信します。NetScaler Observability Exporterは、ZipkinやPrometheusなどのエンドポイントをサポートし、サイドカープロキシから収集されたデータを適切な形式でこれらのエンドポイントに送信します。
NetScalerは、次の3つの方法でIstioと統合できます。
-
サービスメッシュへのIngress GatewayとしてのNetScaler CPX、MPX、またはVPX
-
サービスメッシュ内のアプリケーションコンテナを持つサイドカープロキシとしてのNetScaler CPX
-
サービスメッシュのEgress GatewayとしてのNetScaler CPX
すべてのモードを組み合わせて、統合されたデータプレーンソリューションを実現できます。
NetScalerをIngress Gatewayとしてデプロイする
Istio Ingress Gatewayは、サービスメッシュへの受信トラフィックのエントリポイントとして機能します。サービスメッシュへの外部からのアクセスを保護し、制御します。NetScaler CPX、MPX、またはVPXをIstioサービスメッシュへのIngress Gatewayとして展開できます。
イングレスゲートウェイとしてのNetScaler CPX
NetScaler CPX Ingress Gatewayは、水平スケーリングKubernetesポッドのセットとして展開されます。各ポッドは、受信リクエストを制御およびルーティングするNetScaler CPXを実行します。 各ポッドは、NetScalerのサイドカーとしてNetScaler xDSアダプターコンテナも実行します。NetScaler xDSアダプターコンテナは、Istioコントロールプレーンコンポーネントとの接続を確立し、適用されたイングレスポリシーを読み取り、それに応じてNetScaler CPXを構成します。
次の図は、Ingress GatewayとしてのNetScaler CPXの展開例を示しています。
Ingress GatewayとしてNetScaler CPXを展開する方法の詳細については、Deploying NetScaler with Istioを参照してください。
Ingress GatewayとしてのNetScaler MPXまたはVPX
NetScaler VPXまたはMPXは、IstioサービスメッシュへのIngress Gatewayとして展開できます。この展開では、NetScaler xDSアダプターコンテナを含むKubernetesポッドが展開されます。NetScaler xDSアダプターコンテナはIstioコントロールプレーンに接続し、イングレス構成を読み取り、それに応じてNetScaler VPXまたはMPXを構成します。
注: この展開では、関連するNetScalerとクラスターノード間の接続を確立してください。
次の図は、Ingress GatewayとしてのNetScaler VPX/MPXの展開例を示しています。
Ingress GatewayとしてNetScaler VPXまたはMPXを展開する方法の詳細については、Deploying NetScaler with Istioを参照してください。
NetScaler CPXをサイドカーとして展開する
NetScaler CPXは、アプリケーションポッドのサイドカープロキシとして展開できます。アプリケーションポッドからのすべての受信および送信トラフィックを傍受し、構成されたルーティングポリシーまたはルールを適用します。
この展開では、各アプリケーションポッドには、アプリケーションコンテナとともにNetScaler CPXとNetScaler xDSアダプターコンテナが含まれます。
NetScaler xDSアダプターコンテナは、Istioコントロールプレーンからの更新をリッスンし、それに応じてNetScaler CPXインスタンスを構成します。
次の図は、サイドカーとしてのNetScaler CPXの展開例を示しています。
サイドカーとしてNetScaler CPXを展開する方法の詳細については、IstioでNetScalerを展開するを参照してください。
NetScaler CPXをエグレスゲートウェイとして展開する
エグレスゲートウェイは、サービスメッシュからのトラフィックの出口を定義します。エグレスゲートウェイとしてのNetScaler CPXは、ロードバランシング、サービスメッシュのエッジでの監視を実行し、サービスメッシュを終了するためのルーティングルールを提供します。
次の図は、エグレスゲートウェイとしてのNetScaler CPXの展開例を示しています。
エグレスゲートウェイとしてNetScaler CPXを展開する方法の詳細については、IstioでNetScalerを展開するを参照してください。
NetScaler VPXをエグレスゲートウェイとして展開する
エグレスゲートウェイは、サービスメッシュからのトラフィックの出口を定義します。NetScaler VPXは、Istioサービスメッシュへのエグレスゲートウェイとして展開できます。この展開では、NetScaler xDSアダプターコンテナを含むKubernetesポッドが展開されます。NetScaler xDSアダプターコンテナはIstioコントロールプレーンに接続し、エグレス構成を読み取り、それに応じてNetScaler VPXを構成します。
注: この展開では、関連するNetScalerとクラスターノード間の接続を確立してください。
次の図は、エグレスゲートウェイとしてのNetScaler VPXの展開例を示しています。
エグレスゲートウェイとしてNetScaler VPXを展開する方法の詳細については、IstioでNetScalerを展開するを参照してください。