NetScaler Operator を使用して OpenShift に CPX と共に NetScaler Ingress Controller (NSIC) を展開する

最終公開日 : Oct 02, 2026
このセットアップでは、NetScaler Ingress Controller が OpenShift クラスターに展開された NetScaler CPX を構成します。

前提条件

  • Red Hat OpenShift Cluster (バージョン 4.1 以降) へのアクセス。
  • NetScaler Operator を展開します。NetScaler Operator の展開方法については、NetScaler Operator の展開 を参照してください。
  • 任意のサービスモニターにエクスポートするには、次のコマンドを使用してサービスモニター CRD をインストールします。
    oc create -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/refs/heads/main/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml
  • direct Prometheus export を介して収集された NetScaler CPX のメトリクスを表示する場合は、Prometheus Operator をインストールします。

NetScaler CPX と共にサイドカーとして NetScaler Ingress Controller を展開する

NetScaler Operator を使用して、NetScaler Ingress Controller をサイドカーとして NetScaler CPX を展開できます。NetScaler Ingress Controller は、OpenShift クラスターで実行されているアプリケーションのイングレスまたはルーターとして展開される NetScaler CPX を構成します。次の図はトポロジを説明しています。
CPX トポロジ
次の手順を実行します。
  1. OpenShift 4.x クラスターコンソールにログインします。
  2. コンソールを使用して Apache アプリケーションを展開します。
    1. Workloads > Deployments > Create Deployment に移動し、次の YAML を使用して展開を作成します。
      ---
      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: apache
        labels:
           name: apache
      spec:
        selector:
          matchLabels:
            app: apache
        replicas: 2
        template:
          metadata:
            labels:
              app: apache
          spec:
            containers:
            - name: apache
              image: httpd:latest
              ports:
              - containerPort: 80
          ---
      アプリケーション展開
      注記:
      Apacheアプリケーションはデモンストレーション目的のみです。要件に基づいてYAMLファイルを変更できます。
    2. Workloads > Podsセクションに移動し、ApacheアプリケーションのPodが稼働していることを確認します。
      アプリケーションPod
  3. Apacheアプリケーションのサービスを作成します。Networking > Services > Create Serviceに移動し、以下のYAMLを使用してサービスを作成します。
    apiVersion: v1
    kind: Service
    metadata:
      name: apache
    spec:
      ports:
      - port: 80
        targetPort: 80
      selector:
        app: apache
    アプリケーションサービス
  4. ApacheアプリケーションのIngressを作成します。Networking > Ingress > Create Ingressに移動し、以下のYAMLを使用してIngressを作成します。
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
     name: cpx-ingress
    spec:
     rules:
     - host: citrix-ingress-operator.com
       http:
         paths:
         - backend:
             service:
               name: apache
               port:
                 number: 80
           path: /
           pathType: Prefix
    アプリケーションCPX Ingress
  5. Operators > Installed Operatorsに移動し、NetScaler® Operatorを選択します。
    NetScaler Ingress Controller オペレーター
  6. NetScaler CPX™ with Ingress Controllerタブをクリックします。
    Ingress ControllerでCPXをデプロイ
  7. Create NetScalerCpxWithIngressControllerをクリックします。
    NetScaler Ingress Controllerを含むNetScaler CPXのYAML定義が表示されます。
    NSIC YAMLを含むCPX
    注:
    • acceptLicense パラメータが Yes に設定されていることを確認してください。
    • この手順で指定されたイングレスリソースにNSICを関連付けるには、ingressClass パラメータを使用してイングレスクラス名を ingressClass: [‘nsic-cpx] として指定します。
    ユースケースに応じて、他の利用可能なパラメータを設定するには、以下の表を参照してください。
    パラメータ 必須または任意 デフォルト値 説明
    acceptLicense 必須 no Yes を設定して NetScaler Ingress Controller EULA に同意します。
    アフィニティ 任意 N/A ポッド割り当て用のアフィニティラベル。
    nodeSelector オプション 該当なし NetScaler Ingress ControllerのデプロイでnodeSelectorオプションに使用されるノードラベルのキーと値のペア。
    podAnnotations オプション 該当なし ポッドに追加するアノテーションのマップ。
    replicaCount オプション 1 デプロイされるCPX-NSICポッドの数。cpxBgpRouter : trueの場合、CPXはDaemonSetとしてデプロイされるため、replicaCountは1です。
    容認 オプション N/A CPX-NSICデプロイメントのトレランスを指定します。
    パラメータ 必須/任意 デフォルト値 説明
    : admSettings:
    ADMIP 任意 N/A NetScaler Console (旧NetScaler Console) のIPアドレス。
    bandWidth 任意 1000 NetScaler CPXの希望する帯域幅容量(Mbps)。
    bandWidthLicense 任意 フォールス NetScaler CPXで帯域幅ベースのライセンスを使用したい場合は、このパラメータをtrueに設定します。
    cpxCores 任意 1 NetScaler CPXに必要なvCPUの数。
    licenseEdition 任意 PLATINUM 指定可能な値は、Standard、Platinum、およびEnterpriseです。
    licenseServerIP 任意 N/A NetScaler CPXをライセンスするためのNetScaler Console (旧称 NetScaler Console) IPアドレス。詳細については、「ライセンス」( https://docs.netscaler.com/ja-jp/citrix-k8s-ingress-controller/licensing/)を参照してください。
    licenseServerPort 任意 27000 デフォルト以外のポートが使用されている場合のNetScaler Console (旧称 NetScaler Console) ポート。
    loginSecret 任意 N/A NetScaler Consoleにログインするためのシークレットキー。
    プラットフォーム 任意 いいえ CP1000プラットフォームライセンスを有効にするには、trueに設定します。
    vCPULicense 任意 N/A NetScaler CPXでvCPUベースのライセンスを使用する場合は、値をtrueに設定します。
    licensingMode オプション プール ライセンスモードをpoolまたはlasに設定します。licensingModeがlasの場合、nADMIP、netscalerCpx.loginSecret、bandWidth、およびlicenseEditionを設定します。poolライセンスの場合、licenseServerIPを設定し、bandWidthLicenseまたはvCPULicenseのいずれかを設定します。
    パラメータ 必須/オプション デフォルト値 説明
    : analyticsConfig:
    distributedTracing.enable オプション いいえ NetScalerでOpenTracingを有効にするには、値をtrueに設定します。
    distributedTracing.samplingrate 任意 100 OpenTracingのサンプリングレートをパーセンテージで指定します。
    endpoint.metrics.service 任意 該当なし この値をアナリティクスサーバーのIPアドレスまたはDNSアドレスとして設定します。形式:servicename.namespace.svc.cluster.local, namespace/servicename。
    endpoint.transactions.service 任意 該当なし このパラメーターを、Kubernetes環境にデプロイされたアナリティクスサービスのIPアドレスまたは名前空間付きサービス名として設定します。形式: namespace/servicename。
    必須 必須 いいえ NetScalerがメトリクスとトランザクションレコードをアナリティクスサービスに送信するように構成したい場合は、このパラメータをtrueに設定します。
    timeseries.port 任意 5563 時系列エンドポイントのアナリティクスサービスを公開するために使用されるポート。
    timeseries.metrics.enable 任意 いいえ NetScalerからのメトリクス送信を有効にするには、この値をtrueに設定します。
    timeseries.metrics.mode 任意 アヴロ メトリックエンドポイントのモード。
    timeseries.metrics.exportFrequency 任意 30 時系列データのエクスポート時間間隔。設定可能な値は30秒から300秒です。
    timeseries.metrics.schemaFile オプション schema.json メトリクスコレクターに追加および設定する必要があるNetScalerカウンターを含むスキーマファイルの名前。サポートされているすべてのカウンターを含む参照スキーマファイルreference_schema.jsonは、パス/var/metrics_conf/でも利用できます。このスキーマファイルは、カスタムカウンターリストを作成するための参照として使用できます。
    timeseries.metrics.enableNativeScrape オプション フォールス メトリクスのネイティブエクスポートには、このパラメーターをtrueに設定します。
    timeseries.auditlogs.enable オプション フォールス NetScalerから監査ログデータをエクスポートするには、このパラメーターをtrueに設定します。
    timeseries.events.enable 任意 フォールス NetScalerからイベントをエクスポートするには、このパラメーターをtrueに設定します。
    transactions.enable 任意 フォールス NetScalerからトランザクションをエクスポートするには、このパラメーターをtrueに設定します。
    transactions.port 任意 5557 トランザクションエンドポイントの分析サービスを公開するために使用されるポート。
    パラメーター 必須/任意 デフォルト値 説明
    : エクスポーター:
    必須 オプション いいえ このパラメータを true に設定すると、NetScaler Ingress Controller とともに Exporter for NetScaler Stats を実行して、NetScaler CPX のメトリクスをプルできます。
    イメージ オプション quay.io/netscaler/netscaler-adc-metrics-exporter@sha256:3d54b9151c742c00117be74e1ffd54430358e4cf628fe1f02d503088583f678 Quay.io でホストされているメトリクスエクスポーターイメージ。
    pullPolicy オプション IfNotPresent エクスポーターイメージのプルポリシー。
    リソース オプション {} メトリクスエクスポーターコンテナのCPU/メモリリソース。
    ports.containerPort オプション 8888 エクスポーターコンテナポート。
    extraVolumes オプション N/A 追加のvolumeMounts用の追加ボリューム。
    imagePullSecrets オプション N/A プライベートDockerレジストリまたはリポジトリからイメージをプルするために使用されるKubernetesシークレットのリスト。このシークレットの作成方法の詳細については、「プライベートレジストリからイメージをプルする」を参照してください。
    パラメータ 必須/任意 デフォルト値 説明
    : ingressController:
    defaultSSLCertSecret 任意 N/A NetScalerでデフォルトの非SNI証明書として使用する必要があるKubernetesシークレット名。
    defaultSSLSNICertSecret 任意 N/A NetScalerでデフォルトのSNI証明書として使用する必要があるKubernetesシークレット名。
    disableAPIServerCertVerify 任意 偽 APIサーバー証明書の検証を無効にするには、このパラメーターをtrueに設定します。
    disableOpenshiftRoutes オプション 偽 デフォルトでは、OpenShift環境でOpenShiftルートが処理されます。NetScaler Ingress ControllerによるOpenShiftルートの処理を無効にするには、このパラメーターをtrueに設定します。
    enableLivenessProbe オプション 真 NetScaler Ingress Controllerの活性プローブ設定を無効にするには、このパラメーターをfalseに設定します。
    enableReadinessProbe オプション 真 NetScaler Ingress Controllerの準備プローブ設定。
    entityPrefix オプション N/A NetScaler CPX上のリソースのプレフィックス。
    extraVolumeMounts オプション N/A
    イメージ 必須 quay.io/netscaler/netscaler-k8s-ingress-controller@sha256:2ff38654476234bfe2c3908932702b90c8ec6ed3cfb7c7f467dc6181df0f1adf Quay.ioでホストされているNetScaler Ingress Controllerイメージ。
    ingressClass オプション N/A 特定のイングレスリソースをNetScaler Ingress Controllerに関連付けるためのパラメータ。イングレスクラスの詳細については、「Ingress class support」を参照してください。Kubernetesバージョン1.19以降の場合、このパラメータはここで指定された名前でIngressClassオブジェクトを作成します。
    IPAM オプション 偽 IPAMコントローラーを使用してIPアドレス管理を有効にするには、このパラメーターをtrueに設定します。
    jsonLog オプション 偽 ログメッセージをJSON形式で出力する必要がある場合は、このパラメーターをtrueに設定します。
    kubernetesURL オプション N/A NetScaler Ingress Controllerがイベントを登録するために使用するkube-apiserverのURLです。値が指定されていない場合、NetScaler Ingress Controllerは内部kube-apiserver IPアドレスを使用します。
    livenessProbe.initialDelaySeconds オプション 30 Kubernetesが最初の活性チェックを実行する前に待機する時間(秒単位)です。
    livenessProbe.periodSeconds 任意 60 初期遅延の後、Kubernetes は 60 秒ごとに活性チェックを実行します。
    logLevel 任意 INFO NSIC によって生成されるログを制御するログレベルです。サポートされているログレベルは、CRITICAL、ERROR、WARNING、INFO、DEBUG、TRACE、および NONE です。
    logProxy 任意 N/A NetScaler 可観測性エクスポーター用の Elasticsearch、Kafka、または Zipkin エンドポイント。
    namespaceLabels 任意 N/A OpenShift クラスターで routeSharding のために NetScaler Ingress Controller が使用するネームスペースラベルセレクター。
    OpenShift オプション 真 OpenShift環境を使用していない場合は、このパラメータをfalseに設定します。
    optimizeEndpointBinding オプション 偽 バックエンドエンドポイントを単一のAPI呼び出しでサービスグループにバインドできるようにするには、trueに設定します。アプリケーションあたりのエンドポイント(ポッド)の数が多い場合は、このパラメータをtrueに設定することをお勧めします。NetScalerバージョン13.0-45.7以降にのみ適用されます。
    profileHttpFrontend オプション N/A フロントエンドHTTPプロファイル。詳細については、FRONTEND_HTTP_PROFILEを使用した構成を参照してください。
    profileSslFrontend オプション N/A フロントエンドSSLプロファイル。詳細については、FRONTEND_SSL_PROFILEを使用した構成を参照してください。
    profileTcpFrontend オプション 該当なし フロントエンドTCPプロファイル。詳細については、FRONTEND_TCP_PROFILEを使用した構成を参照してください。
    pullPolicy 必須 IfNotPresent NetScaler Ingress Controllerのイメージプルポリシー。
    rbacRole オプション 偽 RBACロールでNSICを展開するには、rbacRole=trueを設定します。デフォルトでは、NSICはClusterRole (rbacRole=false) でインストールされます。
    readinessProbe オプション N/A Readinessプローブの設定。
    リソース オプション {} NetScalerのイングレスコントローラーコンテナのCPU/メモリリソース。
    routeLabels オプション N/A このパラメータを使用して、OpenShiftクラスターでNetScaler Ingress ControllerがrouteShardingに使用するルートラベルセレクターを指定できます。
    setAsDefaultIngressClass オプション 偽 IngressClassオブジェクトをデフォルトのイングレスクラスとして設定します。「ingressClassName」フィールドが指定されていない新しいイングレスには、このイングレスクラスが割り当てられます。このパラメータは、Kubernetesバージョン1.19以降にのみ適用されます。
    updateIngressStatus 任意 はい NetScaler Ingress Controller によって管理されるイングレスリソースの Status.LoadBalancer.Ingress フィールドを割り当てられた IP アドレスで更新する必要がある場合に、このパラメーターを設定します。詳細については、こちらを参照してください。
    パラメーター 必須/任意 デフォルト値 説明
    : netscalerCpx:
    bgpSettings.bgpConfig 任意 N/A このパラメーターは、YAML 形式の BGP 設定を表します。個々のフィールドの説明については、ドキュメントを参照してください。
    cpxBgpRouter 任意 いいえ このパラメータがtrueに設定されている場合、CPXはBGPコントローラーモードのデーモンセットとしてデプロイされ、BGPアドバタイズメントはKubernetesクラスターへの外部トラフィックを誘引するために行われます。
    cpxCommands オプション 該当なし CPXがインスタンス化されるときに適用される、ユーザー提供のNetScaler起動設定。この設定は動的な設定ではなく、configmapへのその後の変更は、ポッドが再起動されない限りCPX設定に反映されません。詳細については、(https://docs.netscaler.com/ja-jp/citrix-adc-cpx/current-release/configure-cpx-kubernetes-using-configmaps.html)を参照してください。
    cpxLicenseAggregator オプション 該当なし CPXのライセンスに使用されている場合、CPXライセンスアグリゲーターのIPアドレス/FQDN。
    cpxShellCommands オプション 該当なし CPXがインスタンス化されるときに適用される、ユーザー提供の起動設定。これは動的な設定ではなく、configmapへのその後の変更は、ポッドが再起動されない限りCPX設定に反映されないことに注意してください。詳細については、(https://docs.netscaler.com/ja-jp/citrix-adc-cpx/current-release/configure-cpx-kubernetes-using-configmaps.html)を参照してください。
    daemonSet オプション いいえ NetScaler CPXをDaemonSetとしてデプロイする必要がある場合は、このパラメータをtrueに設定します。
    enableLivenessProbe オプション はい NetScaler CPXのliveness probe設定を無効にするには、falseに設定します。
    enableStartupProbe オプション はい NetScaler CPXのstartupProbe設定を無効にするには、falseに設定します。
    extraVolumeMounts オプション N/A
    hostName オプション N/A このエンティティは、CPXのホスト名を設定するために使用されます。
    イメージ 必須 quay.io/netscaler/netscaler-cpx@sha256:04defadf6311259d6ada5380498ed7afe8035b11ee3c1d7b456faa94472b5550 Quay.ioでホストされているNetScaler CPXイメージ。
    ingressIP 任意 N/A 値がイングレスリソースのingress.com/frontend-ipアノテーションによって上書きされない場合、イングレスリソースによって使用される外部IPアドレス。このIPアドレスは、cpxBgpRouterがtrueに設定されている場合、外部ルーターにもアドバタイズされます。
    livenessProbe 任意 N/A NetScaler CPXのlivenessProbe設定。
    mgmtHttpPort オプション 9080 NodePort CPXサービスに使用されるHTTPポート。
    mgmtHttpsPort オプション 9443 NodePort CPXサービスに使用されるHTTPSポート。
    nitroReadTimeout オプション 20 nitro読み取りタイムアウト(秒単位)。
    nsConfigDnsRec オプション フォールス Ingressを介したNetScalerでのDNSアドレスレコードの追加を有効/無効にするため。
    nsCookieVersion 任意 0 永続性クッキーのバージョン。指定可能な値は0と1です。
    nsDnsNameserver 任意 N/A NetScalerのDNSネームサーバー。
    nsEnableLabels 任意 トゥルー NetScaler CPXのラベルを有効にします。
    nsGateway 任意 192.168.1.1 CPXがホストモードで実行されている場合、つまりcpxBgpRouterがtrueに設定されている場合に、内部通信に使用するゲートウェイ。このパラメータが指定されていない場合、nsIPネットワークの最初のIPアドレスがゲートウェイとして使用されます。nsIPと同じネットワーク内にある必要があります。
    nsHTTP2ServerSide オプション オフ NetScalerサービスグループ構成でHTTP2を有効にするには、このパラメータをONに設定します。
    nsIP オプション 192.168.1.2 CPXがホストモードで実行されている場合、つまりcpxBgpRouterがtrueに設定されている場合に、NetScaler CPXが内部通信に使用するNetScaler IPアドレス。このIP範囲に/24の内部ネットワークが作成され、ネットワーク名前空間内の内部通信に使用されます。
    nsLbHashAlgo.required オプション いいえ ロードバランシングの一貫性ハッシュアルゴリズムを設定するには、このパラメータをtrueに設定します。
    nsLbHashAlgo.hashFingers オプション 256 ハッシュアルゴリズムに使用するフィンガーの数。指定可能な値は1から1024までです。
    nsLbHashAlgo.hashAlgorithm 任意 'デフォルト' サポートされているアルゴリズムは、default、jarh、およびpracです。
    nsProtocol 任意 エイチティーティーピー NetScaler CPXとNetScaler Ingress Controller間の通信に使用されるプロトコル。
    nsSvcLbDnsRec 任意 いいえ このパラメータをtrueに設定すると、タイプLoadBalancerサービスを介したNetScalerでのDNSアドレスレコードの追加が有効になります。
    prometheusCredentialSecret 任意 該当なし Prometheus を使用したメトリクスのネイティブエクスポート用の読み取り専用ユーザーを作成するために必要なシークレットキー。
    pullPolicy 必須 IfNotPresent NetScaler CPX イメージのプルポリシー。
    service.annotations 任意 該当なし CPX サービスで使用されるアノテーションの辞書。例: こちらを参照してください。
    service.spec 任意 該当なし NetScaler CPX の仕様設定。CPX サービスを NodePort として公開するには、service.spec.type を NodePort として指定し、service.annotations の下の service.citrix.com/secret アノテーションを使用してフロントエンドサーバー証明書のシークレットリソース名を指定します。例: service.citrix.com/secret: tls-secret。この表の後の注記では、CPX サービスを NodePort として公開するために、デプロイメント YAML で必要なフィールドを指定する方法の例を示します。
    startupProbe オプション N/A NetScaler CPXのstartupProbe設定。
    注
    CPXサービスをNodePortとして公開するには、サービスタイプをNodePortとして指定し、CPX-with-NSICデプロイメントYAMLでフロントエンドサーバー証明書のシークレットリソース名を次のように指定します。
    service:
      annotations:
        service.citrix.com/secret: tls-secret
      spec:
        type: NodePort
  8. 必要なパラメーターの値を更新したら、作成をクリックします。Ingress Controllerが搭載されたNetScaler CPXが正常にデプロイされ、初期化されていることを確認してください。
    Ingress ControllerがデプロイされたCPXをデプロイ
  9. NetScaler CPXのサービスアカウントに特権セキュリティコンテキスト制約をアタッチします(特権ポッドとして実行されるため)。次のコマンドを使用します。
    • NetScaler CPXがデプロイされているネームスペースで、次のコマンドを使用してNetScaler CPXが使用するサービスアカウント名を取得します: oc get sa
    • NetScaler CPXのサービスアカウントに特権SCCをアタッチします。
    oc adm policy add-scc-to-user privileged system:serviceaccount:<namespace>:<CPX-ServiceAccount-Name retrieved in the previous step>
  10. ワークロード > ポッドセクションに移動し、netscaler-cpx-with-ingress-controllerポッドが稼働中であることを確認します。
    Ingress ControllerポッドがデプロイされたCPXをデプロイ
  11. トラフィックを送信してデプロイメントを確認します。
    1. 次のコマンドを使用してNodePortの詳細を取得します。
      oc get svc
    2. 次のコマンドに示すように、cpx-service NodePort を使用してトラフィックを送信します。
      curl http://citrix-ingress-Operator.com:<NodePort> --resolve citrix-ingress-Operator.com:<NodePort>:<Master-Node-IP>
    上記の curl コマンドは、次の出力を返すはずです。
    <html><body><h1>It works!</h1></body></html>

参考資料