NetScaler Ingress Controller の ConfigMap サポート

最終公開日 : Oct 02, 2026
ConfigMap API リソースは、ポッドで利用できる、またはコントローラーなどのシステムコンポーネントの構成データを保存できる、構成データのキーと値のペアを保持します。
ConfigMap を使用すると、構成をポッドから分離し、ワークロードをポータブルにすることができます。ConfigMap を使用すると、ワークロードの構成を簡単に変更および管理でき、構成データをポッド仕様にハードコーディングする必要性を減らすことができます。
NetScaler Ingress Controller は、NetScaler Ingress Controller の展開 で言及されている構成コマンドライン引数と環境変数をサポートしています。ただし、NetScaler Ingress Controller ポッドを再起動せずに、これらの構成をランタイムで更新することはできません。ConfigMap のサポートにより、NetScaler Ingress Controller ポッドを実行したまま、構成を自動的に更新できます。更新後にポッドを再起動する必要はありません。

NetScaler Ingress Controller でサポートされている環境変数

NetScaler Ingress Controller の以下の環境変数の値は、ConfigMap で指定できます。
  • LOGLEVEL: NetScaler Ingress Controller によって生成されるログを制御するためのログレベル (debug、info、critical など) を指定します。デフォルト値は debug です。
  • NS_HTTP2_SERVER_SIDE: NetScaler サービスグループ構成で HTTP2 を有効にします。指定可能な値は ON または OFF です。
  • NS_PROTOCOL: ADC セッションを確立するためのプロトコル (HTTP/HTTPS) を指定します。デフォルト値は http です。
  • NS_PORT: セッションを確立するためのポートを指定します。デフォルト値は 80 です。
  • NS_COOKIE_VERSION: 永続性クッキーのバージョン (0 または 1) を指定します。デフォルト値は 0 です。
  • NS_DNS_NAMESERVER: NetScaler VPX に DNS ネームサーバーを追加できるようにします。
  • POD_IPS_FOR_SERVICEGROUP_MEMBERS: 外部のティア 1 NetScaler で LoadBalancer または NodePort タイプのサービスを構成する際に、NodeIP および NodePort の代わりにポッドの IP アドレスとポートをサービスグループメンバーとして追加するように指定します。
  • IGNORE_NODE_EXTERNAL_IP: 外部のティア 1 NetScaler で LoadBalancer または NodePort タイプのサービスの NodeIP を構成する際に、外部 IP アドレスを無視し、NodeIP に内部 IP アドレスを追加するように指定します。
  • FRONTEND_HTTP_PROFILE: イングレス定義の ingress.citrix.com/frontend-httpprofile スマートアノテーションによって上書きされない限り、フロントエンド仮想サーバー (クライアントプレーン) の HTTP オプションを設定します。
  • FRONTEND_TCP_PROFILE: フロントエンド仮想サーバー(クライアント側)のTCPオプションを設定します。ただし、イングレス定義のingress.citrix.com/frontend-tcpprofileスマートアノテーションによって上書きされない限りです。
  • FRONTEND_SSL_PROFILE: フロントエンド仮想サーバー(クライアント側)のSSLオプションを設定します。ただし、イングレス定義のingress.citrix.com/frontend-sslprofileスマートアノテーションによって上書きされない限りです。
  • JSONLOG: ログメッセージがJSON形式で必要な場合は、この引数をtrueに設定します。
  • NS_ADNS_IPS: NetScalerをADNSサーバーとして構成できるようにします。
プロファイル環境変数(FRONTEND_HTTP_PROFILE、FRONTEND_TCP_PROFILE、およびFRONTEND_SSL_PROFILE)に関する詳細については、NetScalerでHTTP、TCP、またはSSLプロファイルを構成するを参照してください。
注:
これはConfigMapサポートの初期バージョンであり、現在、いくつかのパラメーターのみをサポートしています。以前は、これらのパラメーターはNS_HTTP2_SERVER_SIDEパラメーターを除いて環境変数を通じて構成可能でした。

NetScaler Ingress ControllerのConfigMapサポートの構成

この例では、ConfigMapを作成し、そのConfigMapをNetScaler Ingress Controllerに適用する方法を示します。また、変更を加えた後にConfigMapを再適用する方法も示します。変更をオプションで削除することもできます。
NetScaler Ingress ControllerのConfigMapサポートを構成するには、以下を実行します。
  1. ConfigMapに必要なキーと値のペアを含むYAMLファイルcic-configmap.yamlを作成します。
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: cic-configmap
      labels:
        app: citrix-ingress-controller
    data:
      LOGLEVEL: 'info'
      NS_PROTOCOL: 'http'
      NS_PORT: '80'
      NS_COOKIE_VERSION: '0'
      NS_HTTP2_SERVER_SIDE: 'ON'
  2. 次のコマンドを使用してcic-configmap.yamlをデプロイします。
    kubectl create -f cic-configmap.yaml
  3. NetScaler Ingress Controllerをスタンドアロンポッドとしてデプロイするためにcic.yamlファイルを編集し、以下を指定します。
    Args:
        - --configmap
            default/cic-configmap
    注:
    名前空間の指定は必須です。名前空間が指定されていない場合、ConfigMapは考慮されません。
    ConfigMap構成でNetScaler Ingress ControllerをデプロイするためのYAMLファイルのサンプルを以下に示します。完全なYAMLファイルについては、citrix-k8s-ingress-controller.yamlを参照してください。
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: cic-k8s-ingress-controller
    spec:
      selector:
        matchLabels:
          app: cic-k8s-ingress-controller
        replicas: 1
        template:
          metadata:
            name: cic-k8s-ingress-controller
            labels:
              app: cic-k8s-ingress-controller
          annotations:
          spec:
            serviceAccountName: cic-k8s-role
            containers:
            - name: cic-k8s-ingress-controller
              image: "quay.io/citrix/citrix-k8s-ingress-controller:1.36.5"
              env:
              # Set NetScaler NSIP/SNIP, SNIP in case of HA (mgmt has to be enabled)
              - name: "NS_IP"
                value: "x.x.x.x"
              - name: "EULA"
                value: "yes"
              args:
                - --ingress-classes
                  citrix
                - --feature-node-watch
                  false
                - --configmap
                  default/cic-configmap
              imagePullPolicy: Always
  4. YAMLを適用して、NetScaler Ingress Controllerをスタンドアロンポッドとしてデプロイします。
    kubectl apply -f cic.yaml
  5. 環境変数の値を変更したい場合は、ConfigMapの値を編集します。この例では、NS_HTTP2_SERVER_SIDEの値が「OFF」に変更されています。
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: cic-configmap
      labels:
        app: citrix-ingress-controller
    data:
      LOGLEVEL: 'info'
      NS_PROTOCOL: 'http'
      NS_PORT: '80'
      NS_COOKIE_VERSION: '0'
      NS_HTTP2_SERVER_SIDE: 'OFF'
  6. 次のコマンドを使用してConfigMapを再適用します。
    kubectl apply -f cic-configmap.yaml
  7. (オプション) ConfigMapを削除する必要がある場合は、次のコマンドを使用します。
    kubectl delete -f cic-configmap.yaml
    ConfigMapを削除すると、環境変数構成は次の優先順位に従ってフォールバックします。 ConfigMap構成 > 環境変数構成 > デフォルト
(オプション) ConfigMap内のすべてのキーをNetScaler Ingress Controllerの環境変数として定義したい場合は、NetScaler Ingress ControllerのデプロイYAMLファイルで以下を使用します。
envFrom:
        - configMapRef:
          name: cic-configmap