概要
KubernetesにおけるIngress Controllerとは
Kubernetesクラスター内でアプリケーションを実行している場合、外部ユーザーがKubernetesクラスター外からアプリケーションにアクセスする方法を提供する必要があります。Kubernetesは、Ingressと呼ばれるオブジェクトを提供しており、これによりKubernetesクラスター内のサービスにアクセスするためのルールを定義できます。これは、安定したIPアドレスを使用して、クラスター内で実行されている複数のサービスに外部からアクセスするための最も効果的な方法を提供します。
Ingress Controllerは、Ingressで定義されたルールを解釈する、クラスター内にデプロイされたアプリケーションです。Ingress Controllerは、Ingressルールを、クラスターと統合されたロードバランシングアプリケーションの構成指示に変換します。ロードバランサーは、Kubernetesクラスター内で実行されるソフトウェアアプリケーションでも、クラスター外で実行されるハードウェアアプライアンスでも構いません。
ネットスケーラー イングレス コントローラーとは
NetScalerは、NetScaler (NetScaler CPX、VPX、またはMPX) を使用して、Kubernetesクラスターへのトラフィックを管理およびルーティングするためのKubernetes Ingress Controllerの実装を提供します。
NetScaler Ingress Controllerを使用すると、Ingressルールに従ってNetScaler CPX、VPX、またはMPXを構成し、NetScalerをKubernetes環境と統合できます。
NetScaler Ingress Controllerを選ぶ理由
このトピックでは、NetScaler Ingress Controllerを使用してNetScalerをKubernetesクラスターと統合する主な利点について説明します。
TCPおよびUDPトラフィックのサポート
標準的なKubernetes Ingressソリューションは、レイヤー7(HTTPまたはHTTPSトラフィック)でのみロードバランシングを提供します。場合によっては、TCPまたはUDPアプリケーションに依存する多くのレガシーアプリケーションを公開し、それらのアプリケーションをロードバランシングする方法が必要になります。NetScaler Ingress Controllerを使用したNetScaler Ingress Controllerソリューションは、標準のHTTPまたはHTTPS Ingressとは別に、TCP、TCP-SSL、およびUDPトラフィックのサポートを提供します。また、複数のクラウドまたはオンプレミスデータセンター間でシームレスに動作します。
高度なトラフィック管理ポリシー
NetScalerは、レイヤー7でトラフィックを効率的にロードバランシングするための、リライトポリシーやレスポンダーポリシーのようなエンタープライズグレードのトラフィック管理ポリシーを提供します。しかし、Kubernetes Ingressには、このようなエンタープライズグレードのトラフィック管理ポリシーがありません。CitrixのKubernetes Ingressソリューションを使用すると、NetScalerが提供するCRDを使用して、Kubernetes環境のアプリケーショントラフィックにリライトポリシーとレスポンダーポリシーを適用できます。
柔軟なデプロイメントトポロジー
NetScalerは、NetScalerとKubernetes環境をどのように管理したいかに応じて、Single-TierやDual-Tierのような柔軟で強力なトポロジーを提供します。デプロイメントトポロジーの詳細については、 デプロイメントトポロジーページを参照してください。
East-Westトラフィックに対するレイヤー7ロードバランシングのサポート
Kubernetesクラスター内のマイクロサービス間のトラフィック(East-Westトラフィック)の場合、Kubernetesはネイティブで限定的なレイヤー4ロードバランシングのみを提供します。IngressコントローラーとともにNetScaler CPXを使用することで、East-Westトラフィックに対する高度なレイヤー7ロードバランシングを実現できます。
ベアメタルクラスター上のLoadBalancerタイプのサービス
パブリッククラウドにデプロイするのではなく、Kubernetesクラスターをベアメタルまたはオンプレミスにデプロイしたい状況がいくつかあるかもしれません。ベアメタルKubernetesクラスターでアプリケーションを実行している場合、Ingressを使用するよりも、
LoadBalancerタイプのサービスを使用してTCPまたはUDPトラフィックをルーティングする方がはるかに簡単です。HTTPトラフィックの場合でも、Ingressよりも便利な場合があります。しかし、ベアメタルKubernetesクラスターには、ネイティブで利用可能なロードバランサーの実装がありません。NetScalerは、IngressコントローラーとNetScalerを使用して、そのようなサービスをロードバランシングする方法を提供します。詳細については、Expose services of type LoadBalancerを参照してください。
NetScaler Ingress Controllerのデプロイ
NetScaler Ingress Controllerは、以下のデプロイモードでデプロイできます。
-
スタンドアロンポッドとして: このモードは、Kubernetesクラスターの外部にあるNetScaler MPXやVPXなどのADCを管理する場合に使用されます。
-
同じポッド内のNetScaler CPXとともに、ポッド内のサイドカーとして: コントローラーは、同じポッド内にあるNetScaler CPXのみを担当します。
NetScalerが提供するIngressコントローラーは、Helmチャートを使用してデプロイできます。詳細については、Deploy NetScaler Ingress Controller using Helm chartsを参照してください。