Citrix ADC

1つのNITRO API呼び出しで、サービスグループに必要なサービスグループメンバーのセットを設定する

1つのNITRO APIコールで、サービスグループに必要なサービスグループメンバーセットを設定するためのサポートが追加されました。この構成をサポートするために、新しい API である [望ましい状態 API] が追加されました。必要な状態 API を使用すると、次の操作を実行できます。

  • 「サービスグループメンバーリストバインディング」リソースに対する単一の PUT リクエストで、サービスグループメンバーのリストを提供します。
  • そのPUTリクエストに重量と状態(オプション)を指定します。
  • アプライアンス構成を、アプリケーションサーバー周辺のデプロイメントの変更と効果的に同期します。

Citrix ADC アプライアンスは、要求された必要なメンバセットと構成済みのメンバセットを比較します。その後、自動的に新しいメンバーをバインドし、要求に存在しないメンバーのバインドを解除します。

注:

  • この機能はタイプAPI.のサービスのみでサポートされています。
  • Desired State API を使用してのみ、IP アドレスベースのサービスをバインドできます。ドメイン名ベースのサービスは許可されません。
  • 以前は、NITRO コールにバインドできるサービスグループメンバーは 1 つだけです。

重要

サービスグループメンバーシップに必要な状態 API は、Citrix ADC クラスター展開でサポートされています。

ユースケース:Kubernetesなどの大規模な展開環境で、展開の変更をCitrix ADCアプライアンスに同期する

大規模かつ高度に動的な展開(Kubernetes など)では、アプリケーショントラフィックを正確に処理するために、デプロイメントの変更率に応じてアプライアンスの構成を最新の状態に保つことが課題です。このような展開では、コントローラ(入力コントローラまたはE-Wコントローラ)がADC構成の更新を担当します。デプロイメントに変更があると、kube-apiサーバーはエンドポイントの「エンドポイントイベント」を介してController に送信します。Controller は、読み取り-デルタ-変更アプローチを使用して、次の処理を実行します。

  • サービスに対して現在設定されているエンドポイントセット(サービスグループのサービスグループメンバーセット)を ADC アプライアンスからフェッチします。
  • 設定されたエンドポイントセットを受信したイベント内のセットと比較します。
  • 新しいエンドポイント(サービスグループメンバー)をバインドするか、削除されたエンドポイントのバインドを解除します。

この環境では変更率とサービスのサイズが高いため、この設定方法は効率的ではなく、設定の更新が遅れる可能性があります。

Desireded State API は、サービスグループに対して意図したメンバセットを単一の API で受け入れることで問題を解決し、構成を効果的に更新します。

CLI を使用してタイプ API のサービスグループを作成する

コマンドプロンプトで、「;」と入力します。

add serviceGroup <serviceGroupName>@ <serviceType> [-autoScale <autoScale>]

例:

add serviceGroup svg1 HTTP -autoScale API

autoDisablegracefulパラメーター、autoDisabledelayパラメーター、autoScaleパラメーターを設定するには、add serviceGroup コマンドまたは set serviceGroup コマンドを使用します。

add serviceGroup <serviceGroupName>@ <serviceType> [-autoScale <autoScale>] [-autoDisablegraceful ( YES | NO)] [-autoDisabledelay <secs>]

add serviceGroup <serviceGroupName>@ <serviceType> [-autoScale (API |CLOUD | DISABLED| DNS |POLICY)]

set serviceGroup <serviceGroupName [-autoDisablegraceful ( YES | NO)] [-autoDisabledelay <secs>]

set serviceGroup <serviceGroupName [-autoScale (API |CLOUD | DISABLED| DNS |POLICY)]

例:

add serviceGroup svg1 HTTP autoDisablegraceful YES -autoDisabledelay 100

add serviceGroup svg1 HTTP -autoScale API

set serviceGroup svg1 -autoDisablegraceful  YES -autoDisabledelay 100

set serviceGroup svg1 -autoScale API

引数

autoDisablegraceful

サービスの正常なシャットダウンを示します。このオプションを有効にすると、アプライアンスは、このサービスへの未処理の接続がすべて閉じられるのを待ってから、サービスを削除します。すでにシステム上に永続的なセッションを持つクライアントの場合、新しい接続または要求はこのサービスに送信され続けます。サービスメンバーは、未処理の接続がない場合にのみ削除されます。デフォルト値:NO

autoDisabledelay

正常なシャットダウンの許容時間(秒単位)を示します。この期間中、システム上に永続的なセッションがすでに存在するクライアントに対して、新しい接続または要求がこのサービスに送信され続けます。システム上に永続性セッションを持たない新しいクライアントからの接続または要求は、サービスに送信されません。代わりに、利用可能な他のサービス間で負荷分散されます。遅延時間が経過すると、サービスメンバーは削除されます。

Autoscale API

必要な状態 API を使用して、メンバセットを目的のサービスグループにバインドできるようにします。提供された条件がすべて一致する場合は、サービスグループを非自動スケールから必要な状態APIの自動スケールタイプに設定できます。

既存のメンバー・バインディングが次のいずれかの条件を満たす場合、set ServiceGroup Autoscale コマンドが失敗することがあります。

  • サービスグループにバインドされたサーバがネームサーバまたはドメインベースのサーバである場合。
  • サービスグループにバインドされているサーバの名前が IP アドレスの場合は、実際のサーバの IP アドレスと一致する必要があります。次の例では、サーバ名とサーバの IP アドレスが一致しません。
    • CLI: add server IPaddress server name
    • 例: add server 1.2.3.4 4.3.2.1
  • ループバックサーバ名が 127.0.0.1 または 00:00:0000:00:0000:00:00:0000:00:0001 以外の場合。
  • セットサービスグループコマンドで異なるタイプの自動スケール(クラウド、API、DNS、およびポリシー)を選択し、サービスグループコマンドを追加する場合。

重要:

  • AutoDisableGraceful パラメーターと AutoDisableDelay パラメーターは、自動スケールタイプ「API」および「クラウド」のサービスグループにのみ適用できます。
  • autoDisablegraceful パラメータまたは autoDisabledelay パラメータが設定されていない場合、サービスメンバはただちに削除されます。

サービスグループメンバーを正常にバインド解除する

サービスグループメンバーのいずれかが目的のステートリストにない場合、autoDisablegraceful またはautoDisabledelay パラメータ設定に基づいて、これらのメンバーは正常にバインド解除されます。

  • これらのパラメータの 1 つが設定されている場合、サービスグループメンバーは正常にバインド解除されます。
  • これらのパラメータのいずれも設定されていない場合、サービスグループメンバーはただちにバインド解除されます。

注:

  • グレースフルアンバインドで識別されたサービスグループメンバーは、show service group コマンドが実行された場合にだけ表示されます。
  • 正常なアンバインドとして識別されたサービスグループメンバーに対して、操作(set、unset など)を実行できません。

次の図は、show service group コマンドの例を示しています。

show サービスグループコマンドの例

GUI を使用してタイプ API のサービスグループを作成する

  1. [トラフィック管理] > [負荷分散] > [サービスグループ] に移動し、[追加] をクリックします。

  2. AutoScale」モードで、「 API」を選択します。

GUI を使用して API タイプのサービスグループの正常なシャットダウンまたは遅延時間を設定します

  1. [トラフィック管理] > [負荷分散] > [サービスグループ] に移動します。

    サービスグループの基本設定

  2. AutoScale」モードで、「 API」を選択します。

  3. 自動無効化」で、「 はい」を選択します。

  4. 自動無効化遅延」に、正常なシャットダウンの待機時間を入力します。

注意:自動無効化 」または「 自動表示遅延 」フィールドは、「 AutoScale」モードでAPI 」または「 クラウド 」を選択した場合にのみ有効になります。