Citrix ADC

GRPC 端到端配置

GrPC 端到端配置的工作原理是通过 HTTP/2 协议从客户端发送 GrPC 请求,然后再次转发 GrPC 服务器响应的 GrPC 消息。

端到端 GRPC 配置的工作原理

下图显示了 Citrix 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(标志 = 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(标志 = END_STREAM)
<Length-Prefixed Message>
```

从 GRPC 服务器到 Citrix ADC 设备的 GRPC 响应头示例

响应标头和预告片-仅在单个 HTTP/2 标头帧块中提供。大多数响应预期同时具有标头和预告片,但对于产生即时错误的调用,允许仅预告片。即使 HTTP 状态代码为正常,状态也必须在预告片中发送。

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

```

使用 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 直接参数。此外,如果需要通过 HTTP/2 明文的 GrPC,则必须启用 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. 导航到系统 > 配置文件,然后单击 HTTP 配置文件
  2. 在新的 HTTP 配置文件或现有的 HTTP 配置文件中启用 HTTP/2 选项

GrPC 端到端配置功能图

在 HTTP 参数中启用全局后端 HTTP/2 支持

  1. 导航到系统”>“设置”>“HTTP 参数
  2. 在“配置 HTTP 参数”页中,选择服务器端的 HTTP/2。
  3. 单击确定

gRPC end-to-end configuration enables global back end http2

添加 SSL/HTTP 类型的负载平衡虚拟服务器并设置 HTTP 配置文件

  1. 导航到流量管理 > 负载平衡 > 虚拟服务器
  2. 单击添加为 GRPC 通信创建负载平衡虚拟服务器。
  3. 在“负载平衡虚拟服务器”页中,单击概要文件。
  4. 在“配置文件”部分中,选择配置文件类型为 HTTP。
  5. 单击 确定 ,然后单击完成。

gRPC configuration adds service gRPC endpoint

为 GRPC 端点添加服务并设置 HTTP 配置文件

  1. 导航到流量管理”>“负载平衡”>“服务”
  2. 单击添加为 GRPC 通信创建应用程序服务器。
  3. 在“负载平衡服务”页面中,转到“概要文件”部分。
  4. 在配置文件下,为 GRPC 端点添加 HTTP 配置文件。
  5. 单击 确定 ,然后单击完成。

GrPC 配置绑定服务负载平衡虚拟服务器

有关与负载平衡相关的详细 GUI 过程,请参阅负载平衡 主题。

GRPC 端到端配置