ADC

Configuración de extremo a extremo de gRPC

La configuración de extremo a extremo de gRPC funciona enviando una solicitud de gRPC desde un cliente a través del protocolo HTTP/2 y reenviando nuevamente los mensajes gRPC respondidos por el servidor gRPC.

Cómo funciona la configuración de gRPC de extremo a extremo

El siguiente diagrama muestra que una configuración de gRPC funciona en un dispositivo NetScaler.

Diagrama funcional de configuración de gRPC

  1. Para implementar la configuración de gRPC, primero debe habilitar HTTP/2 en el perfil HTTP y también habilitar la compatibilidad con HTTP/2 a nivel mundial en el lado del servidor.
  2. Cuando un cliente envía una solicitud de gRPC, el servidor virtual de equilibrio de carga evalúa el tráfico de gRPC mediante directivas.
  3. Según la evaluación de la directiva, el servidor virtual de equilibrio de carga (con el servicio gRPC vinculado a él) finaliza la solicitud y la reenvía como una solicitud de gRPC al servidor gRPC de fondo.
  4. Del mismo modo, cuando el servidor gRPC responde al cliente, el dispositivo finaliza la respuesta y la reenvía como una respuesta de gRPC al cliente.

Ejemplo de solicitud gRPC enviada al servidor gRPC

El encabezado de solicitud se envía como encabezados HTTP/2 en ENCABEZADERS+CONTINUACIÓN Frames.

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

Ejemplo de encabezado de respuesta de GRPC del servidor GRPC al dispositivo NetScaler

Los encabezados de respuesta y solo los tráileres se entregan en un único bloque de marcos HTTP/2 HEADERS. Se espera que la mayoría de las respuestas tengan encabezados y tráileres, pero solo se permite la opción Solo tráileres para las llamadas que producen un error inmediato. El estado debe enviarse en Trailers incluso si el código de estado HTTP es correcto.

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

Configurar GRPC mediante la CLI

Para configurar una implementación de gRPC de principio a fin, debe completar lo siguiente:

  • Añada un perfil HTTP con HTTP/2 y HTTP/2 direct habilitados.
  • Habilite la compatibilidad global con HTTP/2 en el parámetro HTTP
  • Agregue un servidor virtual de equilibrio de carga de tipo SSL/HTTP y establezca el perfil HTTP
  • Agregue el servicio para el punto final de gRPC y configure el perfil HTTP
  • Enlazar el servicio de punto final de gRPC al servidor virtual de equilibrio de carga

Agregue un perfil HTTP con HTTP/2 y HTTP/2 direct habilitados

Debe habilitar los parámetros directos HTTP/2 y HTTP/2 en el perfil HTTP. Además, debe habilitar el parámetro HTTP/2 direct si se requiere gRPC sobre texto sin cifrar HTTP/2.

En la línea de comandos, escriba:

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

Ejemplo:

add ns httpProfile http2gRPC -http2Direct ENABLED -http2 ENABLED

Habilite la compatibilidad global con HTTP/2 en el back-end mediante el parámetro HTTP

Habilitar la compatibilidad con HTTP/2 a nivel mundial en el lado del servidor mediante la línea de comandos de NetScaler.

En la línea de comandos, escriba:

set ns httpParam -http2ServerSide( ON | OFF )

Ejemplo:

set ns httpParam -http2ServerSide ON

Agregue un servidor virtual de equilibrio de carga de tipo SSL/HTTP y establezca el perfil HTTP

Para agregar un servidor virtual de equilibrio de carga mediante la interfaz de comandos de NetScaler :

En la línea de comandos, escriba:

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

Ejemplo:

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

Nota:

Si utiliza un servidor virtual de equilibrio de carga de tipo SSL, debe vincular el certificado del servidor. Consulte el tema Vincular certificado de servidor para obtener más información.

Agregue el servicio para el punto final de gRPC y configure el perfil HTTP

Para agregar un servicio gRPC con perfil HTTP mediante la interfaz de comandos de NetScaler : en la línea de comandos, escriba:

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

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

Enlazar el servicio de punto final de gRPC al servidor virtual de equilibrio de carga

Para vincular un servicio gRPC al servidor virtual de equilibrio de carga mediante la interfaz de comandos de NetScaler :

En la interfaz de comandos, escriba:

bind lb vserver <name> <serviceName>

Ejemplo:

bind lb vserver lb-grpc svc-grpc

Configure el despliegue de gRPC de principio a fin mediante la interfaz gráfica de usuario

Complete los siguientes pasos para configurar el gRPC mediante la GUI.

Agregue un perfil HTTP con HTTP/2 y HTTP/2 direct habilitados

  1. Vaya a Sistema > Perfiles y haga clic en Perfiles HTTP.
  2. Seleccione la casilla HTTP/2 en un perfil HTTP nuevo o en un perfil HTTP existente.

Habilite la compatibilidad global con HTTP/2 en el parámetro HTTP

  1. Vaya a Sistema > Configuración > Parámetros HTTP.
  2. En la página Configurar parámetros HTTP , seleccione la casilla HTTP/2 en el lado del servidor .
  3. Haga clic en Aceptar.

Agregue un servidor virtual de equilibrio de carga de tipo SSL/HTTP y establezca el perfil HTTP

  1. Vaya a Administración del tráfico > Equilibrio de carga > Servidores virtuales.
  2. Haga clic en Agregar para crear un servidor virtual de equilibrio de carga para el tráfico de gRPC.
  3. En la página Servidor virtual de equilibrio de carga, haga clic en Perfiles.
  4. En la sección Perfiles, seleccione el tipo de perfil como HTTP.
  5. Haga clic en Aceptar y, a continuación, Hecho.

Agregue el servicio para el punto final de gRPC y configure el perfil HTTP

  1. Vaya a Traffic Management > Load Balancing > Services.
  2. Haga clic en Agregar para crear un servidor de aplicaciones para el tráfico de gRPC.
  3. En la página del servicio de equilibrio de carga, vaya a la sección Perfil .
  4. En Perfiles, añada el perfil HTTP para el endpoint de gRPC.
  5. Haga clic en Aceptar y, a continuación, Hecho.

Para obtener procedimientos de GUI detallados relacionados con el equilibrio de carga, consulte el tema Equilibrio de carga.

Configuración de extremo a extremo de gRPC