NetScaler® プロファイルサポート

最終公開日 : Oct 02, 2026
NetScaler Kubernetes Gateway Controller は、堅牢で一元化された構成を実現するために、プロファイルCRD (SSLプロファイル、HTTPプロファイル、TCPプロファイルを含む) を導入します。これらのプロファイルにより、クラスターオペレーターは、TLS暗号、TCP最適化、HTTPタイムアウトなどの標準化された再利用可能なインフラストラクチャ設定を定義でき、アプリケーション開発者はそれらをルーティング定義に簡単に適用できます。

プロファイルCRDのデプロイ

NetScalerプロファイルYAMLファイル: profiles_crd.yaml。
注:
デプロイYAMLファイルを変更しないようにしてください。
次のコマンドを使用して、CRDをデプロイします:
kubectl apply -f profiles_crd.yaml
例:
root@1:~# kubectl apply -f profiles_crd.yaml
customresourcedefinition.apiextensions.k8s.io/httpprofiles.citrix.com created
customresourcedefinition.apiextensions.k8s.io/tcpprofiles.citrix.com created
customresourcedefinition.apiextensions.k8s.io/sslprofiles.citrix.com created

プロファイル仕様

すべてのプロファイルCRDは、目的のNetScaler構成を定義するために、次の2つのフィールドのいずれかを使用します。これらのフィールドは相互に排他的です:
  • spec.preconfigured
  • spec.config
フィールド 目的 NetScalerでのアクション
spec.preconfigured NetScalerアプライアンス上の既存のプロファイルを使用します。 コントローラーはプロファイルを作成しません。提供された文字列値をバインディングのプロファイル名として使用します。
spec.config プロファイルを定義します。 コントローラーは、configブロックで指定されたキーと値のペアを使用して、NetScaler上に一意の名前を持つプロファイル(CRDのメタデータに基づく)を作成します。

NetScaler Kubernetes Gateway ControllerでのNetScalerプロファイルの追加

NetScalerプロファイル(HTTP、TCP、SSL)を、Kubernetes Gatewayリソースにフロントエンドプロファイルおよびバックエンドプロファイルとして追加できます。

フロントエンドプロファイル

フロントエンドプロファイルは、Gatewayのリスナーに直接設定を適用するために使用されます。たとえば、NetScaler上のフロントエンドコンテンツスイッチング仮想サーバーなどです。これらのプロファイルには、バインディング用のtargetRefセクションを含める必要があります。
単一のフロントエンドプロファイルCRDを複数のGatewayに効率的に適用できます。

例1 すべてのGatewayリスナーに設定されたフロントエンドSSLプロファイル

次の例では、カスタム構成パラメーターを持つ新しいフロントエンドSSLプロファイルを定義し、「my-gateway」リソースのすべてのリスナーまたはコンテンツスイッチング仮想サーバーに適用します。
apiVersion: citrix.com/v1
kind: sslprofile
metadata:
  name: frontend-ssl-custom
  namespace: production
spec:
  targetRef:
    - name: my-gateway
      namespace: production
      kind: Gateway
      group: gateway.networking.k8s.io
  config:
    sslprofiletype: "frontend"
    sessreuse: "ENABLED"
    zerorttearlydata: "DISABLED"
    hsts: "ENABLED"
    preload: "YES"

バックエンドプロファイル

バックエンドプロファイルは、Gateway(NetScaler)とバックエンドKubernetesアプリケーション間の接続に影響する設定を構成するために使用されます。たとえば、サービスグループやサーバーなどです。
バックエンドプロファイルにはtargetRefを含めることはできません。代わりに、HTTPRouteの標準ExtensionRefフィルタータイプを使用して特定のHTTPRouteルールに直接アタッチされ、ルートごとにきめ細かな制御を可能にします。

例1:HTTPRoute用のバックエンド事前設定済みSSLプロファイル

次の例では、「manual_secure_backend」という名前の既存のNetScalerプロファイルを使用し、HTTPRoutesによる使用を意図したプロファイルを定義します(targetRefは存在しません)。
apiVersion: citrix.com/v1
kind: sslprofile
metadata:
  name: simple-ssl-profile-backend
spec:
  # Define the existing profile name
  preconfigured: "manual_secure_backend"

例2:バックエンドプロファイルをHTTPRouteに適用する

次のHTTPRouteは、ExtensionRefフィルターを介して前の例で作成されたバックエンドsslprofileを参照します。
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
  name: my-httproute
spec:
  parentRefs:
    - name: my-gateway-http
      namespace: default
  hostnames:
    - "example123.com"
  rules:
  - filters:
    - type: ExtensionRef
      extensionRef:
        group: "citrix.com"
        kind: "sslprofile"
        name: "simple-ssl-profile-backend" # References the Profile CRD name
    matches:
    - path:
        type: PathPrefix
        value: /
    backendRefs:
      - name: app1-svc
        namespace: default
        port: 80

NetScalerプロファイルの種類

次のNetScalerプロファイルタイプがサポートされています。
  • HTTPプロファイル
  • TCPプロファイル
  • SSLプロファイル

SSLプロファイル

SSLプロファイルは、SSLエンティティの設定の集合です。設定の容易さと柔軟性を提供します。各アプリケーションで設定を構成する代わりに、プロファイルで設定を構成し、その設定が適用されるすべてのアプリケーションにプロファイルをバインドできます。
SSLプロファイルCRDスキーマ参照は次のとおりです。
フィールド タイプ 説明 フロントエンドプロファイルに必須 バックエンドプロファイルに必須
事前構成済み 文字列 config と相互排他的です。使用する NetScaler アプライアンス上に存在する、事前設定済みまたは組み込みの SSL プロファイルの名前。 いいえ いいえ
構成 オブジェクト preconfigured と相互排他的です。完全なカスタムプロファイル用の NetScaler NITRO API に関連するすべてのパラメーターが含まれます。お客様は、ここで有効な NITRO SSL プロファイルパラメーターを指定できます。SSL プロファイルでサポートされているキーと値のペアについては、SSL プロファイル を参照してください。 いいえ いいえ
targetRef オブジェクトの配列 このプロファイルが適用されるターゲットリソース(通常はGateway)のリスト。このフィールドはFrontend Profilesには必須であり、Backend Profilesには省略する必要があります。 はい いいえ
gatewayClassName 文字列 このSSLプロファイルを適用する必要があるGatewayClassの名前。マルチテナント環境でプロファイルを特定のコントローラーインスタンスにスコープするために使用されます。 いいえ いいえ
SSLサイファ 文字列の配列 SSLプロファイルにバインドされる暗号のリスト。優先順位はリスト内の順序によって決定され、暗号スイート、事前定義された暗号グループ、またはユーザー作成の暗号グループを含めることができます。 いいえ いいえ
重要
  • 事前設定されたSSLプロファイルを使用する場合、NetScalerを介して手動で暗号をバインドする必要があり、spec.policies.sslciphersは無視されます。
  • 組み込みの暗号グループはTier-1およびTier-2 NetScalerでサポートされていますが、ユーザー定義の暗号グループはTier-1 NetScalerでのみサポートされています。

例1:事前設定されたフロントエンドSSLプロファイル

apiVersion: citrix.com/v1
kind: sslprofile
metadata:
  name: frontend-ssl-preconfigured
spec:
  targetRef:
    - name: my-gateway-https2
      sectionName: https
  preconfigured: "ns_default_ssl_profile_frontend"

例2:カスタムフロントエンドSSLプロファイル

apiVersion: citrix.com/v1
kind: sslprofile
metadata:
  name: frontend-ssl-custom
spec:
  targetRef:
    - name: my-gateway-https  # Applying to all csvservers in the Gateway
  sslciphers:
    - "HIGH"
  config:
    sslprofiletype: "frontend"
    sessreuse: "ENABLED"
    sesstimeout: 300
    clientauth: "DISABLED"
    ssl3: "DISABLED"
    tls1: "DISABLED"
    tls11: "DISABLED"
    includesubdomains: "YES"
    maxage: 31536000
    preload: "YES"

例3:事前設定されたバックエンドSSLプロファイルと、そのプロファイルを参照するHTTPRoute

apiVersion: citrix.com/v1
kind: sslprofile
metadata:
  name: backend-ssl-preconfigured
spec:
  preconfigured: "ns_default_ssl_profile_backend"
apiVersion: gateway.networking.k8s.io/v1
kind: HTTP Route
metadata:
  name: my-httproute
spec:
  parentRefs:
    - name: my-gateway-https
  hostnames:
    - "example123.com"
  rules:
  - filters:
    - type: ExtensionRef
      extensionRef:
        group: "citrix.com"
        kind: "sslprofile"
        name: "backend-ssl-preconfigured"
    matches:
    - path:
         type: PathPrefix
         value: /
    backendRefs:
        - name: app1-svc
          namespace: default
          port: 443

例4:カスタムバックエンドSSLプロファイルと、そのプロファイルを参照するHTTPRoute

apiVersion: citrix.com/v1
kind: sslprofile
metadata:
  name: backend-ssl-custom
spec:
  sslciphers:
    - "HIGH"
  config:
    sslprofiletype: "backend"
    sessreuse: 'ENABLED'
    sesstimeout: 300
    serverauth: 'ENABLED'
    insertionencoding: 'Unicode'
    ssl3: 'ENABLED'
    tls1: 'DISABLED'
    tls12: 'ENABLED'
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
  name: my-httproute2
spec:
  parentRefs:
    - name: my-gateway-https2
  hostnames:
    - "example123.com"
  rules:
  - filters:
    - type: ExtensionRef
      extensionRef:
        group: "citrix.com"
        kind: "sslprofile"
        name: "backend-ssl-custom"
    matches:
    - path:
         type: PathPrefix
         value: /
    backendRefs:
        - name: app1-svc
          port: 443

TCPプロファイル

TCPプロファイルは、トランスポート層の動作を最適化するために使用されるTCP設定の集合体です。このプロファイルを使用すると、TCP Fast OpenやHyStartなどの高度な設定を適用して、接続のパフォーマンスと効率を向上させることができます。
TCPプロファイルCRDスキーマ参照
フィールド タイプ 説明 フロントエンドプロファイルに必須 バックエンドプロファイルに必須
事前設定済み 文字列 config とは相互排他的です。使用する NetScaler アプライアンスに存在する、事前設定済みまたは組み込みの TCP プロファイルの名前。 いいえ いいえ
設定 オブジェクト preconfigured とは相互排他的です。完全にカスタムなプロファイルのために、NetScaler NITRO API に関連するすべてのパラメーターが含まれます。お客様は、任意の有効な NITRO TCP プロファイルパラメーターを指定できます。TCP プロファイルのすべての可能なキーと値のペアについては、TCP profile を参照してください。 いいえ いいえ
targetRef オブジェクトの配列 このプロファイルが適用されるターゲットリソース(通常は Gateway)のリスト。このフィールドはフロントエンドプロファイルに必須であり、バックエンドプロファイルでは省略する必要があります。 はい いいえ
gatewayClassName 文字列 このTCPプロファイルを適用する必要があるGatewayClassの名前。マルチテナント環境で、プロファイルを特定のコントローラーインスタンスにスコープするために使用されます。 いいえ いいえ

例1:事前設定されたフロントエンドTCPプロファイル

apiVersion: citrix.com/v1
kind: tcpprofile
metadata:
  name: frontend-tcp-preconfigured
spec:
  targetRef:
    - name: my-gateway-https2
      sectionName: https    # Applying to specific csvserver/Listener in the Gateway
  preconfigured: "nstcp_default_profile"

例2:カスタムフロントエンドTCPプロファイル

apiVersion: citrix.com/v1
kind: tcpprofile
metadata:
  name: frontend-tcp-custom
spec:
  targetRef:
    - name: my-gateway-https  # Applying to all csvservers in the Gateway
  config:
    mss: 1000
    sack: ENABLED
    buffersize: 10000
    ka: ENABLED
    name: "dummy"       # Will be ignored, tcpprofile will be generated based on metadata.name and metadata.namespace  

例3:事前設定されたバックエンドTCPプロファイルと、そのプロファイルを参照するHTTPRoute

apiVersion: citrix.com/v1
kind: tcpprofile
metadata:
  name: backend-tcp-preconfigured
spec:
  preconfigured: "nstcp_default_profile"
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
  name: my-httproute
spec:
  parentRefs:
    - name: my-gateway-https
  hostnames:
    - "example123.com"
  rules:
  - filters:
    - type: ExtensionRef
      extensionRef:
        group: "citrix.com"
        kind: "tcpprofile"
        name: "backend-tcp-preconfigured"
    matches:
    - path:
         type: PathPrefix
         value: /
    backendRefs:
        - name: app1-svc
          port: 443

例4:カスタムバックエンドTCPプロファイルと、そのプロファイルを参照するHTTPRoute

apiVersion: citrix.com/v1
kind: tcpprofile
metadata:
  name: backend-tcp-custom
spec:
  config:
    mss: 1000
    sack: ENABLED

    buffersize: 10000

    ka: ENABLED
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
  name: my-httproute2
spec:
  parentRefs:
    - name: my-gateway-https2
  hostnames:
    - "example123.com"
  rules:
  - filters:
    - type: ExtensionRef
      extensionRef:
        group: "citrix.com"
        kind: "sslprofile"
        name: "backend-ssl-custom"
    - type: ExtensionRef
      extensionRef:
        group: "citrix.com"
        kind: "tcpprofile"
        name: "backend-tcp-custom"
        # Applying SSL and TCPProfile to the same rule
    matches:
    - path:
         type: PathPrefix
         value: /
    backendRefs:
        - name: app1-svc
          namespace: default
          port: 443

HTTPプロファイル

HTTPプロファイルは、WebSocketの有効化、HTTPタイムアウトのカスタマイズ、厳格な検証ルールの設定など、さまざまなアプリケーション層の動作を設定するために使用されるHTTP設定の集合体です。
HTTPプロファイルCRDスキーマ参照
フィールド タイプ 説明 フロントエンドプロファイルに必須 バックエンドプロファイルに必須
事前設定済み 文字列 config とは相互排他的です。使用する NetScaler アプライアンスに存在する、事前設定済みまたは組み込みの HTTP プロファイルの名前。 いいえ いいえ
設定 オブジェクト preconfigured とは相互排他的です。完全にカスタムなプロファイルのための NetScaler NITRO API に関連するすべてのパラメーターが含まれます。顧客は任意の有効な NITRO TCP プロファイルパラメーターを指定できます。HTTP プロファイルのすべての可能なキーと値のペアについては、HTTP プロファイルを参照してください。 いいえ いいえ
targetRef オブジェクトの配列 このプロファイルが適用されるターゲットリソース (通常は Gateway) のリスト。このフィールドはフロントエンドプロファイルには必須であり、バックエンドプロファイルには省略する必要があります。 はい いいえ
gatewayClassName 文字列 このHTTPプロファイルを適用する必要があるGatewayClassの名前。マルチテナント環境でプロファイルを特定のコントローラーインスタンスにスコープするために使用されます。 いいえ いいえ

例1: 事前設定されたフロントエンドHTTPプロファイル

apiVersion: citrix.com/v1
kind: httpprofile
metadata:
  name: frontend-http-preconfigured
spec:
  targetRef:
    - name: my-gateway-https
      kind: Gateway
  preconfigured: "frontend1"

例2: カスタムフロントエンドHTTPプロファイル

apiVersion: citrix.com/v1
kind: httpprofile
metadata:
  name: frontend-http-custom
spec:
  targetRef:
    - name: my-gateway-https
      kind: Gateway
      group: gateway.networking.k8s.io    # Applying to all CSvserver in the Gateway
  config:
    websocket: "ENABLED"
    http2: ENABLED  
    reqtimeout: 10  
    dropinvalreqs: ENABLED

例3: 事前設定されたバックエンドHTTPプロファイルと、そのプロファイルを参照するHTTPRoute

apiVersion: citrix.com/v1
kind: httpprofile
metadata:
  name: backend-http-preconfigured
spec:
  preconfigured: "nshttp_default_profile"
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
  name: my-httproute
  namespace: default
spec:
  parentRefs:
    - name: my-gateway-https
  hostnames:
    - "example123.com"
  rules:
  - filters:
    - type: ExtensionRef
      extensionRef:
        group: "citrix.com"
        kind: "tcpprofile"
        name: "backend-tcp-preconfigured"
    matches:
    - path:
         type: PathPrefix
         value: /
    backendRefs:
        - name: app1-svc
          namespace: default
          port: 443

例4: カスタムバックエンドHTTPプロファイルと、そのプロファイルを参照するHTTPRoute

apiVersion: citrix.com/v1
kind: httpprofile
metadata:
  name: backend-http-custom
spec:
  config:
    websocket: "ENABLED"
    http2: ENABLED  
    reqtimeout: 10  
    dropinvalreqs: ENABLED
# HTTProute referring custom backend sslprofile
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
  name: my-httproute2
  namespace: default
spec:
  parentRefs:
    - name: my-gateway-https2
      namespace: default
  hostnames:
    - "example123.com"
  rules:
  - filters:
    # Here we are referring to all types of profiles for this rule.
    - type: ExtensionRef
      extensionRef:
        group: "citrix.com"
        kind: "sslprofile"
        name: "backend-ssl-custom"
    - type: ExtensionRef
      extensionRef:
        group: "citrix.com"
        kind: "httpprofile"
        name: "backend-http-custom"
    - type: ExtensionRef
      extensionRef:
        group: "citrix.com"
        kind: "tcpprofile"
        name: "backend-tcp-custom"
    matches:
    - path:
         type: PathPrefix
         value: /
    backendRefs:
        - name: app1-svc
          namespace: default
          port: 443

spec.gatewayClassNameによるコントローラーのスコープ設定

spec.gatewayClassNameフィールドは、どのNetScaler Gateway ControllerインスタンスがプロファイルCRDを処理するかを制御します。この制御は、マルチテナントまたはマルチコントローラー環境において非常に重要です。
シナリオ spec.gatewayClassName コントローラーの動作
スコープ設定済み 存在する(例:netscaler-prod) そのspecific GatewayClassを管理するコントローラーインスタンスのみがプロファイルを処理し、分離とターゲット設定を保証します。
グローバル なし クラスター内のすべてのNetScaler Gateway Controllerインスタンスは、それぞれのNetScalerアプライアンス上でプロファイルを受け入れ、設定することができます。
プロファイルが、現在クラスターにデプロイされていないgatewayClassNameを指定している場合、プロファイルCRDはスキップされ、対応するGatewayClassが利用可能になるまで待機します。