ADC

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

1 回の NITRO API コールで、サービスグループに必要な一連のサービスグループメンバーを設定するためのサポートが追加されました。この設定をサポートするために、新しい API である Desired State API が追加されました。望ましい状態 API を使用すると、次のことができます。

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

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

注:

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

重要

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

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

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

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

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

望ましい状態 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

引数

自動無効化グレースフル

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

AutoDisableDelay

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

Autoscale API

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

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

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

重要:

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

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

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

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

注:

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

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

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

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

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

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

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

  1. [Traffic Management]>[Load Balancing]>[Service Groups] の順に移動します。

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

  3. [ グレースフルの自動無効化] で [ はい] を選択します

  4. [ 自動無効化遅延] に、グレースフルシャットダウンの待機時間を入力します。

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

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