NetScalerでHTTP、TCP、またはSSLプロファイルを構成する

最終公開日 : Oct 02, 2026
NetScalerアプライアンスのHTTP、TCP、またはSSLなどの構成は、それぞれHTTPプロファイル、TCPプロファイル、またはSSLプロファイルなどの個別のエンティティを使用して指定できます。プロファイルは、個々のプロトコルに関連する設定の集合体です。たとえば、HTTPプロファイルはHTTP設定の集合体です。これにより、構成が容易になり、柔軟性が向上します。各エンティティで設定を構成する代わりに、プロファイルで設定を構成し、その設定が適用されるすべてのエンティティにプロファイルをバインドできます。
NetScaler Ingress Controllerを使用すると、プロファイルを使用してIngress NetScalerでHTTP、TCP、またはSSL関連の構成を行うことができます。

Kubernetes環境におけるNetScaler構成を理解する

Kubernetes環境では、Ingress NetScalerは外部トラフィックのフロントエンドとしてコンテンツスイッチング (CS)仮想サーバーを使用します。つまり、クライアントからの要求を受信するエンティティです。要求を処理した後、CS仮想サーバーは要求データを負荷分散 (LB)エンティティに渡します。LB仮想サーバーと関連するサービスグループは要求データを処理し、適切なアプリ(マイクロサービス)に転送します。
クライアントからトラフィックを受信するエンティティ(図ではClient Planeとして強調表示)には個別のfront end configurationを、NetScalerからKubernetesのマイクロサービスにトラフィックを転送するエンティティ(図ではServer Planeとして強調表示)にはback end configurationが必要です。
NetScaler構成
NetScaler Ingress Controllerは、要件に基づいて使用できるフロントエンドおよびバックエンド構成用の個別のスマートアノテーションを提供します。

HTTPプロファイル

HTTPプロファイルはHTTP設定の集合体です。デフォルトのHTTPプロファイル(nshttp_default_profile)は、すべてのサービスと仮想サーバーにグローバルにデフォルトで適用されるHTTP構成を設定するように構成されています。
NetScaler Ingress Controllerは、HTTPプロファイル用に次の2つのスマートアノテーションを提供します。これらのアノテーションを使用して、NetScalerのHTTP設定を定義できます。これらのアノテーションを含むIngressをデプロイすると、NetScaler Ingress ControllerはNetScalerに構成されているデフォルトのHTTPプロファイル(nshttp_default_profile)から派生したHTTPプロファイルを作成します。その後、アノテーションで指定したパラメーターを新しいHTTPプロファイルに適用し、そのプロファイルをNetScalerに適用します。
スマートアノテーション 説明 サンプル
ingress.citrix.com/frontend-httpprofile このアノテーションを使用して、フロントエンドHTTPプロファイル(クライアントプレーン)を作成します。 ingress.citrix.com/frontend-httpprofile: '{"dropinvalreqs":"enabled", "websocket" : "enabled"}'
ingress.citrix.com/backend-httpprofile このアノテーションを使用して、バックエンドHTTPプロファイル(サーバープレーン)を作成します。 ingress.citrix.com/backend-httpprofile: '{"app-1": {"dropinvalreqs":"enabled", "websocket" : "enabled"}}'
注: NetScalerでHTTP関連のグローバルパラメータを手動で有効にしてください。たとえば、バックエンド(サーバープレーン)でHTTP2を使用するには、NetScalerでHTTP2Serversideグローバルパラメータを有効にできることを確認してください。詳細については、HTTP2の構成を参照してください。

TCPプロファイル

TCPプロファイルは、TCP設定の集合です。デフォルトのTCPプロファイル(nstcp_default_profile)は、すべてのサービスと仮想サーバーにグローバルにデフォルトで適用されるTCP構成を設定するように構成されています。
NetScaler Ingress Controllerは、TCPプロファイル用に以下の2つのスマートアノテーションを提供します。これらのアノテーションを使用して、NetScalerのTCP設定を定義できます。これらのアノテーションを含むイングレスを展開すると、NetScaler Ingress Controllerは、NetScalerに構成されているデフォルトのTCPプロファイル(nstcp_default_profile)から派生したTCPプロファイルを作成します。その後、アノテーションで指定したパラメータを新しいTCPプロファイルに適用し、そのプロファイルをNetScalerに適用します。
スマートアノテーション 説明 サンプル
ingress.citrix.com/frontend-tcpprofile このアノテーションを使用して、フロントエンドTCPプロファイル(クライアントプレーン)を作成します。 ingress.citrix.com/frontend-tcpprofile: '{"ws":"enabled", "sack" : "enabled"}'
ingress.citrix.com/backend-tcpprofile このアノテーションを使用して、バックエンドTCPプロファイル (サーバープレーン) を作成します。 ingress.citrix.com/backend-tcpprofile: '{"citrix-svc":{"ws":"enabled", "sack" : "enabled"}}'

SSLプロファイル

SSLプロファイル は、SSLエンティティの設定の集合です。これにより、設定が容易になり、柔軟性が向上します。各エンティティで設定を構成する代わりに、プロファイルで設定を構成し、その設定が適用されるすべてのエンティティにプロファイルをバインドできます。

前提条件

NetScalerでは、デフォルトで、Ingress NetScalerでSSLプロファイルが有効になっていません。NetScalerでSSLプロファイルを手動で有効にしてください。SSLプロファイルを有効にすると、NetScaler上の既存のすべてのSSL関連設定が上書きされます。SSLプロファイルの詳細については、SSLプロファイル を参照してください。
SSLプロファイルは、次の2つのカテゴリに分類されます。
  • フロントエンドプロファイル: フロントエンドエンティティに適用されるパラメータを含みます。つまり、クライアントから要求を受信するエンティティに適用されます。
  • バックエンドプロファイル: バックエンドエンティティに適用されるパラメータを含みます。つまり、クライアント要求をサーバーに送信するエンティティに適用されます。
NetScalerでSSLプロファイルを有効にすると、デフォルトのフロントエンドプロファイル (ns_default_ssl_profile_frontend) がSSL仮想サーバーに適用され、デフォルトのバックエンドプロファイル (ns_default_ssl_profile_backend) がNetScaler上のサービスまたはサービスグループに適用されます。
NetScaler Ingress Controllerは、SSLプロファイル用に次の2つのスマートアノテーションを提供します。これらのアノテーションを使用して、要件に基づいてデフォルトのフロントエンドプロファイル (ns_default_ssl_profile_frontend) とバックエンドプロファイル (ns_default_ssl_profile_backend) をカスタマイズできます。
スマートアノテーション 説明 例
ingress.citrix.com/frontend-sslprofile このアノテーションを使用して、フロントエンドSSLプロファイル(クライアントプレーン)を作成します。フロントエンドSSLプロファイルは、クライアントプレーンでTLSを有効にしている場合にのみ必要です。 ingress.citrix.com/frontend-sslprofile: '{"hsts":"enabled", "tls12" : "enabled"}'
ingress.citrix.com/backend-sslprofile このアノテーションを使用して、バックエンドSSLプロファイル(サーバープレーン)を作成します。SSLバックエンドプロファイルは、バックエンドにingress.citrix.com/secure-backendアノテーションを使用する場合にのみ必要です。 ingress.citrix.com/backend-sslprofile: '{"citrix-svc":{"hsts":"enabled", "tls1" : "enabled"}}'
重要: SSLプロファイルでは、SSL証明書を構成することはできません。

アノテーションを使用したフロントエンドプロファイルの構成

HTTP、TCP、およびSSLフロントエンドプロファイルは、クライアント側のコンテンツスイッチング仮想サーバーまたはSSL仮想サーバーにアタッチされます。同じfrontend-ipを使用し、フロントエンドで同じコンテンツスイッチング仮想サーバーを使用する複数のイングレスが存在する可能性があるため、フロントエンドIPアドレスを共有する複数のイングレスで指定されたフロントエンドプロファイルアノテーションから競合が発生する可能性があります。
以下は、HTTP、TCP、およびSSLのフロントエンドプロファイルアノテーションに関するガイドラインです。
  • 同じフロントエンドIPアドレスを持つすべてのイングレスでは、すべてのイングレスでフロントエンドプロファイルに同じ値を指定することをお勧めします。
  • フロントエンドIPアドレスを共有する複数のイングレスがある場合、空のルールを持つ各フロントエンドIPアドレスに対して個別のイングレス(フロントエンドイングレスと呼ばれる)を作成することもできます。そのイングレスでは、以下の例に示すようにフロントエンドIPアノテーションを指定できます。各イングレス定義でフロントエンドプロファイルアノテーションを指定する必要はありません。
    • HTTPタイプの仮想サーバーのフロントエンドイングレスを作成するには、以下の例を参照してください。
       #Sample ingress manifest for the front-end configuration for an HTTP virtual server
       #The values for the parameters are for demonstration purpose only.


       apiVersion: networking.k8s.io/v1
       kind: Ingress
       metadata:
         name: frontend-ingress
         annotations:
         # /* The CS virtual server is derived from the combination of
       insecure-port/secure-port, frontend-ip, and
       secure-service-type/insecure-service-type annotations. */
           ingress.citrix.com/insecure-port: "80"
           ingress.citrix.com/frontend-ip: "x.x.x.x"
           ingress.citrix.com/frontend-httpprofile:'{"dropinvalreqs":"enabled", "markconnreqInval" : "enabled"}'
           ingress.citrix.com/frontend-tcpprofile: '{"ws":"enabled", "sack" :
       "enabled"}'
       spec:
         rules:
          # Empty rule
         - host:
    • SSLタイプのサービスのフロントエンドイングレスを作成するには、以下の例を参照してください。
       #Sample ingress manifest for the front-end configuration for an SSL virtual server
       #The values for the parameters are for demonstration purpose only.


       apiVersion: networking.k8s.io/v1
       kind: Ingress
       metadata:
         name: frontend-ingress
         annotations:
         #The CS virtual server is derived from the combination of
         #insecure-port/secure-port, frontend-ip, and
         #secure-service-type/insecure-service-type annotations.
           ingress.citrix.com/insecure-port: "80"
           ingress.citrix.com/secure-port: "443"
           ingress.citrix.com/frontend-ip: "x.x.x.x"
           ingress.citrix.com/frontend-sslprofile:
       '{"tls13":"enabled", "hsts" : "enabled"}'
           ingress.citrix.com/frontend-tcpprofile: '{"ws":"enabled", "sack" :
       "enabled"}'
       spec:
         rules:
         - host:
           #Presense of tls is considered as a secure service
         tls:
         - hosts:
  • 複数のイングレスで同じフロントエンドプロファイルアノテーションに異なる値がある場合、プロファイルを仮想サーバーにバインドするために次の順序が使用されます。
    • いずれかのイングレス定義に、事前設定されたプロファイルを持つフロントエンドアノテーションがある場合、それは仮想サーバーにバインドされます。
    • 同じフロントエンドIPアドレスの異なるイングレスからすべての(キー、値)をマージし、結果の(キー、値)をフロントエンドプロファイルのスマートアノテーションに使用します。
    • 異なるイングレスからの異なる値が原因で同じキーに競合がある場合、値はランダムに選択され、他の値は無視されます。競合する値を持たないようにする必要があります。
  • フロントエンドIPアドレスを共有するいずれのイングレスにもフロントエンドプロファイルアノテーションが指定されていない場合、FRONTEND_HTTP_PROFILE、FRONTEND_TCP_PROFILE、またはFRONTEND_SSL_PROFILEであるConfigMapからのグローバル値が、それぞれHTTP、TCP、およびSSLフロントエンドプロファイルに使用されます。

ConfigMap変数を使用したグローバルフロントエンドプロファイル構成

ConfigMap変数は、フロントエンドIPアドレスを共有する1つ以上のイングレスでフロントエンドプロファイルのスマートアノテーションによって上書きされない限り、フロントエンドプロファイルに使用されます。すべてのイングレスに対して任意のフロントエンドプロファイルを使用して機能を有効または無効にする必要がある場合は、HTTP、TCP、およびSSLプロファイルに対してそれぞれ変数FRONTEND_HTTP_PROFILE、FRONTEND_TCP_PROFILE、またはFRONTEND_SSL_PROFILEを使用できます。たとえば、すべてのSSLイングレスでTLS 1.3を有効にしたい場合、各イングレス定義でスマートアノテーションを使用する代わりに、FRONTEND_SSL_PROFILEを使用してこの値を設定できます。NetScaler Ingress ControllerでConfigMapを使用する方法については、ConfigMapドキュメントを参照してください。

FRONTEND_HTTP_PROFILEを使用した構成

FRONTEND_HTTP_PROFILE変数は、イングレス定義のingress.citrix.com/frontend-httpprofileスマートアノテーションによって上書きされない限り、フロントエンド仮想サーバー(クライアントプレーン)のHTTPオプションを設定するために使用されます。
NetScaler上の既存のプロファイルを使用するか、組み込みのHTTPプロファイルを使用する場合。
apiVersion: v1
kind: ConfigMap
metadata:
  name: cic-configmap
  labels:
    app: citrix-ingress-controller
data:
  FRONTEND_HTTP_PROFILE: |
    preconfigured: my_http_profile
この例では、my_http_profileはNetScalerに事前に存在するHTTPプロファイルです。
あるいは、次のように指定されたプロファイルパラメータを設定できます。すべての可能なキーと値については、HTTPプロファイルNITROドキュメントを参照してください。
apiVersion: v1
kind: ConfigMap
metadata:
  name: cic-configmap
  labels:
    app: citrix-ingress-controller
data:
  FRONTEND_HTTP_PROFILE: |
    config:
      dropinvalreqs: 'ENABLED'
      websocket: 'ENABLED'

FRONTEND_TCP_PROFILEを使用した構成

FRONTEND_TCP_PROFILE変数は、イングレス定義のingress.citrix.com/frontend-tcpprofileスマートアノテーションによって上書きされない限り、フロントエンド仮想サーバー(クライアント側)のTCPオプションを設定するために使用されます。
NetScaler上の既存のプロファイルを使用するか、組み込みのTCPプロファイルを使用する場合:
apiVersion: v1
kind: ConfigMap
metadata:
  name: cic-configmap
  labels:
    app: citrix-ingress-controller
data:
  FRONTEND_TCP_PROFILE: |
    preconfigured: my_tcp_profile
この例では、my_tcp_profileはNetScalerに事前に存在するTCPプロファイルです。
または、次のようにプロファイルパラメータを設定できます。すべての可能なキー値については、NetScaler TCPプロファイルNITROドキュメントを参照してください。
apiVersion: v1
kind: ConfigMap
metadata:
  name: cic-configmap
  labels:
    app: citrix-ingress-controller
data:
  FRONTEND_TCP_PROFILE: |
    config:
      sack: 'ENABLED'
      nagle: 'ENABLED'

FRONTEND_SSL_PROFILEを使用した構成

FRONTEND_SSL_PROFILE変数は、イングレス定義のingress.citrix.com/frontend-sslprofileスマートアノテーションによって上書きされない限り、フロントエンド仮想サーバー(クライアント側)のSSLオプションを設定するために使用されます。
注記: SSLプロファイルを正しく機能させるには、set ssl parameter -defaultProfile ENABLEDコマンドを使用してNetScalerでデフォルトプロファイルを有効にする必要があります。デフォルトプロファイルを有効にした後、NetScaler Ingress Controllerを再起動してください。NetScaler CPXがイングレスデバイスとして使用されている場合、デフォルトプロファイルは自動的に有効になります。SSLデフォルトプロファイルの詳細については、SSLプロファイルドキュメントを参照してください。
NetScaler上の既存のプロファイルを使用するか、組み込みのSSLプロファイルを使用するには、,
apiVersion: v1
kind: ConfigMap
metadata:
  name: cic-configmap
  labels:
    app: citrix-ingress-controller
data:
  FRONTEND_SSL_PROFILE: |
    preconfigured: my_ssl_profile
この例では、my_ssl_profileはNetScalerに既存のSSLプロファイルです。
注記:
デフォルトのフロントエンドプロファイル(ns_default_ssl_profile_frontend)は、FRONTEND_SSL_PROFILE.preconfigured変数を使用してサポートされていません。
または、次の例に示すようにプロファイルパラメータを設定できます。すべての可能なキー値については、SSLプロファイルNITROドキュメントを参照してください。
apiVersion: v1
kind: ConfigMap
metadata:
  name: cic-configmap
  labels:
    app: citrix-ingress-controller
data:
  FRONTEND_SSL_PROFILE: |
    config:
      tls13: 'ENABLED'
      hsts: 'ENABLED'
次の例は、SSL暗号グループをSSLプロファイルにバインドする方法を示しています。順序はリストで指定されたとおりで、リストの最初のものに高い優先度が与えられ、以下同様です。このフィールドでは、NetScalerで利用可能な任意のSSL暗号、またはユーザーが作成した暗号グループを使用できます。NetScalerで利用可能な暗号のリストについては、NetScalerの暗号を参照してください。
apiVersion: v1
kind: ConfigMap
metadata:
  name: cic-configmap
  labels:
    app: citrix-ingress-controller
data:
  FRONTEND_SSL_PROFILE: |
    config:
      tls13: 'ENABLED'
      ciphers:
      - TLS1.3-AES256-GCM-SHA384
      - TLS1.3-CHACHA20-POLY1305-SHA256

バックエンド構成

サービスの詳細、spec:rules:host、spec:backendエントリなどを含むイングレス定義は、バックエンド構成と見なされます。

TLS構成なしのバックエンドイングレスマニフェストの例


#The values for the parameters are for demonstration purpose only.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
  # /* The CS virtual server is derived from the combination of insecure-port/secure-port, frontend-ip, and secure-service-type/insecure-service-type annotations. */
    ingress.citrix.com/backend-httpprofile: '{"apache":{"markhttp09inval": "disabled"}}'
    ingress.citrix.com/backend-tcpprofile: '{"apache":{"sack":"enabled"}}'
    ingress.citrix.com/frontend-ip: 'VIP_IP'
    ingress.citrix.com/insecure-port: "80"
  name: apache-ingress
spec:
  rules:
  - host: www.apachetest.com
    http:
      paths:
      - backend:
          service:
            name: apache
            port:
              number: 80
        path: /
        pathType: Prefix

TLS構成ありのバックエンドイングレスマニフェストの例


#The values for the parameters are for demonstration purpose only.

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
  # /* The CS virtual server is derived from the combination of insecure-port/secure-port, frontend-ip, and secure-service-type/insecure-service-type annotations. */
    ingress.citrix.com/backend-httpprofile: '{"hotdrink":{"markhttp09inval": "disabled"}}'
    ingress.citrix.com/backend-sslprofile: '{"hotdrink":{"snienable": "enabled"}}'
    ingress.citrix.com/backend-tcpprofile: '{"hotdrink":{"sack":"enabled"}}'
    ingress.citrix.com/frontend-ip: 'VIP_IP'
    ingress.citrix.com/secure-backend: '{"hotdrink":"true"}'
    ingress.citrix.com/secure-port: "443"
  name: hotdrink-ingress
spec:
  rules:
  - host: hotdrinks.beverages.com
    http:
      paths:
      - backend:
          service:
            name: hotdrink
            port:
              number: 443
        path: /
        pathType: Prefix
  tls:
  - secretName: hotdrink.secret

Ingress NetScalerで組み込みまたは既存のユーザー定義プロファイルを使用する

個々のスマートアノテーションを使用して、要件に基づいてIngress NetScaler上の組み込みプロファイルまたは既存のユーザー定義プロファイルをフロントエンドおよびバックエンド構成に設定できます。組み込みプロファイルの詳細は、組み込みTCPプロファイル および 組み込みHTTPプロファイル を参照してください。
フロントエンド構成の場合、Ingress NetScaler上の組み込みまたは既存のユーザー定義プロファイルの名前を指定できます。以下は、Ingressアノテーションのサンプルです。
ingress.citrix.com/frontend-httpprofile: "http_preconf_profile1"
ここで、「http_preconf_profile1」はIngress NetScaler上に存在するプロファイルです。
バックエンド構成の場合、Ingress NetScaler上の組み込みまたは既存のプロファイルの名前とバックエンドサービス名を指定する必要があります。以下は、Ingressアノテーションのサンプルです。
ingress.citrix.com/backend-httpprofile: '{"citrix-svc": "http_preconf_profile1"}'
ここで、「http_preconf_profile1」はIngress NetScaler上に存在するプロファイルであり、citrix-svc はバックエンドサービス名です。

HTTPプロファイルの例

ingress.citrix.com/frontend-httpprofile: "http_preconf_profile"
ingress.citrix.com/backend-httpprofile: '{"citrix-svc": "http_preconf_profile"}'

TCPプロファイルの例

ingress.citrix.com/frontend-tcpprofile: "tcp_preconf_profile"
ingress.citrix.com/backend-tcpprofile: '{"citrix-svc":"tcp_preconf_profile"}'

SSLプロファイルの例

ingress.citrix.com/frontend-sslprofile: "ssl_preconf_profile"
ingress.citrix.com/backend-sslprofile: '{"citrix-svc":"ssl_preconf_profile"}'

HTTP、SSL、およびTCPプロファイルを適用する例

この例では、HTTP、SSL、またはTCPプロファイルを適用する方法を示します。
SSL、TCP、およびHTTPプロファイルを作成し、定義されたIngressリソースにバインドするには、次の手順を実行します。
  1. 必要なプロファイルを使用してフロントエンドIngressリソースを定義します。このIngressリソースでは、バックエンドとTLSは定義されていません。
    サンプルYAML (ingress1.yaml) は次のとおりです。
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: ingress-vpx1
      annotations:
        ingress.citrix.com/insecure-termination: "allow"
        ingress.citrix.com/frontend-ip: "10.221.36.190"
        ingress.citrix.com/frontend-tcpprofile: '{"ws":"disabled", "sack" : "disabled"}'
        ingress.citrix.com/frontend-httpprofile: '{"dropinvalreqs":"enabled", "markconnreqInval" : "enabled"}'
        ingress.citrix.com/frontend-sslprofile: '{"hsts":"enabled", "tls13" : "enabled"}'
    spec:
      ingressClassName: "vpx"
      tls:
      - hosts:
      rules:
      - host:
  2. フロントエンドIngressリソースを展開します。
    kubectl create -f ingress1.yaml を実行します。
  3. 同じフロントエンドIPアドレスとTLS、およびロードバランシングリソース定義を作成するバックエンドが定義されたセカンダリイングレスリソースを定義します。
    サンプルのYAML (ingress2.yaml) は以下のとおりです。
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: ingress-vpx2
      annotations:
      ingress.citrix.com/insecure-termination: "allow"
      ingress.citrix.com/frontend-ip: "10.221.36.190"
    spec:
      ingressClassName: "vpx"
      tls:
      - secretName: <hotdrink-secret>
      rules:
      - host:  hotdrink.beverages.com
        http:
          paths:
          - path:
            backend:
              serviceName: frontend-hotdrinks
              servicePort: 80
  4. バックエンドイングレスリソースを展開します。
    kubectl create -f ingress2.yaml
  5. YAMLが適用されると、対応するエンティティ、プロファイル、およびイングレスリソースが作成され、イングレスリソースにバインドされます。
    # show cs vserver &lt;k8s150-10.221.36.190_443_ssl>

      k8s150-10.221.36.190_443_ssl (10.221.36.190:443) - SSL Type: CONTENT
      State: UP
      Last state change was at Thu Apr 22 20:14:44 2021
      Time since last state change: 0 days, 00:10:56.850
      Client Idle Timeout: 180 sec
      Down state flush: ENABLED
      Disable Primary Vserver On Down : DISABLED
      Comment: uid=QEYQI2LDW5WR4A6P3NSZ37XICKOJKV4HPEM2H4PSK4HWA3JQWCLQ====
      TCP profile name: k8s150-10.221.36.190_443_ssl
      HTTP profile name: k8s150-10.221.36.190_443_ssl
      Appflow® logging: ENABLED
      State Update: DISABLED
      Default:   Content Precedence: RULE
      Vserver IP and Port insertion: OFF
      L2Conn: OFF Case Sensitivity: ON
      Authentication: OFF
      401 Based Authentication: OFF
      Push: DISABLED Push VServer:
      Push Label Rule: none
      Persistence: NONE
      Listen Policy: NONE
      IcmpResponse: PASSIVE
      RHIstate:  PASSIVE
      Traffic Domain: 0

      1)  Content-Switching Policy: k8s150-ingress-vpx1_tier-2-adc_443_k8s150-frontend-hotdrinks_tier-2-adc_80_svc    Priority: 200000004   Hits: 0
      Done

例: SNI証明書をSSL仮想サーバーに追加する

この例では、単一のSNI証明書を追加する方法を示します。
注:
SSLプロファイルが正しく機能するためには、set ssl parameter -defaultProfile ENABLEDコマンドを使用してNetScalerでデフォルトプロファイルを有効にする必要があります。デフォルトプロファイルを有効にした後、NetScaler Ingress Controllerが再起動されていることを確認してください。SSLデフォルトプロファイルの詳細は、ドキュメントを参照してください。
  1. 必要なプロファイルを持つフロントエンドイングレスリソースを定義します。このイングレスリソースでは、バックエンドとTLSは定義されていません。
    サンプルのYAML (ingress1.yaml) は以下のとおりです。
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: ingress-vpx1
      annotations:
       ingress.citrix.com/insecure-termination: "allow"
       ingress.citrix.com/frontend-ip: "10.221.36.190"
       ingress.citrix.com/frontend-tcpprofile: '{"ws":"disabled", "sack" : "disabled"}'
       ingress.citrix.com/frontend-httpprofile: '{"dropinvalreqs":"enabled", "markconnreqInval" : "enabled"}'
       ingress.citrix.com/frontend-sslprofile: '{"snienable": "enabled", "hsts":"enabled", "tls13" : "enabled"}'
    spec:
      ingressClassName: "vpx"
      tls:
      - hosts:
      rules:
      - host:
  2. フロントエンドイングレスリソースを展開します。
    kubectl create -f ingress1.yaml
  3. 同じフロントエンドIPアドレスを持ち、バックエンドとSNI証明書を定義するセカンダリイングレスリソースを定義します。ホストが指定されている場合、シークレット名として指定されたcertkeyがSNI証明書として追加されます。
    サンプルのYAML (ingress2.yaml) は以下のとおりです。
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: ingress-vpx2  
      annotations:
       ingress.citrix.com/insecure-termination: "allow"
       ingress.citrix.com/frontend-ip: "10.221.36.190"
    spec:
      ingressClassName: "vpx"
      tls:
      - hosts:
          - hotdrink.beverages.com
        secretName: hotdrink-secret
      rules:
      - host: hotdrink.beverages.com
        http:
          paths:
          - path: /
            backend:
              serviceName: web
              servicePort: 80
  4. セカンダリイングレスリソースを展開します。
    kubectl create -f ingress2.yaml
    複数のSNI証明書をフロントエンドVIPにバインドする必要がある場合、以下はサンプルYAMLファイルです。
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: ingress-vpx-frontend
      ingress.citrix.com/insecure-termination: "allow"
      ingress.citrix.com/frontend-ip: "10.221.36.190"
    spec:
      ingressClassName: "vpx"
      tls:
      - hosts:
          - hotdrink.beverages.com
        secretName: hotdrink-secret
      - hosts:
          - frontend.agiledevelopers.com
        secretName: &lt;frontend-secret>
      rules:
      - host: hotdrink.beverages.com
        http:
          paths:
          - path: /
            backend:
              serviceName: web
              servicePort: 80
      - host: frontend.agiledevelopers.com
        http:
          paths:
          - path: /
            backend:
              serviceName: frontend-developers
              servicePort: 80

例: SSL暗号グループのバインド

この例では、SSL暗号グループをバインドする方法を示します。
注:
SSLプロファイルが正しく機能するためには、set ssl parameter -defaultProfile ENABLEDコマンドを使用してNetScalerでデフォルトプロファイルを有効にする必要があります。デフォルトプロファイルを有効にした後、NetScaler Ingress Controllerが再起動されていることを確認してください。
NetScaler Ingress Controllerを展開する前に、set ssl parameter -defaultProfile ENABLEDコマンドを使用してNetScalerでデフォルトのSSLプロファイルを設定します。NetScaler Ingress Controllerをすでに展開している場合は、再展開してください。SSLデフォルトプロファイルの詳細は、ドキュメントを参照してください。
NetScalerアプライアンスでサポートされている暗号に関する情報は、NetScalerアプライアンスで利用可能な暗号を参照してください。
暗号のセキュリティ保護に関する情報は、暗号のセキュリティ保護を参照してください。
サンプルのYAML (cat frontend_ingress.yaml) は次のとおりです。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-vpx
  annotations:
   ingress.citrix.com/insecure-termination: "allow"
   ingress.citrix.com/frontend-ip: "10.221.36.190"
   ingress.citrix.com/frontend-tcpprofile: '{"ws":"disabled", "sack" : "disabled"}'
   ingress.citrix.com/frontend-httpprofile: '{"dropinvalreqs":"enabled", "markconnreqInval" : "enabled"}'
   ingress.citrix.com/frontend-sslprofile: '{"snienable": "enabled", "hsts":"enabled", "tls13" : "enabled", "ciphers" : [{"ciphername": "test", "cipherpriority" :"1"}]}'
spec:
  ingressClassName: "citrix"
  tls:
  - hosts:
  rules:
   - host: