ADC
ご意見をお寄せいただきありがとうございました

この記事は機械翻訳されています.免責事項

gRPC エンドツーエンド構成

gRPC のエンドツーエンド構成は、HTTP/2 プロトコルでクライアントから gRPC リクエストを送信し、gRPC サーバーが応答した gRPC メッセージを再度転送することで機能します。

エンドツーエンドの gRPC 設定の仕組み

次の図は、NetScaler ADCアプライアンスで機能するgRPC構成を示しています。

gRPC 構成機能ダイアグラム

  1. gRPC 構成をデプロイするには、まず HTTP プロファイルで HTTP/2 を有効にし、サーバー側で HTTP/2 サポートをグローバルに有効にする必要があります。
  2. クライアントが gRPC リクエストを送信すると、負荷分散仮想サーバーはポリシーを使用して gRPC トラフィックを評価します。
  3. ポリシー評価に基づいて、負荷分散仮想サーバー(gRPC サービスがバインドされている)は要求を終了し、gRPC 要求としてバックエンドの gRPC サーバーに転送します。
  4. 同様に、gRPC サーバーがクライアントに応答すると、アプライアンスは応答を終了し、gRPC 応答としてクライアントに転送します。

gRPC サーバーに送信された gRPC リクエストの例

リクエストヘッダーは次のように送信されます HTTP/2 のヘッダー HEADERS+CONTINUATION フレーム。

``` HEADERS (flags = END_HEADERS) : method = POST : scheme = http : path = /helloworld.citrix-adc/SayHello : authority = 10.10.10.10.:80 grpc-timeout = 15 content-type = application/grpc+proto grpc-encoding = gzip DATA (flags = END_STREAM) <Length-Prefixed Message> <!--NeedCopy--> ```

gRPCサーバーからNetScaler ADCアプライアンスへのgRPC応答ヘッダーの例

レスポンスヘッダーとトレーラーのみは、単一の HTTP/2 HEADERS フレームブロックで配信されます。ほとんどの応答にはヘッダーとトレーラーの両方が含まれることが予想されますが、Trailers-Only は、すぐにエラーが発生する呼び出しでは許可されます。HTTPステータスコードがOKの場合でも、ステータスはTrailersで送信する必要があります。

``` HEADERS (flags = END_HEADERS) : status = 200 Grpc-encoding= gzip Content-type = application/grpc+proto DATA <Length-Prefixed Message> HEADERS (flags = END_STREAM, END_HEADERS) grpc-status = 0 # OK <!--NeedCopy--> ```

CLIを使用してgRPCを構成する

エンドツーエンドの gRPC デプロイメントを設定するには、以下を完了する必要があります。

  • HTTP/2 および HTTP/2 ダイレクトが有効になっている HTTP プロファイルを追加します。
  • HTTP パラメータでグローバルバックエンド HTTP/2 サポートを有効にする
  • SSL/HTTP タイプの負荷分散仮想サーバーを追加し、HTTP プロファイルを設定します
  • gRPC エンドポイント用サービスの追加と HTTP プロファイルの設定
  • gRPC エンドポイントサービスを負荷分散仮想サーバーにバインド

HTTP/2 および HTTP/2 ダイレクトが有効な状態で HTTP プロファイルを追加

HTTP プロファイルで HTTP/2 と HTTP/2 のダイレクトパラメータを有効にする必要があります。また、gRPC over HTTP/2 クリアテキストが必要な場合は、HTTP/2 ダイレクトパラメータを有効にする必要があります。

コマンドプロンプトで入力します:

add ns httpProfile <name> - http2 ( ENABLED | DISABLED ) [-http2Direct ( ENABLED | DISABLED )]

例:

add ns httpProfile http2gRPC -http2Direct ENABLED -http2 ENABLED

HTTP パラメータによるグローバルバックエンド HTTP/2 サポートを有効にする

Citrix ADCコマンドラインを使用してサーバー側でHTTP/2サポートをグローバルに有効にするには。

コマンドプロンプトで入力します:

set ns httpParam -http2ServerSide( ON | OFF )

例:

set ns httpParam -http2ServerSide ON

SSL/HTTP タイプの負荷分散仮想サーバーを追加し、HTTP プロファイルを設定します

Citrix ADC コマンドインターフェイスを使用して負荷分散仮想サーバーを追加するには:

コマンドプロンプトで入力します:

add lb vserver <name> <service type> [(<IP address>@ <port>)] [-httpProfileName <string>]

例:

add lb vserver lb-grpc HTTP 10.10.10.11 80 -httpProfileName http2gRPC

注:

SSL タイプの負荷分散仮想サーバーを使用している場合は、サーバー証明書をバインドする必要があります。詳細については、「 サーバー証明書のバインド 」のトピックを参照してください。

gRPC エンドポイント用サービスの追加と HTTP プロファイルの設定

Citrix ADC コマンドインターフェイスを使用して HTTP プロファイルで gRPC サービスを追加するには、コマンドプロンプトで次 のように入力します。

add service <name> (<IP> | <serverName> ) <serviceType> <port> [-httpProfileName <string>]

例: add service svc-grpc 10.10.10.10 HTTP 80 -httpProfileName http2gRPC

gRPC エンドポイントサービスを負荷分散仮想サーバーにバインド

Citrix ADCコマンドインターフェイスを使用してgRPCサービスを負荷分散仮想サーバーにバインドするには :

コマンドインターフェイスで、次のように入力します。

bind lb vserver <name> <serviceName>

例:

bind lb vserver lb-grpc svc-grpc

GUI を使用してエンドツーエンドの gRPC デプロイメントを設定

GUI を使用して gRPC を設定するには、次の手順を実行します。

HTTP/2 および HTTP/2 ダイレクトが有効な状態で HTTP プロファイルを追加

  1. System > Profilesに移動してHTTP Profilesをクリックします。
  2. 新しい HTTP プロファイルまたは既存の HTTP プロファイルの HTTP/2 チェックボックスを選択します。

HTTP パラメータでグローバルバックエンド HTTP/2 サポートを有効にする

  1. [ システム] > [設定] > [HTTP パラメータ] に移動します。
  2. HTTP パラメータの設定 」ページで、「 サーバー側の HTTP/2 」チェックボックスを選択します。
  3. [OK] をクリックします。

SSL/HTTP タイプの負荷分散仮想サーバーを追加し、HTTP プロファイルを設定します

  1. Traffic Management > Load Balancing > Virtual Serversに移動します。
  2. [ 追加 ] をクリックして gRPC トラフィック用の負荷分散仮想サーバーを作成します。
  3. Load Balancing Virtual ServerページでProfilesをクリックします。
  4. 「 プロファイル 」セクションで、プロファイルの種類を「HTTP」として選択します。
  5. [ OK] 、[ 完了]の順にクリックします。

gRPC エンドポイント用サービスの追加と HTTP プロファイルの設定

  1. [Traffic Management]>[Load Balancing]>[Services] の順に移動します。
  2. [ 追加 ] をクリックして gRPC トラフィック用のアプリケーションサーバーを作成します。
  3. 負荷分散サービスのページで 、 プロファイルセクションに移動します 。
  4. [ プロファイル] に gRPC エンドポイントの HTTP プロファイルを追加します 。
  5. [ OK] 、[ 完了]の順にクリックします。

ロードバランシングに関連する GUI 手順の詳細については、「 負荷分散 」のトピックを参照してください。

このコンテンツの正式なバージョンは英語で提供されています。Cloud Software Groupドキュメントのコンテンツの一部は、お客様の利便性のみを目的として機械翻訳されています。Cloud Software Groupは機械翻訳されたコンテンツを管理していないため、誤り、不正確な情報、不適切な用語が含まれる場合があります。英語の原文から他言語への翻訳について、精度、信頼性、適合性、正確性、またはお使いのCloud Software Group製品またはサービスと機械翻訳されたコンテンツとの整合性に関する保証、該当するライセンス契約書またはサービス利用規約、あるいはCloud Software Groupとのその他すべての契約に基づき提供される保証、および製品またはサービスのドキュメントとの一致に関する保証は、明示的か黙示的かを問わず、かかるドキュメントの機械翻訳された範囲には適用されないものとします。機械翻訳されたコンテンツの使用に起因する損害または問題について、Cloud Software Groupは責任を負わないものとします。