ADC

gRPC-Komplett-Konfiguration

Die gRPC-Ende-zu-Ende-Konfiguration funktioniert, indem eine gRPC-Anfrage von einem Client über das HTTP/2-Protokoll gesendet und erneut gRPC-Nachrichten weitergeleitet werden, die vom gRPC-Server beantwortet wurden.

So funktioniert die durchgängige gRPC-Konfiguration

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

Funktionsdiagramm der gRPC-Konfiguration

  1. Um die gRPC-Konfiguration bereitzustellen, müssen Sie zunächst HTTP/2 im HTTP-Profil aktivieren und außerdem die HTTP/2-Unterstützung global auf der Serverseite aktivieren.
  2. Wenn ein Client eine gRPC-Anfrage sendet, wertet der virtuelle Load-Balancing-Server den gRPC-Verkehr mithilfe von Richtlinien aus.
  3. Basierend auf der Bewertung der Richtlinien beendet der virtuelle Lastausgleichsserver (mit dem daran gebundenen gRPC-Dienst) die Anfrage und leitet sie als gRPC-Anfrage an den Back-End-gRPC-Server weiter.
  4. In ähnlicher Weise beendet die Appliance die Antwort und leitet sie als gRPC-Antwort an den Client weiter, wenn der gRPC-Server auf den Client reagiert.

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

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 NetScaler Appliance

Response-Header und Trailers-Only werden in einem einzigen HTTP/2-HEADERS-Frameblock bereitgestellt. Es wird erwartet, dass die meisten Antworten sowohl Kopfzeilen als auch Trailer enthalten, aber für Aufrufe, die sofort einen Fehler auslösen, ist der Befehl „Nur Trailer“ zulässig. 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 lückenlose gRPC-Bereitstellung zu konfigurieren, müssen Sie die folgenden Schritte ausführen:

  • Fügen Sie ein HTTP-Profil hinzu, bei dem HTTP/2 und HTTP/2 Direct aktiviert sind.
  • Aktivieren Sie die globale Backend-HTTP/2-Unterstützung im HTTP-Parameter
  • Fügen Sie einen virtuellen Load-Balancing-Server vom Typ SSL/HTTP hinzu und legen Sie das HTTP-Profil fest
  • Dienst für gRPC-Endpunkt hinzufügen und HTTP-Profil festlegen
  • Binden Sie den gRPC-Endpunktdienst an den virtuellen Lastausgleichsserver

Fügen Sie ein HTTP-Profil hinzu, bei dem HTTP/2 Direct und HTTP/2 Direct aktiviert sind

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

Geben Sie in der Befehlszeile 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 Backend-HTTP/2-Unterstützung über den HTTP-Parameter

Um die HTTP/2-Unterstützung global auf der Serverseite mithilfe der NetScaler-Befehlszeile zu aktivieren.

Geben Sie in der Befehlszeile Folgendes ein:

set ns httpParam -http2ServerSide( ON | OFF )

Beispiel:

set ns httpParam -http2ServerSide ON

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

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

Geben Sie in der Befehlszeile 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 Thema Serverzertifikat binden .

Dienst für gRPC-Endpunkt hinzufügen und HTTP-Profil festlegen

So fügen Sie mithilfe der NetScaler 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 NetScaler 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 Sie die komplette gRPC-Bereitstellung mithilfe der GUI

Gehen Sie wie folgt vor, um gRPC mithilfe der GUI zu konfigurieren.

Fügen Sie ein HTTP-Profil hinzu, bei dem HTTP/2 Direct und HTTP/2 Direct aktiviert sind

  1. Navigieren Sie zu System > Profile und klicken Sie auf HTTP-Profile.
  2. Wählen Sie das HTTP/2-Kontrollkästchen in einem neuen HTTP-Profil oder einem vorhandenen HTTP-Profil aus.

Aktivieren Sie die globale Backend-HTTP/2-Unterstützung im HTTP-Parameter

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

Fügen Sie einen virtuellen Load-Balancing-Server 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-Verkehr 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.

Dienst für gRPC-Endpunkt 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-Verkehr zu erstellen.
  3. Gehen Sie auf der Seite Load Balancing Service zum Abschnitt Profil .
  4. Fügen Sie unter Profiledas HTTP-Profil für den gRPC-Endpunkt hinzu.
  5. Klicken Sie auf OK und dann auf Fertig.

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