Anthos に NetScaler Ingress Controller を展開する

最終公開日 : Oct 02, 2026
Anthos は、既存のオンプレミスハードウェアまたはパブリッククラウドでアプリケーションを実行できるハイブリッドおよびマルチクラウドプラットフォームです。クラウドおよびオンプレミス環境向けに一貫した開発および運用エクスペリエンスを提供します。
NetScaler Ingress Controller は、以下の展開モードを使用して Anthos GKE オンプレミスに展開できます。
  • サイドカーイングレスコントローラーを備えた NetScaler CPX を LoadBalancer タイプのサービスとして公開する。
  • デュアルティアイングレス展開

Anthos GKE オンプレミスで NetScaler CPX を LoadBalancer タイプのサービスとして公開する

この展開では、NetScaler VPX または MPX はクラスター外の Tier-1 に展開され、NetScaler CPX は Anthos クラスター内の Tier-2 に展開されます。これはデュアルティア展開に似ています。ただし、Ingress を使用する代わりに、NetScaler CPX は LoadBalancer タイプの Kubernetes サービスを使用して公開されます。 NetScaler Ingress Controller は、サービス仕様の LoadBalancerIP フィールドで提供される IP アドレスを構成するプロセスを自動化します。

前提条件

  • Anthos GKE オンプレミスユーザークラスターと同じサブネットに Tier-1 NetScaler VPX または MPX を展開する必要があります。
  • Tier-1 NetScaler でサブネット IP アドレス (SNIP) を構成する必要があり、Anthos GKE オンプレミス クラスターノードはその IP アドレスを使用して到達可能である必要があります。
  • 異なるネットワークから NetScaler VPX または MPX を使用するには、ノードコントローラー を使用して、NetScaler と Anthos GKE オンプレミス クラスター間の通信を有効にします。
  • ロードバランサー IP アドレスとして使用する仮想 IP アドレス (VIP) を確保する必要があります。

Anthos GKE オンプレミスで NetScaler CPX を LoadBalancer タイプのサービスとして展開する

Anthos GKE オンプレミスで NetScaler CPX を LoadBalancer タイプのサービスとして展開するには、次の手順を実行します。
  1. 必要なアプリケーションを Kubernetes クラスターに展開し、次のコマンドを使用してクラスター内でサービスとして公開します。
    kubectl --kubeconfig user-cluster-1-kubeconfig create -f https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/anthos/manifest/service-type-lb/apache.yaml
    注:
    この例では、apache.yaml が使用されています。アプリケーションには、特定のYAMLファイルを使用する必要があります。
  2. cpx-cic.yaml ファイルを使用して、サイドカーNetScaler Ingress ControllerをTier-2 IngressデバイスとしてNetScaler CPXを展開します。
    kubectl --kubeconfig user-cluster-1-kubeconfig create -f https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/anthos/manifest/service-type-lb/cpx-cic.yaml
  3. (オプション) TLS構成のためにIngressで使用する自己署名SSL証明書とキーを作成します。
    openssl req -subj '/CN=anthos-citrix-ingress.com/O=Citrix Systems Inc/C=IN' -new -newkey rsa:2048 -days 5794 -nodes -x509 -keyout $PWD/anthos-citrix-certificate.key -out $PWD/anthos-citrix-certificate.crt;openssl rsa -in $PWD/anthos-citrix-certificate.key -out $PWD/anthos-citrix-certificate.key
    注:
    すでにSSL証明書をお持ちの場合は、それを使用してKubernetesシークレットを作成できます。これは自己署名証明書を作成するための単なるコマンド例であり、このコマンドはアプリケーションのホスト名がanthos-citrix-ingress.comであると想定しています。
  4. 作成したSSL証明書とキーのペアを使用してKubernetesシークレットを作成します。
    kubectl --kubeconfig user-cluster-1-kubeconfig create secret tls anthos-citrix --cert=$PWD/anthos-citrix-certificate.crt --key=$PWD/anthos-citrix-certificate.key
  5. tier-2-ingress.yaml ファイルを使用して、Tier-2用のIngressリソースを作成します。
    kubectl --kubeconfig user-cluster-1-kubeconfig create -f https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/anthos/manifest/service-type-lb/tier-2-ingress.yaml
  6. Tier-1 NetScaler用のKubernetesシークレットを作成します。
    kubectl --kubeconfig user-cluster-1-kubeconfig create secret  generic nslogin --from-literal=username='citrix-adc-username' --from-literal=password='citrix-adc-password'
  7. NetScaler Ingress ControllerをTier-1 Ingressコントローラーとして展開します。
    1. cic.yaml ファイルをダウンロードします。
    2. NetScalerの管理IPアドレスを入力します。cic.yaml ファイルで指定されたプレースホルダーTier-1-Citrix-ADC-IPに、Tier-1 NetScalerの管理IPアドレスを更新します。
    3. 次のコマンドを使用してcic.yamlを保存して展開します。
      kubectl --kubeconfig user-cluster-1-kubeconfig create -f cic.yaml
  8. NetScaler CPXをLoadBalancerタイプのKubernetesサービスとして公開します。
    1. cpx-service-type-lb.yaml ファイルをダウンロードします。
    2. YAMLファイルを編集し、VIP-for-accessing-microservices の値を、クラスター内のアプリケーションにアクセスするために使用されるVIPアドレスとして指定します。このVIPアドレスは、ロードバランサーIPアドレスとして使用するために確保されているものです。
    3. 次のコマンドを使用して、cpx-service-type-lb.yaml ファイルを保存してデプロイします。
      kubectl --kubeconfig user-cluster-1-kubeconfig create -f cpx-service-type-lb.yaml
  9. マイクロサービスにアクセスするために、VIP-for-accessing-microservices のIPアドレスでDNSレコードを更新します。この例では、Apacheマイクロサービスにアクセスするには、次のDNSエントリが必要です。
    `<VIP-for-accessing-microservices> anthos-citrix-ingress.com`
  10. 次のコマンドを使用してアプリケーションにアクセスします。
    curl -k --resolve anthos-citrix-ingress.com:443:&lt;VIP-for-accessing-microservices> https://anthos-citrix-ingress.com/ &lt;html>&lt;body><h1>It works!</h1>&lt;/body>&lt;/html>
    注:
    このコマンドでは、デモンストレーション目的で、ステップ9のDNS構成部分を上書きするために --resolve anthos-citrix-ingress.com:443:<VIP-for-accessing-microservices> が使用されます。

インストールのクリーンアップ: NetScaler CPXを LoadBalancer タイプのサービスとして公開する

インストールをクリーンアップするには、kubectl --kubeconfig delete コマンドを使用して各デプロイメントを削除します。
NetScaler CPXサービスデプロイメント(CPX+CICサービス)を削除するには、次のコマンドを使用します。
kubectl --kubeconfig user-cluster-1-kubeconfig delete -f cpx-service-type-lb.yaml
Tier-2 Ingressオブジェクトを削除するには、次のコマンドを使用します。
kubectl --kubeconfig user-cluster-1-kubeconfig delete -f tier-2-ingress.yaml
サイドカーNetScaler Ingress ControllerとともにNetScaler CPXデプロイメントを削除するには、次のコマンドを使用します。
kubectl --kubeconfig user-cluster-1-kubeconfig delete -f cpx-cic.yaml
スタンドアロンのNetScaler Ingress Controllerを削除するには、次のコマンドを使用します。
kubectl --kubeconfig user-cluster-1-kubeconfig delete -f cic.yaml
Apacheマイクロサービスを削除するには、次のコマンドを使用します。
kubectl --kubeconfig user-cluster-1-kubeconfig delete -f apache.yaml
Kubernetesシークレットを削除するには、次のコマンドを使用します。
kubectl --kubeconfig user-cluster-1-kubeconfig delete secret anthos-citrix
nslogin シークレットを削除するには、次のコマンドを使用します。
kubectl --kubeconfig user-cluster-1-kubeconfig delete secret nslogin

デュアルティアイングレス展開

デュアルティアイングレス展開では、NetScaler VPXまたはMPXがKubernetesクラスターの外部(Tier-1)に展開され、NetScaler CPXがKubernetesクラスターの内部(Tier-2)に展開されます。
Tier-1のNetScaler MPXまたはVPXデバイスは、クライアントからTier-2のNetScaler CPXへのトラフィック(南北)をプロキシします。Tier-2のNetScaler CPXは、Kubernetesクラスター内のマイクロサービスにトラフィックをルーティングします。スタンドアロンポッドとして展開されたNetScaler Ingress Controllerは、Tier-1 NetScalerを構成します。1つ以上のNetScaler CPXポッド内のサイドカーNetScaler Ingress Controllerは、同じポッド内の関連するNetScaler CPXを構成します。

前提条件

  • Anthos GKE on-premユーザークラスターと同じサブネットにTier-1 NetScaler VPXまたはMPXを展開する必要があります。
  • Tier-1 NetScalerでサブネットIPアドレス(SNIP)を構成する必要があり、そのIPアドレスを使用してAnthos GKE on-premクラスターノードに到達できる必要があります。
  • 異なるネットワークからNetScaler VPXまたはMPXを使用するには、NetScalerとAnthos GKE on-premクラスター間の通信を有効にするためにノードコントローラーを使用します。
  • Tier-1 IngressマニフェストでフロントエンドIPアドレスとして使用される仮想IPアドレスを確保する必要があります。

Anthos GKE on-premでのデュアルティアイングレス展開

Anthos GKE on-premでNetScalerのデュアルティアイングレス展開をデプロイするには、次の手順を実行します。
  1. 必要なアプリケーションをKubernetesクラスターにデプロイし、次のコマンドを使用してクラスター内でサービスとして公開します。
    kubectl --kubeconfig user-cluster-1-kubeconfig create -f https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/anthos/manifest/dual-tiered-ingress/apache.yaml
    注:
    この例では、apache.yamlが使用されています。アプリケーションに固有のYAMLファイルを使用する必要があります。
  2. cpx-cic.yamlファイルを使用して、NetScaler Ingress Controllerを搭載したNetScaler CPXをTier-2 Ingressとしてデプロイします。
    kubectl --kubeconfig user-cluster-1-kubeconfig create -f https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/anthos/manifest/dual-tiered-ingress/cpx-cic.yaml
  3. cpx-service.yamlファイルを使用して、NetScaler CPXをKubernetesサービスとして公開します。
    kubectl --kubeconfig user-cluster-1-kubeconfig create -f https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/anthos/manifest/dual-tiered-ingress/cpx-service.yaml
  4. (オプション) TLS設定のためにIngressで使用する自己署名SSL証明書とキーを作成します。
    注:
    すでにSSL証明書をお持ちの場合は、それを使用してKubernetesシークレットを作成できます。
    openssl req -subj '/CN=anthos-citrix-ingress.com/O=Citrix Systems Inc/C=IN' -new -newkey rsa:2048 -days 5794 -nodes -x509 -keyout $PWD/anthos-citrix-certificate.key -out $PWD/anthos-citrix-certificate.crt;openssl rsa -in $PWD/anthos-citrix-certificate.key -out $PWD/anthos-citrix-certificate.key
    注:
    これは自己署名証明書を作成するための単なるコマンド例であり、このコマンドはアプリケーションのホスト名がanthos-citrix-ingress.comであることを前提としています。
  5. 作成したSSL証明書とキーのペアを使用してKubernetesシークレットを作成します。
    kubectl --kubeconfig user-cluster-1-kubeconfig create secret tls anthos-citrix --cert=$PWD/anthos-citrix-certificate.crt --key=$PWD/anthos-citrix-certificate.key
  6. tier-2-ingress.yamlファイルを使用して、Tier-2用のIngressリソースを作成します。
    kubectl --kubeconfig user-cluster-1-kubeconfig create -f https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/anthos/manifest/dual-tiered-ingress/tier-2-ingress.yaml
  7. Tier-1 NetScaler用のKubernetesシークレットを作成します。
    kubectl --kubeconfig user-cluster-1-kubeconfig create secret  generic nslogin --from-literal=username='citrix-adc-username' --from-literal=password='citrix-adc-password'
  8. NetScaler Ingress ControllerをTier-1イングレスコントローラーとして展開します。
    1. cic.yamlファイルをダウンロードします。
    2. NetScalerの管理IPアドレスを入力します。cic.yamlファイルで指定されているプレースホルダーTier-1-Citrix-ADC-IPに、Tier-1 NetScalerの管理IPアドレスを更新します。
    3. 次のコマンドを使用してcic.yamlを保存し、展開します。
      kubectl --kubeconfig user-cluster-1-kubeconfig create -f cic.yaml
  9. tier-1-ingress.yamlファイルを使用して、Tier-1用のIngressリソースを作成します。
    1. tier-1-ingress.yamlファイルをダウンロードします。
    2. YAMLファイルを編集し、VIP-Citrix-ADCを確保しておいたVIPアドレスに置き換えます。
    3. 次のコマンドを使用して、tier-1-ingress.yamlファイルを保存してデプロイします。
      kubectl --kubeconfig user-cluster-1-kubeconfig create -f tier-1-ingress.yaml
  10. マイクロサービスにアクセスするために、VIP-Citrix-ADCのIPアドレスでDNSレコードを更新します。この例では、Apacheマイクロサービスにアクセスするには、次のDNSエントリが必要です。
    &lt;VIP-Citrix-ADC> anthos-citrix-ingress.com
  11. 次のコマンドを使用してアプリケーションにアクセスします。
    curl -k --resolve anthos-citrix-ingress.com:443:&lt;VIP-Citrix-ADC>   https://anthos-citrix-ingress.com/
    &lt;html>&lt;body><h1>It works!</h1>&lt;/body>&lt;/html>
    注:
    このコマンドでは、--resolve anthos-citrix-ingress.com:443:<VIP-for-accessing-microservices>はDNS構成部分を上書きするために使用されます。

インストールのクリーンアップ: デュアルティアIngress

インストールをクリーンアップするには、kubectl --kubeconfig deleteコマンドを使用して各デプロイを削除します。
Tier-1 Ingressオブジェクトを削除するには、次のコマンドを使用します。
kubectl --kubeconfig user-cluster-1-kubeconfig delete -f tier-1-ingress.yaml
Tier-2 Ingressオブジェクトを削除するには、次のコマンドを使用します。
kubectl --kubeconfig user-cluster-1-kubeconfig delete -f tier-2-ingress.yaml`
NetScaler CPXデプロイメントとサイドカーNetScaler Ingress Controllerを削除するには、次のコマンドを使用します。
kubectl --kubeconfig user-cluster-1-kubeconfig delete -f cpx-cic.yaml
NetScaler CPXサービスデプロイメントを削除するには、次のコマンドを使用します。
kubectl --kubeconfig user-cluster-1-kubeconfig delete -f cpx-service.yaml
スタンドアロンのNetScaler Ingress Controllerを削除するには、次のコマンドを使用します。
kubectl --kubeconfig user-cluster-1-kubeconfig delete -f cic.yaml
Apacheマイクロサービスを削除するには、次のコマンドを使用します。
kubectl --kubeconfig user-cluster-1-kubeconfig delete -f apache.yaml
Kubernetesシークレットを削除するには、次のコマンドを使用します。
kubectl --kubeconfig user-cluster-1-kubeconfig delete secret anthos-citrix
nsloginシークレットを削除するには、次のコマンドを使用します。
kubectl --kubeconfig user-cluster-1-kubeconfig delete secret nslogin`