ADC

Kubernetes Ingressソリューション

このトピックでは、NetScalerが提供するKubernetes Ingressソリューションの概要と、その利点について説明します。

Kubernetes イングレスとは何ですか?

Kubernetes クラスタ内でアプリケーションを実行する場合、外部ユーザーが Kubernetes クラスタの外部からアプリケーションにアクセスできるようにする必要があります。Kubernetes には、安定した IP アドレスを使用して複数のサービスを公開する最も効果的な方法を提供する Ingress というオブジェクトが用意されています。Kubernetes Ingress オブジェクトは常に 1 つ以上のサービスと関連付けられ、外部ユーザーがクラスター内で実行されているサービスにアクセスするための単一エントリポイントとして機能します。

次の図は、Kubernetes イングレスの仕組みを説明しています。 Kubernetes Ingress

Kubernetes Ingress の実装は、以下のコンポーネントで構成されています。

  • 入力リソース。Ingress リソースでは、クラスター外からアプリケーションにアクセスするためのルールを定義できます。

  • 入力コントローラー。Ingress Controller は、Ingress で定義されているルールを解釈するクラスター内にデプロイされたアプリケーションです。Ingress Controllerは、Ingress ルールをクラスタと統合した負荷分散アプリケーションの構成指示に変換します。ロードバランサーは、Kubernetes クラスター内で実行されるソフトウェアアプリケーション、またはクラスター外で実行されるハードウェアアプライアンスです。

  • Ingress デバイス。入力デバイスは、NetScaler CPX、VPX、MPXなどの負荷分散アプリケーションで、入力Controller が提供する構成指示に従って負荷分散を実行します。

Citrix の Kubernetes Ingress ソリューションは何ですか

このソリューションでは、NetScaler(NetScaler CPX、VPX、またはMPX)を使用してトラフィックを管理およびKubernetesクラスターにルーティングするためのKubernetes Ingressコントローラーの実装がNetScalerによって提供されます。NetScalerIngress Controller は、NetScalerをKubernetes環境に統合し、イングレスルールに従ってNetScaler CPX、VPX、またはMPXを構成します。

標準的な Kubernetes Ingress ソリューションは、レイヤ 7(HTTP または HTTPS トラフィック)でのみ負荷分散を提供します。場合によっては、TCP、UDP、またはアプリケーションに依存する多くのレガシーアプリケーションを公開し、それらのアプリケーションの負荷分散の方法が必要になる場合があります。NetScalerIngress Controller ソリューションは、標準のHTTPまたはHTTPSイングレスとは別に、TCP、TCP-SSL、およびUDPトラフィックをサポートします。また、複数のクラウドやオンプレミスのデータセンターにまたがってシームレスに動作します。

Citrix ADCは、書き換えポリシーやレスポンダーポリシーなどのエンタープライズグレードのトラフィック管理ポリシーを提供し、レイヤー7でトラフィックの負荷を効率的に分散します。ただし、Kubernetes Ingress にはこのようなエンタープライズグレードのトラフィック管理ポリシーがありません。Citrix のKubernetes Ingressソリューションを使用すると、NetScalerが提供するCRDを使用して、Kubernetes環境のアプリケーショントラフィックにリライトポリシーとレスポンダーポリシーを適用できます。

CitrixのKubernetes Ingressソリューションは、CI/CDアプリケーションパイプラインの自動カナリアデプロイもサポートしています。このソリューションでは、Citrix ADCはSpinnakerプラットフォームと統合され、Kayentaを使用してCanary展開を分析するための正確なメトリックを提供するソースとして機能します。メトリクスを分析した後、Kayenta はカナリアの集計スコアを生成し、カナリアバージョンを昇格または失敗することを決定します。Citrix ADCポリシーインフラストラクチャを使用して、Canaryバージョンへのトラフィック配信を規制することもできます。

次の表は、CitrixのIngressソリューションがKubernetes Ingressよりも優れている点をまとめたものです。

機能 Kubernetes Ingress Citrix のIngress ソリューション
HTTP と HTTPS のサポート はい はい
URL ルーティング はい はい
TLS はい はい
負荷分散 はい はい
TCP、TCP-SSL いいえ はい
UDP いいえ はい
HTTP/2 はい はい
CI/CD ツールによる自動カナリア導入サポート いいえ はい
NetScalerの書き換えポリシーとレスポンダーポリシーの適用のサポート いいえ はい
認証 (オープンオーソライゼーション (OAuth)、相互認証 TLS (mTLS)) いいえ はい
Citrix レート制限ポリシーの適用のサポート いいえ はい

Kubernetes Ingress ソリューションのデプロイオプション

NetScalerのKubernetes Ingressソリューションでは、NetScalerとKubernetes環境をどのように管理したいかに応じて、柔軟なアーキテクチャを実現できます。

統合入力(単一層)

統合されたイングレス(単層)アーキテクチャでは、Kubernetesクラスターの外部にデプロイされたNetScaler MPXまたはVPXデバイスは、NetScaler Ingress Controller を使用してKubernetes環境と統合されます。NetScaler Ingress ControllerはKubernetesクラスターにポッドとしてデプロイされ、マイクロサービスまたはIngressリソースの変更に基づいてNetScalerの構成を自動化します。NetScalerデバイスは、インバウンドトラフィックに対して負荷分散、TLSターミネーション、HTTPまたはTCPプロトコルの最適化などの機能を実行し、トラフィックをKubernetesクラスター内の適切なマイクロサービスにルーティングします。このアーキテクチャは、同じチームが Kubernetes プラットフォームとアプリケーションデリバリーコントローラ (ADC) を含むその他のネットワークインフラストラクチャを管理するシナリオに最適です。

次の図は、統合された Ingress アーキテクチャを使用したデプロイメントを示しています。

Single-tier

統合された Ingress ソリューションには以下の主なメリットがあります。

  • 既存のNetScalerインフラストラクチャの機能をKubernetes環境に拡張する方法を提供します
  • インバウンドトラフィックにトラフィック管理ポリシーを適用できます
  • ネットワークに精通したDevOpsチームに適したシンプルなアーキテクチャを提供します
  • マルチテナンシーをサポート

デュアル・ティア・イングレス

デュアルティアアーキテクチャでは、Kubernetesクラスターの外部にデプロイされたCitrix ADC(MPXまたはVPX)がティア1で動作し、クラスター内で実行されているCitrix ADC CPXへのNorth-Southトラフィックの負荷分散を行います。NetScaler CPXは階層 2 で動作し、Kubernetes クラスタ内のマイクロサービスの負荷分散を実行します。

個別のチームが Kubernetes プラットフォームとネットワークインフラストラクチャを管理するシナリオでは、デュアルティアアーキテクチャが最適です。

ネットワークチームは、GSLB、ハードウェアプラットフォームでのTLSターミネーション、TCP負荷分散などのユースケースにティア1のNetScalerを使用します。Kubernetesプラットフォームチームは、階層2のNetScaler(CPX)を使用して、レイヤー7(HTTP/HTTPS)の負荷分散、相互TLS、マイクロサービスのオブザーバビリティまたは監視を行うことができます。階層2のNetScaler(CPX)は、新たに利用可能になった機能に対応するために、階層1のNetScalerとは異なるソフトウェアリリースバージョンを用意できます。

次の図は、2 層アーキテクチャの導入を示しています。

デュアルティア

デュアルティア Ingress には以下の主なメリットがあります。

  • 開発者やプラットフォームチームのアプリケーション開発を高速化します
  • Kubernetes クラスタ内のマイクロサービスに開発者主導のトラフィック管理ポリシーを適用できます
  • クラウドの拡張とマルチテナンシーを実現

詳細については、 NetScaler Ingress Controller ドキュメントを参照してください

使用開始

Citrix のKubernetes Ingressソリューションを使い始めるには、以下の例を試してみてください。

Kubernetes Ingressソリューション