Citrix ADC ingress controller

Ingress Citrix ADCでセッションアフィニティまたはパーシステンスを構成する

Ingress Citrix ADC セッションアフィニティまたは永続性の設定により、グループ内のどの仮想サーバーがクライアント要求を受信するかにかかわらず、クライアント要求を選択した同じサーバーに送信できます。設定された持続時間が経過すると、グループ内の任意の仮想サーバが、受信するクライアント要求に対して選択されます。

パーシステンスを構成すると、サーバーの初回選択時以降の要求で、負荷分散方式が無視されます。その仮想サーバが表すサーバ上の接続の状態を維持します。Citrix ADCは、構成された負荷分散方法を使用してサーバーを最初に選択しますが、同じクライアントからの後続のすべての要求を同じサーバーに転送します。

最も一般的に使用されるパーシステンスタイプは、Cookie に基づくパーシステンスです。

Cookieに基づくパーシステンスの設定

Cookieに基づく永続性を有効にすると、Citrix ADCはHTTP応答のSet-CookieヘッダーフィールドにHTTP Cookieを追加します。Cookieには、HTTP要求の送信先のサービスに関する情報が含まれています。クライアントはCookieを保存して、それ以降のすべての要求に含めます。ADCはCookieを使用して、これらの要求に対するサービスを選択します。

Citrix ADC がクッキー<NSC_XXXX>= <ServiceIP> <ServicePort>を挿入します。

場所:

  • <<NSC_XXXX> は、仮想サーバ名から派生した仮想サーバ ID です。
  • <<ServiceIP> は、サービスの IP アドレスの 16 進数値です。
  • <<ServicePort> は、サービスのポートの 16 進数値です。

Citrix ADCは、Cookieを挿入するServiceIPServicePortとを暗号化し、Cookieを受信すると復号化します。

例:a.com=ffffffff02091f1045525d5f4f58455e445a4a423660;expires=Fri, 23-Aug-2019 07:01:45

Citrix イングレスコントローラーによって提供される次のイングレスアノテーションを使用して、イングレスCitrix ADCで永続性設定を構成できます。

ingress.citrix.com/lbvserver: '{"apache":{"persistenceType":"COOKIEINSERT", "timeout":"20", "cookiename":"k8s_cookie"}}'

どこ:

  • timeoutはパーシステンスの期間を指定します。セッションCookieが0のtimeout値で使用された場合、使用されるHTTP Cookieのバージョンに関係なく、Citrix ADCは有効期限を指定しません。セッションクッキーは、Web ブラウザを閉じると期限切れになります。
  • cookienameはクッキーの名前を最大 32 文字で指定します。指定しない場合、Cookie 名は内部的に生成されます。
  • persistenceType ここでは、使用するパーシステンスのタイプを指定し 、COOKIEINSERTはクッキーベースのパーシスタンスに使用されます。クッキー以外にも、適切な引数やその他の必須パラメータとともに他のオプションも使用できます。

指定できる値は、SOURCEIP、SSLSESSION、DESTIP、SRCIPDESTIP などです。

送信元 IP アドレスの永続性

Ingress Citrix ADCでソースIPの永続性が構成されている場合、負荷分散仮想サーバーに永続性を設定して、同じクライアントからの後続の要求に対してスティッキを作成できます。

送信元 IP アドレスの永続性を設定するための Ingress アノテーションの例を次に示します。

ingress.citrix.com/lbvserver: '{"apache":{"persistenceType":"SOURCEIP", "timeout":"10"}}'

SSL セッション ID の永続性

SSLセッションIDの永続性が構成されている場合、Citrix ADCアプライアンスはSSLハンドシェイクプロセスの一部であるSSLセッションIDを使用して、最初の要求がサービスに送信される前に永続セッションを作成します。負荷分散仮想サーバーは、同じ SSL セッション ID を持つ後続の要求を同じサービスに送信します。このタイプの永続性は SSL ブリッジサービスに使用されます。

SSL セッション ID の永続性を設定するための Ingress アノテーションの例を次に示します。

ingress.citrix.com/lbvserver: '{"apache":{"persistenceType":"SSLSESSION"}}'

宛先 IP アドレスベースの永続性

このタイプの永続性では、Ingress Citrix ADCが新しいクライアントから要求を受け取ると、仮想サーバーによって選択されたサービスのIPアドレス(宛先IPアドレス)に基づいて永続セッションが作成されます。その後、同じ宛先 IP へのリクエストを同じサービスに送信します。このタイプの永続性は、リンク負荷分散で使用されます。

宛先 IP アドレスベースの永続性を設定するための Ingress アノテーションの例を次に示します。

ingress.citrix.com/lbvserver: '{"apache":{"persistenceType":"DESTIP"}}'

送信元と宛先 IP アドレスベースの永続性

このタイプの永続性では、Citrix ADCアプライアンスが要求を受信すると、クライアントのIPアドレス(ソースIPアドレス)と仮想サーバーによって選択されたサービスのIPアドレス(宛先IPアドレス)の両方に基づいて永続セッションが作成されます。その後、同じ送信元 IP から同じ宛先 IP への要求を同じサービスに送信します。

送信元および宛先 IP アドレスベースの永続性を設定するための Ingress アノテーションの例を次に示します。

ingress.citrix.com/lbvserver: '{"apache":{"persistenceType":"SRCIPDESTIP"}}'
Ingress Citrix ADCでセッションアフィニティまたはパーシステンスを構成する