ADC

Configuration de bout en bout de gRPC

La configuration de bout en bout de gRPC fonctionne en envoyant une requête gRPC depuis un client via le protocole HTTP/2 et en transférant à nouveau les messages gRPC auxquels le serveur gRPC a répondu.

Comment fonctionne la configuration gRPC de bout en bout

Le schéma suivant montre qu’une configuration gRPC fonctionne dans une appliance NetScaler.

Schéma 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 le support 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 politiques.
  3. Sur la base d’une évaluation de la politique, le serveur virtuel d’équilibrage de charge (auquel le service gRPC est lié) met fin à la demande et la transmet en tant que demande 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>
<!--NeedCopy--> ```

Exemple d’en-tête de réponse gRPC du serveur gRPC vers l’appliance NetScaler

Les en-têtes de réponse et les bandes-annonces uniquement sont fournis dans un seul bloc de trame HTTP/2 HEADERS. La plupart des réponses devraient contenir à la fois des en-têtes et des bandes-annonces, mais Trailers-Only est autorisé pour les appels qui génèrent 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

<!--NeedCopy--> ```

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 :

  • Ajoutez un profil HTTP avec HTTP/2 et HTTP/2 direct 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 service pour le point de terminaison gRPC et définir le profil HTTP
  • Lier le service de point de terminaison gRPC au serveur virtuel d’équilibrage de charge

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

Vous devez activer les paramètres directs HTTP/2 et HTTP/2 dans le profil HTTP. Vous devez également activer le paramètre direct HTTP/2 si du texte clair gRPC sur HTTP/2 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 le support HTTP/2 du back-end global via le paramètre HTTP

Pour activer le support HTTP/2 globalement côté serveur à l’aide de la ligne de commande NetScaler.

À 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 NetScaler  :

À 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 relative au certificat de serveur Bind

Ajouter un service pour le point de terminaison gRPC et définir le profil HTTP

Pour ajouter un service gRPC avec un profil HTTP à l’aide de l’interface de commande NetScaler  : À l’invite de commande, tapez :

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

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

Lier le service de point de terminaison gRPC au serveur virtuel d’équilibrage de charge

Pour lier un service gRPC à un serveur virtuel d’équilibrage de charge à l’aide de l’interface de commande NetScaler  :

Dans l’interface de commande, tapez :

bind lb vserver <name> <serviceName>

Exemple :

bind lb vserver lb-grpc svc-grpc

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

Effectuez les étapes suivantes pour configurer gRPC à l’aide de l’interface graphique.

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

  1. Accédez à Système > Profils et cliquez sur Profils HTTP.
  2. Cochez la case HTTP/2 dans un nouveau profil HTTP ou dans un profil HTTP existant.

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. Sur la page Configurer le paramètre HTTP , cochez la case HTTP/2 côté serveur .
  3. Cliquez sur OK.

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 HTTP.
  5. Cliquez sur OK, puis sur OK.

Ajouter un service pour le point de terminaison gRPC et définir le profil HTTP

  1. Accédez à Traffic Management > Load Balancing > Services.
  2. Cliquez sur Ajouter pour créer un serveur d’applications pour le trafic gRPC.
  3. Sur 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 OK.

Pour obtenir des procédures détaillées sur l’interface graphique liée à l’équilibrage de chargement, consultez la rubrique Équilibrage de charge .