gRPC リバースブリッジング
リバースブリッジの仕組み
-
クライアントは、HTTP/2 フレームの gRPC ヘッダーと proto-buf ペイロードを使用して HTTP/2 接続で gRPC リクエストを送信します。
-
ポリシー評価に基づいて、負荷分散仮想サーバー(gRPC サービスがバインドされている)はリクエストを変換し、HTTP/1.1接続を介してバックエンドサーバーに転送します。
-
HTTP/1.1 応答を受信したときに、応答に grpc-status コードが含まれていない場合、ADC は HTTP 応答コードから grpc ステータスケースを導出します。
-
次に、アプライアンスは gRPC ヘッダーを HTTP/2 トレーラーに挿入してから、応答をクライアントに転送します。
CLI を使用して gRPC リバースブリッジを設定する
-
仮想サーバーの負荷分散用にHTTP/2およびHTTP/2ダイレクトを有効にしたHTTPプロファイル1を追加します
-
バックエンドサーバーに HTTP/2 を無効にした状態で HTTP プロファイル 2 を追加
-
SSL/HTTP タイプの負荷分散仮想サーバーを追加し、HTTP プロファイル 1 に設定します
-
gRPC エンドポイントのサービスを追加し、HTTP プロファイル 2 に設定
-
gRPC エンドポイントを負荷分散仮想サーバーにバインドする
-
応答に grpc ステータスコードが含まれていない場合は、HTTP ステータスコードを gRPC ステータスコードにマッピングします。
仮想サーバーの負荷分散用にHTTP/2およびHTTP/2ダイレクトを有効にしたHTTPプロファイル1を追加します
add ns httpProfile <name> - http2 ( ENABLED | DISABLED ) [-http2Direct ( ENABLED | DISABLED )]
gRPCエンドポイントでサービスを追加しHTTPプロファイル2を設定する
add ns httpProfile <name> - http2 ( ENABLED | DISABLED ) [-http2Direct ( ENABLED | DISABLED )]
SSL/HTTP タイプの負荷分散仮想サーバーを追加し、HTTP プロファイル 1 に設定します
add lb vserver <name> <service type> [(<IP address>@ <port>)] [-httpProfileName <string>]
gRPC エンドポイントのサービスを追加し、HTTP プロファイル 2 に設定
add service <name> (<IP> | <serverName> ) <serviceType> <port> [-httpProfileName <string>]
add service svc-grpc 10.10.10.11 HTTP 80 -httpProfileName profile2
gRPC エンドポイントのサービスを負荷分散仮想サーバーにバインドする
bind lb vserver <name> <serviceName>
bind lb vserver lb-grpc svc-grpc
HTTP 応答コードを gRPC ステータスコードにマッピング
| HTTP レスポンスステータスコード | gRPC ステータスコード |
|---|---|
| 200 | OK |
| 400 | インターナル = 13 |
| 403 | アクセス拒否 = 7 |
| 401 | 認証されていない = 16 |
| 429, 502, 503, 504 | ご利用いただけません = 14 |
| 404 | 実装されていない = 12 |
GUI を使用して gRPC リバースブリッジを設定する
仮想サーバーの負荷分散用にHTTP/2およびHTTP/2ダイレクトを有効にしたHTTPプロファイル1を追加します
-
System > Profilesに移動してHTTP Profilesをクリックします。
-
HTTP プロファイル 1 で HTTP/2 オプションを有効にします。
gRPCエンドポイントでサービスを追加しHTTPプロファイル2を設定する
-
System > Profilesに移動してHTTP Profilesをクリックします。
-
HTTP プロファイルの HTTP/2 オプションを有効にする 2.
-
[OK] をクリックします。
SSL/HTTP タイプの負荷分散仮想サーバーを追加し、HTTP プロファイル 1 に設定します
gRPC エンドポイントを使用してサービスを追加し、HTTP プロファイル 2 に設定します
gRPC エンドポイントを負荷分散仮想サーバーにバインドする
-
Traffic Management > Load Balancing > Virtual Serversに移動します。
-
負荷分散仮想サーバーページで 、 サービスとサービス****グループセクションをクリックします 。
-
負荷分散仮想サーバーサービスバインディングページで 、バインドする gRPC サービスを選択します。
-
「 閉じる 」をクリックし、「 完了」をクリックします。