NetScaler Operator を使用して OpenShift に NetScaler Ingress Controller を展開する

最終公開日 : Oct 02, 2026
このセットアップでは、NetScaler Ingress Controller は OpenShift クラスターの外部にある NetScaler MPX または NetScaler VPX を構成します。

前提条件

  • Red Hat OpenShift Cluster (バージョン 4.1 以降)。
  • NetScaler Operator を展開します。NetScaler Operator の展開方法については、NetScaler Operator の展開 を参照してください。
  • NetScaler Ingress Controller が NetScaler と通信するために必要な IP アドレスを特定します。この IP アドレスは、NetScaler の展開タイプに応じて、次のいずれかの IP アドレスである可能性があります。
    • NSIP (スタンドアロンアプライアンスの場合) - スタンドアロン NetScaler アプライアンスの管理 IP アドレスです。詳細については、NetScaler の IP アドレス指定 を参照してください。
    • SNIP (高可用性モードのアプライアンスの場合) - サブネット IP アドレスです。詳細については、NetScaler の IP アドレス指定 を参照してください。
    • CLIP (クラスターモードのアプライアンスの場合) - クラスター化された NetScaler 展開のクラスター管理 IP (CLIP) アドレスです。詳細については、クラスターの IP アドレス指定 を参照してください。
  • イングレスデバイスとして使用される NetScaler VPX または NetScaler MPX のユーザー名とパスワード。NetScaler Ingress Controller が NetScaler VPX または NetScaler MPX を構成できるように、NetScaler には特定の権限を持つシステムユーザーアカウント (非デフォルト) が必要です。NetScaler でシステムユーザーアカウントを作成する手順については、NetScaler で NetScaler Ingress Controller 用のシステムユーザーアカウントを作成する を参照してください。
    ユーザー名とパスワードを環境変数としてコントローラーに直接渡すか、OpenShift シークレットを使用できます (推奨)。次のコマンドを使用してユーザー名とパスワードのシークレットを作成するには、<username> と <password> を必要な値に変更します。
    oc create secret  generic nslogin --from-literal=username=<username> --from-literal=password=<password>
  • 任意のサービスモニターにエクスポートするには、次のコマンドを使用してサービスモニター CRD をインストールします。
    oc create -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/refs/heads/main/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml

NetScaler Operator を使用して NetScaler Ingress Controller をスタンドアロンポッドとして展開する

NetScaler Operator を使用すると、NetScaler Ingress Controller を OpenShift クラスター内のスタンドアロンポッドとして展開できます。NetScaler Ingress Controller は、OpenShift クラスターで実行されているアプリケーションのイングレスデバイスまたはルーターとして展開される NetScaler MPX または NetScaler VPX を構成します。次の図はトポロジを示しています。
vpx トポロジー
次の手順を実行します。
  1. OpenShift 4.x クラスターコンソールにログインします。
  2. コンソールを使用して Apache アプリケーションを展開します。
    1. Workloads > Deployments > Create Deployment に移動し、次の YAML ファイルを使用してデプロイを作成します。
      注:
      Apache アプリケーションはデモンストレーションのみを目的としています。要件に基づいて 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
          ---
    2. Workloads > Pods セクションに移動し、Apache アプリケーションのポッドが稼働していることを確認します。
      アプリケーションポッド
  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 アプリケーションのイングレスを作成します。Networking > Ingress > Create Ingress に移動し、次の YAML を使用してイングレスを作成します。クラスターに適用する前に、イングレス YAML で NetScaler VPX の VIP アドレスを更新してください。
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      annotations:
        ingress.citrix.com/frontend-ip: <NSVIP>
      name: vpx-ingress
      spec:
        ingressClassName: nsic-vpx
        rules:
        - host: citrix-ingress-operator.com
          http:
            paths:
            - backend:
                service:
                  name: apache
                  port:
                    number: 80
              path: /
              pathType: Prefix
    アプリケーションイングレス
  5. Operators > Installed Operators に移動し、NetScaler® Operator をクリックします。
    NetScaler Ingress Controller オペレーター
  6. NetScaler NetScaler Ingress Controller タブをクリックし、Create NetScalerIngressController を選択します。
    NetScaler NetScaler Ingress Controller の作成(/en-us/netscaler-k8s-ingress-controller/media/create-cic-instance.png)
    NetScaler NetScaler Ingress Controller の YAML 定義が表示されます。必要に応じて、Form view ボタンを選択し、フォームでパラメータを更新できます。
    パラメータリスト(/en-us/netscaler-k8s-ingress-controller/media/nic-instance-yaml.png)
  7. インストール中に構成できる必須およびオプションのパラメータを一覧表示する以下の表を参照してください。
    注記:
    • acceptLicense パラメータが Yes に設定されていることを確認してください。
    • entityPrefix に一意の値を指定します。
    • nsIP パラメータには NetScaler VPX インスタンスの IP アドレスを、adcCredentialSecret パラメータには NetScaler VPX 資格情報を使用して作成された Kubernetes シークレットを指定します。
    • NetScaler Ingress Controller をこの手順で指定されたイングレスリソースに関連付けるには、ingressClass パラメータを使用してイングレスクラス名を ingressClass: [‘NSIC-vpx’] として指定します。
注記:
必要に応じて、form view をクリックして、必要に応じてパラメータを設定できます。
ユースケースに応じて、他の利用可能なパラメータを構成できます。
パラメータ 必須またはオプション デフォルト値 説明
acceptLicense 必須 いいえ NetScaler Ingress Controller EULA に同意するには、この値を Yes に設定します。
アフィニティ オプション N/A Pod の割り当て用アフィニティラベル。
extraVolumes オプション N/A マウントする追加の VolumeMounts。
imagePullSecrets オプション N/A プライベートDockerレジストリまたはリポジトリからイメージをプルするために使用されるKubernetesシークレットのリスト。このシークレットの作成方法の詳細については、「プライベートレジストリからイメージをプルする」を参照してください。
nodeSelector オプション N/A NetScaler Ingress ControllerのデプロイでnodeSelectorオプションに使用されるノードラベルのキーと値のペア。
podAnnotations オプション N/A ポッドに追加するアノテーションのマップ。
トレランス オプション N/A NetScaler Ingress Controllerのデプロイに対するtolerations。
パラメータ 必須/任意 デフォルト値 説明
analyticsConfig
distributedTracing.enable 任意 フォールス NetScalerでOpenTracingを有効にするには、この値をtrueに設定します。
distributedTracing.samplingrate 任意 100 OpenTracingのサンプリングレート(パーセンテージ)。
必須 必須 フォールス NetScalerがメトリクスとトランザクションレコードをアナリティクスサーバーに送信するように設定する場合、この値をtrueに設定します。
endpoint.metrics.service オプション N/A アナリティクスサーバーのIPアドレスまたはDNSアドレス。形式: servicename.namespace, servicename.namespace.svc.cluster.local,namespace/servicename。
endpoint.transactions.service オプション N/A Kubernetes環境にデプロイされたアナリティクスサービスのネームスペースを持つIPアドレスまたはサービス名。形式: namespace/servicename。
timeseries.port オプション 30002 時系列エンドポイントのために、クラスター外にアナリティクスサービスを公開するために使用されるポート。
timeseries.auditlogs.enable オプション いいえ NetScalerから監査ログデータをエクスポートするには、この値をtrueに設定します。
timeseries.events.enable 任意 いいえ NetScalerからイベントをエクスポートするには、この値をtrueに設定します。
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 に設定します。
transactions.port 任意 30001 トランザクションエンドポイントのために、クラスター外にアナリティクスサービスを公開するために使用されるポート。
transactions.enable 任意 フォールス NetScalerからトランザクションをエクスポートするには、この値をtrueに設定します。
パラメータ 必須/任意 デフォルト値 説明
エクスポーター
extraVolumeMounts 任意 該当なし エクスポーターコンテナにマウントする追加のVolumeMounts。
イメージ 任意 quay.io/netscaler/netscaler-adc-metrics-exporter@sha<sha value of the latest release> Quay.ioでホストされているメトリクスエクスポーターイメージ。
必須 オプション フォールス trueに設定すると、NetScaler MPXまたはNetScaler VPXのメトリクスをプルするために、NetScaler Ingress ControllerとともにExporter for NetScaler Statsが実行されます。
pullPolicy オプション IfNotPresent エクスポーターイメージのプルポリシー。
ports.containerPort オプション 8888 エクスポーターコンテナポート。
リソース 任意 該当なし メトリクスエクスポーターコンテナのCPU/メモリリソース。
serviceMonitorExtraLabels 任意 該当なし エクスポーターが有効な場合のサービスモニターの追加ラベル。
パラメータ 必須/任意 デフォルト値 説明
ingressController
clusterName 任意 該当なし NetScaler Ingress ControllerがデプロイされているKubernetesクラスターの一意の識別子。
defaultSSLCertSecret オプション 該当なし NetScalerでデフォルトの非SNI証明書として使用する必要があるKubernetesシークレット名。
defaultSSLSNICertSecret オプション 該当なし NetScalerでデフォルトのSNI証明書として使用する必要があるKubernetesシークレット名。
disableAPIServerCertVerify オプション フォールス APIサーバー証明書の検証を無効にするには、このパラメーターをTrueに設定します。
disableOpenshiftRoutes オプション いいえ デフォルトでは、OpenShiftルートはOpenShift環境で処理されます。このパラメータを使用して、NetScaler Ingress ControllerがOpenShiftルートを処理するのを無効にできます。
enableLivenessProbe オプション はい NetScaler Ingress Controllerのライブネスプローブ設定を無効にするには、falseに設定します。
enableReadinessProbe オプション はい NetScaler Ingress Controllerのレディネスプローブ設定を無効にするには、falseに設定します。
entityPrefix オプション N/A NetScaler MPXまたはNetScaler VPX上のリソースのプレフィックス。
ignoreNodeExternalIP 任意 偽 LoadBalancerサービスまたはNodePortサービスのサービスグループメンバーとしてノードIPアドレスを追加する場合、NetScaler Ingress Controllerには選択基準があり、利用可能な場合はNode ExternalIPを、Node ExternalIPが利用できない場合はNode InternalIPを選択します。しかし、一部のユーザーは、Node ExternalIPが存在する場合でも、Node ExternalIPよりもNode InternalIPを使用したいと考えるかもしれません。この変数がtrueに設定されている場合、NSICはNode ExternalIPが存在する場合でも、サービスグループメンバーに使用するNode InternalIPを優先します。
イメージ 必須 quay.io/netscaler/netscaler-k8s-ingress-controller@sha value of latest release Quay.ioでホストされているNetScaler Ingress Controllerイメージ。
ingressClass 任意 該当なし 特定のイングレスリソースをNetScaler Ingress Controllerに関連付けるためのパラメータ。イングレスクラスの詳細については、「Ingress class support」を参照してください。Kubernetesバージョン1.19以降の場合、このパラメータはここで指定された名前でIngressClassオブジェクトを作成します。
extraVolumeMounts 任意 該当なし NetScaler Ingress Controllerコンテナにマウントされる追加のVolumeMounts。
IPAM 任意 フォールス IPAMコントローラーを使用してLoadBalancerタイプのサービスにIPアドレスを自動的に割り当てるには、このパラメーターをtrueに設定します。
jsonLog 任意 フォールス ログメッセージがJSON形式で必要な場合は、この引数をtrueに設定します。
kubernetesURL 任意 N/A NetScaler Ingress Controllerがイベントを登録するために使用するkube-apiserverのURL。値が指定されていない場合、NetScaler Ingress Controllerは内部kube-apiserver IPアドレスを使用します。
livenessProbe 任意 N/A NetScaler Ingress Controller のライブネスプローブ設定。
logLevel オプション INFO NetScaler Ingress Controller によって生成されるログを制御するログレベル。サポートされているログレベルは、CRITICAL、ERROR、WARNING、INFO、DEBUG、TRACE、および NONE です。
logProxy オプション N/A NetScaler 可観測性エクスポーター用の Elasticsearch、Kafka、または Zipkin エンドポイント。
multiClusterPrefix オプション mc マルチクラスターイングレス機能のために、NetScaler MPX または NetScaler VPX 上の共有リソースに設定するプレフィックス。コンテンツスイッチング仮想サーバーのIPアドレスを共同で共有するNetScaler Ingress Controllerは、multiclusterPrefixに同じ値を設定する必要があります。詳細については、こちらを参照してください。
namespaceLabels オプション N/A OpenShiftクラスターでrouteShardingのためにNetScaler Ingress Controllerが使用する名前空間ラベルセレクターを指定します。
nodeLabels 任意 "" ノードラベルを持つノードにPodがある場合、NetScaler Ingress ControllerはNetScalerを設定して、BGPを使用してVIPをアドバタイズします。
nodeWatch 任意 フォールス NetScaler MPXまたはNetScaler VPXからKubernetesクラスター内のPodへのネットワークルートを自動的に構成したい場合は、パラメーターをtrueに設定します。詳細については、「NetScalerインスタンスでルートを自動的に構成する」を参照してください。
nsncPbr 任意 フォールス NetScaler Node ControllerがNetScalerでポリシーベースルーティング (PBR) を構成していることをNetScaler Ingress Controllerに通知するには、このパラメーターをtrueに設定します。詳細については、「NSNC-PBR-SUPPORT」を参照してください。
openShift オプション 真 OpenShift環境が使用されていない場合、このパラメータをfalseに設定します。
optimizeEndpointBinding オプション 偽 バックエンドエンドポイントを単一のAPI呼び出しでサービスグループにバインドできるようにするには、このパラメータをtrueに設定します。アプリケーションあたりのエンドポイント(ポッド)の数が多い場合に推奨されます。NetScalerバージョン13.0-45.7以降にのみ適用されます。
podIPsforServiceGroupMembers オプション 偽 デフォルトでは、NetScaler Ingress Controllerは、LoadBalancerサービスおよびNodePortサービスタイプを設定する際に、ノードIPアドレスとノードポートをサービスグループメンバーとして追加します。Trueに設定すると、NetScaler Ingress ControllerはノードIPアドレスとノードポートの代わりにポッドIPアドレスとポッドポートを追加します。feature-node-watch引数を使用するか、NetScaler Node Controllerを使用していずれかの方法で、NetScalerとK8sクラスターの内部ポッド間にルートがある場合、このパラメータをtrueに設定できます。
profileHttpFrontend オプション N/A フロントエンドHTTPプロファイルは、設定によるインライン、または既存の事前設定済みプロファイルによって、2つの方法のいずれかで構成できます。空の値も許可されます。詳細については、FRONTEND_HTTP_PROFILEを使用した構成を参照してください。
profileSslFrontend オプション N/A フロントエンドSSLプロファイルは、設定を介したインライン、または既存の事前設定済みプロファイルによって、2つの方法のいずれかで構成できます。空の値も許可されます。profileSslFrontend.bindings.ciphers は設定でのみ使用できます。詳細については、「FRONTEND_SSL_PROFILEを使用した構成」を参照してください。
profileTcpFrontend オプション N/A フロントエンドTCPプロファイルは、設定を介したインライン、または既存の事前設定済みプロファイルによって、2つの方法のいずれかで構成できます。空の値も許可されます。詳細については、「FRONTEND_TCP_PROFILEを使用した構成」を参照してください。
pullPolicy 必須 IfNotPresent NetScaler Ingress Controllerのイメージプルポリシー。
rbacRole オプション 偽 このパラメータをtrueに設定すると、NetScaler Ingress ControllerがRBACロールセットrbacRole=trueでデプロイされます。デフォルトでは、NetScaler Ingress ControllerはRBAC ClusterRole(rbacRole=false)でインストールされます。
readinessProbe オプション 該当なし NetScaler Ingress ControllerのReadinessプローブ設定。
リソース オプション 該当なし NetScaler Ingress ControllerコンテナのCPUとメモリの資源。
routeLabels オプション 該当なし OpenShiftクラスターでrouteShardingのためにNetScaler Ingress Controllerが使用するルートラベルセレクター。
serviceClass オプション N/A 複数のイングレスコントローラーがデプロイされている場合に、特定のサービスのみをNetScaler Ingress Controllerに関連付けるために使用されるパラメーターです。サービス クラスの詳細については、サービス クラスのサポートを参照してください。
setAsDefaultIngressClass オプション 偽 IngressClassオブジェクトをデフォルトのイングレスクラスとして設定します。「ingressClassName」フィールドが指定されていない新しいイングレスには、このイングレスクラスが割り当てられます。このパラメーターは、Kubernetesバージョン1.19以降にのみ適用されます。
updateIngressStatus オプション 真 NetScaler Ingress Controllerによって管理されるイングレスリソースのStatus.LoadBalancer.Ingressフィールドを割り当てられたIPアドレスで更新する必要がある場合に、このパラメーターを設定します。詳細については、こちらを参照してください。
パラメーター 必須/オプション デフォルト値 説明
ネットスケーラー
adcCredentialSecret 必須 NA NetScaler Ingress ControllerがNetScalerに接続するために必要なSecret。
nitroReadTimeout 任意 20 nitroの読み取りタイムアウト(秒単位)。
nsConfigDnsRec 任意 いいえ イングレス経由でNetScalerでのDNSアドレスレコードの追加を有効にするには、trueに設定します。
nsCookieVersion 任意 0 永続性クッキーのバージョン (0 または 1)。
nsDnsNameserver 任意 該当なし NetScaler の DNS ネームサーバー。
nsHTTP2ServerSide 任意 OFF NetScaler サービスグループ構成で HTTP2 を有効にするには、このパラメーターを ON に設定します。
nsIP 必須 該当なし NetScaler IP アドレス。
nsLbHashAlgo.required 任意 無効 ロードバランシングの一貫性ハッシュアルゴリズム。
nsLbHashAlgo.hashFingers 任意 256 ハッシュアルゴリズムに使用するフィンガーの数。指定可能な値は1から1024です。
nsLbHashAlgo.hashAlgorithm 任意 既定 サポートされているアルゴリズム。サポートされているアルゴリズムは、default、jarh、およびpracです。
nsPort 任意 443 NetScaler Ingress ControllerがNetScalerと通信するために使用するポート。HTTPにはポート80を使用できます。
nsProtocol 任意 HTTPS NetScaler Ingress ControllerがNetScalerと通信するために使用するプロトコルです。ポート80でHTTPを使用できます。
nsSNIPS 任意 N/A NetScaler上のサブネットIPアドレスのリスト。静的ルートの代わりにPBRルートを作成するために使用されます PBR support
nsSvcLbDnsRec 任意 フォールス このパラメータをtrueに設定すると、LoadBalancerサービスタイプを介したNetScalerでのDNSアドレスレコードの追加が有効になります。
nsVIP 任意 N/A NetScaler上の仮想IPアドレス。
  1. 必要なパラメータの値を更新したら、作成をクリックします。
    NetScaler Ingress Controllerが正常にデプロイされ、初期化されていることを確認します。
    NetScaler NetScaler Ingress Controllerインスタンス
  2. ワークロード > Podセクションに移動し、NetScaler NetScaler Ingress Controller Podが稼働していることを確認します。
    アプリケーションPodが稼働中
  3. トラフィックを送信してデプロイを検証します。
    curl http://citrix-ingress-Operator.com --resolve citrix-ingress-Operator.com:80:<VIP>
    前のcurlコマンドは次を返すはずです。
    <html><body><h1>It works!</h1></body></html>
注記:
  • アプリケーションにClusterIPタイプのサービスを使用している場合は、OpenShiftクラスター内のPodネットワークがNetScaler VPXまたはNetScaler MPXから到達可能であることを確認してください。NetScaler Ingress Controllerを使用して静的ルートを自動的に構成するには、「静的ルートの構成」を参照してください。

参照