Citrix ADC

Configuration de bout en bout du GRPC

La configuration de bout en bout GRPC fonctionne en envoyant une requête GRPC à partir d’un client via le protocole HTTP/2 et en transférant à nouveau les messages GRPC répondant par le serveur GRPC.

Fonctionnement de la configuration GRPC de bout en bout

Le diagramme suivant montre qu’une configuration GRPC fonctionne dans une appliance Citrix ADC.

Diagramme fonctionnel de configuration GRPC

  1. Pour déployer la configuration GRPC, vous devez d’abord activer HTTP/2 dans le profil HTTP et également activer la prise en charge HTTP/2 globalement côté serveur.
  2. Lorsqu’un client envoie une requête GRPC, le serveur virtuel d’équilibrage de charge évalue le trafic GRPC à l’aide de stratégies.
  3. Sur la base de l’évaluation de la stratégie, le serveur virtuel d’équilibrage de charge (avec le service GRPC lié à celui-ci) met fin à la demande et la transmet en tant que requête GRPC au serveur GRPC principal.
  4. De même, lorsque le serveur GRPC répond au client, l’appliance met fin à la réponse et la transmet en tant que réponse GRPC au client.

Exemple de requête GRPC envoyée au serveur GRPC

L’en-tête de requête est envoyé en tant qu’en-têtes HTTP/2 dans HEADERS+CONTINUATION 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>
```

Exemple d’en-tête de réponse GRPC du serveur GRPC vers l’appliance Citrix ADC

Réponse-Headers & Trailers-Only sont livrés dans un seul bloc de trame HTTP/2 HEADERS. La plupart des réponses devraient avoir à la fois des en-têtes et des remorques, mais les remorques seulement sont autorisées pour les appels qui produisent une erreur immédiate. Le statut doit être envoyé dans Trailers même si le code d’état HTTP est OK.

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

```

Configurer GRPC à l’aide de l’interface de ligne de commande

Pour configurer un déploiement GRPC de bout en bout, vous devez effectuer les opérations suivantes :

  • Ajouter un profil HTTP avec HTTP/2 et HTTP/2 directement activés.
  • Activer la prise en charge globale du backend HTTP/2 dans le paramètre HTTP
  • Ajouter un serveur virtuel d’équilibrage de charge de type SSL/HTTP et définir le profil HTTP
  • Ajouter un point de terminaison Service for gRPC et définir un profil HTTP
  • Liaison du service de point d’extrémité gRPC au serveur virtuel d’équilibrage de charge

Ajouter un profil HTTP avec HTTP/2 et HTTP/2 directement activés

Vous devez activer les paramètres directs HTTP/2 et HTTP/2 dans le profil HTTP. En outre, vous devez activer le paramètre direct HTTP/2 si GRPC sur HTTP/2 cleartext est requis.

À l’invite de commandes, tapez :

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

Exemple :

add ns httpProfile http2gRPC -http2Direct ENABLED -http2 ENABLED

Activer la prise en charge globale du back-end HTTP/2 via le paramètre HTTP

Pour activer la prise en charge HTTP/2 globalement du côté serveur à l’aide de la ligne de commande Citrix ADC.

À l’invite de commandes, tapez :

set ns httpParam -http2ServerSide( ON | OFF )

Exemple :

set ns httpParam -http2ServerSide ON

Ajouter un serveur virtuel d’équilibrage de charge de type SSL/HTTP et définir le profil HTTP

Pour ajouter un serveur virtuel d’équilibrage de charge à l’aide de l’interface de commande Citrix ADC  :

À l’invite de commandes, tapez :

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

Exemple :

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

Remarque :

Si vous utilisez un serveur virtuel d’équilibrage de charge de type SSL, vous devez lier le certificat du serveur. Pour plus d’informations, reportez-vous à la rubrique Lier le certificat du serveur.

Ajouter un point de terminaison Service for gRPC et définir un profil HTTP

Pour ajouter un service GRPC avec un profil HTTP à l’aide de l’interface de commande Citrix ADC  : à l’invite de commandes, tapez :

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

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

Liaison du service de point d’extrémité gRPC au serveur virtuel d’équilibrage de charge

Pour lier un service GRPC au serveur virtuel d’équilibrage de charge à l’aide de l’interface de commande Citrix ADC  :

Dans l’interface de commande, tapez :

bind lb vserver <name> <serviceName>

Exemple :

bind lb vserver lb-grpc svc-grpc

Configurer le déploiement GRPC de bout en bout à l’aide de l’interface graphique

Procédez comme suit pour configurer GRPC à l’aide de l’interface graphique.

Ajouter un profil HTTP avec HTTP/2 et HTTP/2 directement activés

  1. Accédez à Système > Profils et cliquez sur Profils HTTP.
  2. Activer l’option HTTP/2 dans un nouveau profil HTTP ou un profil HTTP existant

Schéma fonctionnel de configuration de bout en bout de gRPC

Activer la prise en charge globale du backend HTTP/2 dans le paramètre HTTP

  1. Accédez à Système > Paramètres > Paramètres HTTP.
  2. Dans la page Configurer le paramètre HTTP, sélectionnez HTTP/2 côté serveur.
  3. Cliquez sur OK.

La configuration de bout en bout de GRPC permet le backend global http2

Ajouter un serveur virtuel d’équilibrage de charge de type SSL/HTTP et définir le profil HTTP

  1. Accédez à Gestion du trafic > Équilibrage de charge > Serveurs virtuels.
  2. Cliquez sur Ajouter pour créer un serveur virtuel d’équilibrage de charge pour le trafic gRPC.
  3. Dans la page Serveur virtuel d’équilibrage de charge, cliquez sur Profils.
  4. Dans la section Profils, sélectionnez le type de profil en tant que HTTP.
  5. Cliquez sur OK, puis sur Terminé.

La configuration GRPC ajoute un point de terminaison GRPC de service

Ajouter un point de terminaison Service for gRPC et définir un profil HTTP

  1. Accédez à Gestion du trafic > Équilibrage de charge > Services.
  2. Cliquez sur Ajouter pour créer un serveur d’applications pour le trafic gRPC.
  3. Dans la page Service d’équilibrage de charge, accédez à la section Profil.
  4. Sous Profils, ajoutez un profil HTTP pour le point de terminaison gRPC.
  5. Cliquez sur OK, puis sur Terminé.

Configuration GRPC liaison d'équilibrage de charge de service serveur virtuel

Pour plus d’informations sur les procédures GUI relatives à l’équilibrage du chargement, reportez-vous à la Équilibrage de charge rubrique.