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 (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)   ```

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

Response-Headers & trailer - only在一个HTTP/2报头帧块中传递。大多数响应应该同时具有头和尾,但是对于产生立即错误的调用,只允许使用trailers - only。即使HTTP状态码为OK,状态也必须在Trailers中发送。

' ' ' HEADERS (flags = END_HEADERS): status = 200 grpc- encoding= gzip Content-type = application/grpc+proto DATA < length - prefix Message> HEADERS (flags = END_STREAM, END_HEADERS) grpc-status = 0 # OK “”

通过命令行方式配置gRPC

配置端到端gRPC部署时,需完成以下配置:

  • 添加HTTP配置文件,启用HTTP/2和HTTP/2 direct。
  • 在HTTP参数中启用全局后端HTTP/2支持
  • 添加SSL/HTTP类型的负载均衡虚拟服务器,并配置HTTP配置文件
  • 为gRPC端点添加Service,并设置HTTP配置文件
  • 绑定gRPC端点服务到负载均衡虚拟服务器

添加HTTP配置文件,启用HTTP/2和HTTP/2 direct

必须在HTTP配置文件中启用HTTP/2和HTTP/2直通参数。另外,如果需要gRPC over HTTP/2 cleartext,则必须启用HTTP/2 direct参数。

在命令提示符下,输入:

add ns httpProfile -http2 (ENABLED | DISABLED) [- http2direct (ENABLED | DISABLED)]

例子:

添加ns httpProfile http2gRPC -http2Direct ENABLED -http2 ENABLED

通过HTTP参数启用全局后端HTTP/2支持

通过使用Citrix ADC命令行在服务器端全局启用HTTP/2支持。

在命令提示符下,输入:

set ns httpParam -http2ServerSide(ON / OFF)

例子:

设置nshttpparam -http2ServerSide ON

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

属性添加负载平衡虚拟服务器Citrix ADC命令接口:

在命令提示符下,输入:

add lb vserver [(@ )] [-httpProfileName ]

例子:

添加lb vserver lb-grpc HTTP 10.10.10.11 80 -httpProfileName http2gRPC

注意:

如果使用SSL类型的负载平衡虚拟服务器,则必须绑定服务器证书。有关详细信息,请参阅绑定服务器证书主题。

为gRPC端点添加Service,并设置HTTP配置文件

使用HTTP配置文件添加gRPC服务Citrix ADC命令界面:在命令提示符下输入:

添加服务 ( | ) [-httpProfileName ]

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

绑定gRPC端点服务到负载均衡虚拟服务器

绑定gRPC服务到负载均衡虚拟服务器Citrix ADC命令接口:

在命令界面输入:

绑定lb vserver

例子:

绑定lb vserver lb-grpc svc-grpc

通过GUI配置端到端gRPC部署

通过图形化界面配置gRPC。

添加HTTP配置文件,启用HTTP/2和HTTP/2 direct

  1. 导航到“系统>配置文件”并点击HTTP配置文件
  2. 在新的HTTP配置文件或现有的HTTP配置文件中启用HTTP/2选项

gRPC端到端配置功能框图

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

  1. 导航到“系统>设置> HTTP参数”
  2. 2 .在“配置HTTP参数”页面中,选择“服务器端HTTP/2”。
  3. 点击好吧

gRPC端到端配置使能全局后端http2

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

  1. 导航到“流量管理>负载均衡>虚拟服务器”
  2. 2 .单击“新建”,为gRPC流量创建负载分担虚拟服务器。
  3. 在“负载均衡虚拟服务器”页面中,单击“配置文件”。
  4. 在Profiles部分中,选择配置文件类型为HTTP。
  5. 单击OK,然后单击Done。

gRPC配置增加业务gRPC端点

为gRPC端点添加Service,并设置HTTP配置文件

  1. 导航到“流量管理>负载均衡>业务”
  2. 2 .单击“新建”,为gRPC流量创建应用服务器。
  3. 在“负载均衡服务”页面中,进入“配置文件”部分。
  4. 在Profiles下,添加gRPC端点的HTTP配置文件。
  5. 单击OK,然后单击Done。

gRPC配置绑定业务负载均衡虚拟服务器

有关负载均衡的详细GUI过程,请参见负载平衡的话题。