概要

NetScaler CPXをKubernetesクラスターに展開して、クラスター内のコンテナー化されたアプリケーションを負荷分散できます。デフォルトでは、NetScaler CPXをKubernetesクラスターに展開すると、基本的な負荷分散機能を提供するKubernetesのkube-proxyに置き換えられます。負荷分散機能に加え、NetScaler CPXをkube-proxyに置き換えることで、NetScaler Management and Analytics System(MAS)を使用して以下が可能となります:

  • クラスター内のアプリケーション環境への可視性

  • クラスター内のNetScaler CPXインスタンスの管理と監視

  • StyleBook機能を使用して、アプリケーションの複雑なNetScaler構成の管理作業を簡略化

NetScaler MASについて詳しくは、NetScaler Management and Analytics System製品のドキュメントを参照してください

Kubernetes環境では、KubernetesサービスのIngressトラフィックの負荷分散を行うために、IngressリソースとIngressコントローラーが必要です。Ingressリソースは、Kubernetesサービス用のロードバランサーを構成するためのKubernetesリソースです。ロードバランサーは、外部から到達可能なサービスのURLを提供してKubernetesクラスターの外のクライアントにサービスを公開し、それらのURLに送信されるトラフィックを負荷分散します。

NetScaler MPXアプラインス、NetScaler VPXアプラインス、またはNetScaler CPXなどのNetScaler ADCインスタンスをKubernetes環境内のIngressロードバランサーとして使用し、IngressトラフィックをKubernetesクラスターの外のクライアントごとにKubernetesサービスに負荷分散させることができます。

Ingressコントローラーは、ロードバランサーとKubernetesを統合します。Kubernetes APIを介してIngressリソースを監視し、スケーリング、ローリングアップデート、またはメタデータの変更によりサービスが変更された場合、ロードバランサーの構成を更新します。NetScaler Management and Analytics System(MAS)には、Kubernetes環境用のNetScaler Ingressコントローラーが含まれています。NetScaler IngressコントローラーとNetScaler ADCインスタンスにより、Kubernetes環境でIngressトラフィックを処理できるようになります。

NetScaler Ingressコントローラーの仕組み

Kubernetesクラスターの展開後、NetScaler MASにKubernetes環境の詳細を提供して、クラスターとNetScaler MASを統合する必要があります。NetScaler MASは、サービス、ポッド、IngressルールなどのKubernetesリソースの変更を監視します。

KubernetesクラスターでNetScaler CPXインスタンスをIngressリソースとして展開すると、NetScaler MASに自動的に登録されます。NetScaler MASは登録プロセスの一環として、NetScaler CPXインスタンスIPアドレスの情報と、NITRO REST APIを使用してNetScalerインスタンスに到達し、NetScaler固有の構成を行うためのポートの情報を取得します。

NetScaler MASのStylebookエンジンは、サービス、ポッド、Ingressルールなど、NetScaler MASがKubernetesから収集するすべての情報を処理します。Stylebookエンジンは、既存のプロビジョニング済みStylebook(com.citrix.adc.stylebooks/1.0/cs-lb-mon)を使用して、負荷分散に必要な仮想サーバー、サービス、サービスグループなどのNetScalerの構成を生成し、その構成をNetScaler CPX Ingressロードバランサーに適用します。StyleBookについて詳しくは、「StyleBooks」を参照してください。

次の図は、Kubernetes環境を示しています。この図には、Ingressトラフィックを処理するためにKubernetesクラスター内のNetScaler CPX Ingressリソースと統合されたNetScaler Ingressコントローラーが含まれています。

NetScaler Ingressコントローラー

この例では、NetScaler CPXコンテナーを展開し、仮想IP(VIP)アドレスを使用してクラスター外からKubernetesサービスにトラフィックを負荷分散しています。NetScaler CPXコンテナーは、サービスAとBを構成する複数のKubernetesポッド間で要求を分散することにより、North-Southトラフィックを負荷分散します。

重要: ドメインapi.example.comのDNS構成は、NetScaler CPXホストIPアドレスを使用してNetScaler CPXコンテナーにトラフィックを送信するように構成されています。複数のNetScaler CPXコンテナーがIngressロードバランサーとして構成されている場合は、DNS方式を使用してNetScaler CPXコンテナー全体にIngressトラフィックを分散させてください。

NetScaler MASは、Kubernetesクラスター内のNetScalerデバイスを管理し、情報とトラブルシューティングのための豊富な分析をデバイスから提供します。また、NetScalerデバイスから詳細なトラフィック統計を収集することで、アプリケーションのパフォーマンスとセキュリティを把握できます。

Kubernetes環境でのNetScaler CPXによるEast-Westトラフィックフロー負荷分散の仕組み

Kubernetesクラスターの展開後、NetScaler MASにKubernetes環境の詳細を提供して、クラスターとNetScaler MASを統合する必要があります。NetScaler MASは、サービス、エンドポイント、IngressルールなどのKubernetesリソースの変更を監視します。

NetScaler CPXインスタンスをKubernetesクラスターに展開すると、NetScaler MASに自動的に登録されます。NetScaler MASは登録プロセスの一環として、NetScaler CPXインスタンスのIPアドレスの情報と、NITRO REST APIを使用してNetScaler CPXインスタンスに到達し、構成を行うためのポートの情報を取得します。

NetScaler MASのStylebookエンジンは、サービス、エンドポイント、Ingressルールなど、NetScaler MASがKubernetesから収集するすべての情報を処理します。Stylebookエンジンは、既存のプロビジョニング済みStylebook(com.citrix.adc.stylebooks/1.0/cs-lb-mon)を使用して、負荷分散に必要な仮想サーバーやサービスグループなどのNetScaler固有の構成を生成し、その構成をNetScaler CPXインスタンスに適用します。StyleBookについて詳しくは、「StyleBooks」を参照してください。

次の図は、Kubernetesクラスター内でNetScaler CPXがEast-Westトラフィックフローをどのように負荷分散するかを示しています。

East-Westトラフィックフロー

この例では、Kubernetesクラスターのノード1とノード2に、フロントエンドサービスとバックエンドサービスのインスタンスが含まれています。ノード1とノード2にNetScaler CPXインスタンスを展開すると、NetScaler CPXインスタンスがNetScaler MASに自動的に登録されます。NetScaler MASにKubernetesクラスターの詳細を構成して、KubernetesクラスターとNetScaler MASを手動で統合する必要があります。

クライアントがフロントエンドサービスを要求すると、Ingressリソースは、2つのノード上にあるフロントエンドサービスのインスタンスの間で要求を負荷分散します。フロントエンドサービスのインスタンスがクラスター内のバックエンドサービスからの情報を必要とする場合、そのノードのNetScaler CPXインスタンスに要求が送信されます。そのNetScaler CPXインスタンスは、クラスター内のバックエンドサービスの間で要求を負荷分散し、それによりEast-Westトラフィックフローを提供します。