ADC

Pontage inversé gRPC

Dans ce scénario, l’appliance Citrix ADC relie de manière fluide le contenu gRPC reçu sur une connexion HTTP/2 et le transmet au serveur gRPC principal via HTTP/1.1.

Comment fonctionne le pontage inversé

Le schéma suivant montre comment les composants interagissent les uns avec les autres dans une configuration de pont gRPC.

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

  1. Le client envoie une requête gRPC sur une connexion HTTP/2 avec des en-têtes gRPC dans des trames HTTP/2 et une charge utile proto-buf.
  2. Sur la base de l’évaluation des politiques, le serveur virtuel d’équilibrage de charge (auquel est lié le service gRPC) traduit et transmet la demande via une connexion HTTP/1.1 au serveur principal.
  3. À la réception de la réponse HTTP/1.1, s’il n’y a pas de code grpc-status dans la réponse, ADC déduit un status-case grpc à partir du code de réponse HTTP.
  4. L’appliance insère ensuite les en-têtes gRPC dans la bande-annonce HTTP/2 avant de transmettre la réponse au client.

Configurer le pontage inversé gRPC à l’aide de l’interface de ligne de commande

Pour configurer le pontage inversé gRPC, vous devez suivre les étapes suivantes :

  • Ajoutez le profil HTTP 1 avec HTTP/2 et HTTP/2 directs activés pour le serveur virtuel d’équilibrage de charge
  • Ajouter le profil HTTP 2 avec HTTP/2 désactivé pour le serveur principal
  • Ajoutez un serveur virtuel d’équilibrage de charge de type SSL/HTTP et définissez-le sur le profil HTTP 1
  • Ajoutez un service pour le point de terminaison gRPC et définissez-le sur le profil HTTP 2
  • Service Bind pour le point de terminaison gRPC vers le serveur virtuel d’équilibrage de charge
  • Mappez le code d’état HTTP au code d’état gRPC si la réponse n’a pas de code d’état grpc

Ajoutez le profil HTTP 1 avec HTTP/2 et HTTP/2 directs activés pour le serveur virtuel d’équilibrage de charge

Pour commencer la configuration du pontage inversé, vous devez ajouter deux profils HTTP. Un profil pour activer HTTP/2 pour les requêtes des clients gRPC et un autre profil pour désactiver HTTP/2 pour les réponses du serveur non gRPC.

À l’invite de commandes, tapez :

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

Exemple :

ajouter ns HttpProfile profile1 —http2 ENABLED -HTTP2DIRECT ENABLED

Ajouter un profil HTTP 2 avec HTTP/2 désactivé pour le serveur back-end

Pour désactiver la prise en charge HTTP/2 sur le profil HTTP pour la réponse du serveur principal à l’aide de la ligne de commande Citrix ADC.

À l’invite de commandes, tapez : add ns httpProfile <name> - http2 ( ENABLED | DISABLED ) [-http2Direct ( ENABLED | DISABLED )]

Exemple :

ajouter ns HttpProfile profile2 — http2 DÉSACTIVÉ HTTP2DIRECT DÉSACTIVÉ

Ajoutez un serveur virtuel d’équilibrage de charge de type SSL/HTTP et définissez-le sur le profil HTTP 1

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 :

ajouter lb vserver lb-grpc HTTP 10.10.10.10 80 -HttpProfileName profile1

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

Ajoutez un service pour le point de terminaison gRPC et définissez-le sur le profil HTTP 2

Pour ajouter un service avec un point de terminaison gRPC et définir le profil HTTP 2 à 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.11 HTTP 80 -httpProfileName profile2

Service de liaison entre le point de terminaison gRPC et le 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 Citrix ADC.

Dans l’interface de commande, tapez :

bind lb vserver <name> <serviceName>

Exemple :

bind lb vserver lb-grpc svc-grpc

Mappez le code de réponse HTTP au code d’état gRPC

Si le serveur ne génère pas de code d’état gRPC, l’appliance Citrix ADC génère un code d’état gRPC approprié en fonction de la réponse HTTP reçue. Les codes d’état sont répertoriés dans le tableau de mappage ci-dessous.

Code d’état de la réponse HTTP Code d’état gRPC
200 OK.
400 INTERNE = 13
403 AUTORISATION_REFUSÉE = 7
401 NON AUTHENTIFIÉ = 16
429, 502, 503, 504 NON DISPONIBLE = 14
404 NON IMPLÉMENTÉ = 12

Configurer le pontage inversé gRPC à l’aide de l’interface graphique

Ajoutez le profil HTTP 1 avec HTTP/2 et HTTP/2 directs activés pour le serveur virtuel d’équilibrage de charge

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

Ajouter un profil HTTP 2 avec HTTP/2 désactivé pour le serveur back-end

  1. Accédez à Système > Profils et cliquez sur Profils HTTP.
  2. Activez l’option HTTP/2 dans un profil HTTP 2.
  3. Cliquez sur OK.

Ajoutez un serveur virtuel d’équilibrage de charge de type SSL/HTTP et définissez-le sur le profil HTTP 1

  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.

Ajoutez un service avec un point de terminaison gRPC et définissez-le sur le profil HTTP 2

  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.

Service Bind pour le point de terminaison gRPC vers le serveur virtuel d’équilibrage de charge

  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 surla section Service et groupes de services.
  4. Sur la page Liaison du service de serveur virtuel d’équilibrage de charge , sélectionnez le service gRPC à lier.
  5. Cliquez sur Fermer , puis sur OK .

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

Pontage inversé gRPC