Citrix ADC

gRPC end-to-end configuration

Die GrPC-End-to-End-Konfiguration funktioniert, indem eine GrPC-Anfrage von einem Client über das HTTP/2-Protokoll gesendet wird und die vom GrPC-Server beantworteten GrPC-Nachrichten erneut weitergeleitet werden.

Wie funktioniert die End-to-End-gRPC-Konfiguration

Das folgende Diagramm zeigt, dass eine gRPC-Konfiguration in einer Citrix ADC Appliance funktioniert.

gRPC-Konfigurationsfunktionaldiagramm

  1. Um die gRPC-Konfiguration bereitzustellen, müssen Sie zuerst HTTP/2 im HTTP-Profil aktivieren und die HTTP/2-Unterstützung auch serverseitig global aktivieren.
  2. Wenn ein Client eine GrPC-Anfrage sendet, wertet der virtuelle Lastausgleichsserver den gRPC-Datenverkehr mithilfe von Richtlinien aus.
  3. Basierend auf der Richtlinienbewertung beendet der virtuelle Lastausgleichsserver (an den gRPC-Dienst gebunden ist) die Anforderung und leitet sie als gRPC-Anforderung an den Back-End-gRPC-Server weiter.
  4. Wenn der gRPC-Server auf den Client antwortet, beendet die Appliance die Antwort und leitet sie als gRPC-Antwort an den Client weiter.

Beispiel für eine gRPC-Anfrage, die an gRPC-Server gesendet wird

Der Anforderungsheader wird als HTTP/2-Header in HEADERS+CONTINUATION Frames gesendet.

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

Beispiel für gRPC-Antwortheader vom gRPC-Server zur Citrix ADC Appliance

Nur Response-Header und Trailer werden in einem einzigen HTTP/2 HEADERS-Rahmenblock ausgeliefert. Die meisten Antworten werden voraussichtlich sowohl Header als auch Trailer haben, aber Trailer Only ist für Anrufe zulässig, die einen sofortigen Fehler verursachen. Der Status muss in Trailers gesendet werden, auch wenn der HTTP-Statuscode in Ordnung ist.

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

Konfigurieren von GRPC über die CLI

Um eine End-to-End-GrPC-Bereitstellung zu konfigurieren, müssen Sie Folgendes ausführen:

  • Fügen Sie ein HTTP-Profil hinzu, wenn HTTP/2 und HTTP/2 direkt aktiviert sind.
  • Aktivieren Sie die globale Back-End-HTTP/2-Unterstützung in HTTP-Parametern
  • Fügen Sie einen virtuellen Lastausgleichsserver vom Typ SSL/HTTP hinzu und legen Sie das HTTP-Profil fest
  • Dienst für GrPC Endpoint hinzufügen und HTTP-Profil festlegen
  • Binden Sie den GrPC-Endpunktdienst an den virtuellen Lastausgleichsserver

Fügen Sie ein HTTP-Profil mit aktiviertem HTTP/2 und HTTP/2 hinzu

Sie müssen die direkten HTTP/2- und HTTP/2-Parameter im HTTP-Profil aktivieren. Außerdem müssen Sie den direkten HTTP/2-Parameter aktivieren, wenn gRPC über HTTP/2-Klartext erforderlich ist.

Geben Sie an der Eingabeaufforderung Folgendes ein:

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

Beispiel:

add ns httpProfile http2gRPC -http2Direct ENABLED -http2 ENABLED

Aktivieren Sie die globale Back-End-HTTP/2-Unterstützung über HTTP-Parameter

Um die HTTP/2-Unterstützung global auf der Serverseite zu aktivieren, verwenden Sie die Citrix ADC Befehlszeile.

Geben Sie an der Eingabeaufforderung Folgendes ein:

set ns httpParam -http2ServerSide( ON | OFF )

Beispiel:

set ns httpParam -http2ServerSide ON

Fügen Sie einen virtuellen Lastausgleichsserver vom Typ SSL/HTTP hinzu und legen Sie das HTTP-Profil fest

So fügen Sie einen virtuellen Lastenausgleichsserver mit der Citrix ADC Befehlszeilenschnittstelle hinzu:

Geben Sie an der Eingabeaufforderung Folgendes ein:

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

Beispiel:

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

Hinweis:

Wenn Sie einen virtuellen Lastausgleichsserver vom Typ SSL verwenden, müssen Sie das Serverzertifikat binden. Weitere Informationen finden Sie unter Binden von Serverzertifikaten.

Dienst für GrPC Endpoint hinzufügen und HTTP-Profil festlegen

So fügen Sie mithilfe der Citrix ADC Befehlszeilenschnittstelle einen gRPC-Dienst mit HTTP-Profil hinzu: Geben Sie an der Eingabeaufforderung Folgendes ein:

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

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

Binden Sie den GrPC-Endpunktdienst an den virtuellen Lastausgleichsserver

So binden Sie einen gRPC-Dienst mithilfe der Citrix ADC Befehlszeilenschnittstelle an den virtuellen Lastenausgleichsserver:

Geben Sie an der Befehlszeilenschnittstelle Folgendes ein:

bind lb vserver <name> <serviceName>

Beispiel:

bind lb vserver lb-grpc svc-grpc

Konfigurieren der End-to-End-GrPC-Bereitstellung über die GUI

Führen Sie die folgenden Schritte durch, um GrPC mit der GUI zu konfigurieren.

Fügen Sie ein HTTP-Profil mit aktiviertem HTTP/2 und HTTP/2 hinzu

  1. Navigieren Sie zu System > Profile und klicken Sie auf HTTP-Profile.
  2. Aktivieren Sie die HTTP/2-Option in einem neuen HTTP-Profil oder einem vorhandenen HTTP-Profil

gRPC End-to-End-Konfigurationsfunktions-Diagramm

Aktivieren Sie die globale Back-End-HTTP/2-Unterstützung in HTTP-Parametern

  1. Navigieren Sie zu System > Einstellungen > HTTP-Parameter.
  2. Wählen Sie auf der Seite “HTTP-Parameter konfigurieren” HTTP/2 auf Serverseite aus.
  3. Klicken Sie auf OK.

GrPC End-to-End-Konfiguration ermöglicht globales Backend http2

Fügen Sie einen virtuellen Lastausgleichsserver vom Typ SSL/HTTP hinzu und legen Sie das HTTP-Profil fest

  1. Navigieren Sie zu Traffic Management > Load Balancing > Virtuelle Server.
  2. Klicken Sie auf Hinzufügen, um einen virtuellen Lastausgleichsserver für gRPC-Datenverkehr zu erstellen.
  3. Klicken Sie auf der Seite Virtueller Server für Lastenausgleich auf Profile.
  4. Wählen Sie im Abschnitt Profile den Profiltyp als HTTP aus.
  5. Klicken Sie auf OK und dann auf Fertig.

gRPC-Konfiguration fügt Dienst hinzu GrPC-Endpunkt

Dienst für GrPC Endpoint hinzufügen und HTTP-Profil festlegen

  1. Navigieren Sie zu Traffic Management > Load Balancing > Services.
  2. Klicken Sie auf Hinzufügen, um einen Anwendungsserver für gRPC-Datenverkehr zu erstellen.
  3. Wechseln Sie auf der Seite Load Balancing Service zum Abschnitt Profil.
  4. Fügen Sie unter Profileein HTTP-Profil für den GrPC-Endpoint hinzu.
  5. Klicken Sie auf OK und dann auf Fertig.

GrPC-Konfiguration bindet Service Load Balancing virtueller Server

Ausführliche GUI-Prozeduren im Zusammenhang mit dem Lastenausgleich finden Sie unter Thema Load Balancing .