Wenn Sie bereits den klassischen Application Load Balancer verwenden, lesen Sie diese Seite, wenn Sie die Migration zum globalen externen Application Load Balancer oder eine neue Bereitstellung mit dem globalen externen Application Load Balancer planen.
Funktionsunterschiede
Die folgenden Features werden vom globalen externen Application Load Balancer nicht unterstützt. Sie sind nur mit dem klassischen Application Load Balancer verfügbar:
- Standard-Netzwerkstufe
-
Verwenden Sie zum Bereitstellen globaler externer Application Load Balancer für GKE-Cluster den GKE-Gateway-Controller. Eine Anleitung zur Einrichtung finden Sie unter Gateways bereitstellen.
Unterschiede der Datenebene
In der folgenden Tabelle werden die Unterschiede in der Datenebene zwischen dem klassischen Application Load Balancerr und dem globalen externen Application Load Balancer hervorgehoben. Diese Unterschiede wirken sich darauf aus, wie die Load-Balancer auf einige häufige Ereignisse reagieren.
Ereignis | Antwort des klassischen Application Load Balancers | Antwort des globalen externen Application Load Balancers |
Status/Fehlercodes | ||
Alle Back-Ends sind fehlerhaft | Gibt HTTP 502 zurück | Gibt HTTP 503 zurück |
Anfrage verwendet eine gesperrte SSL-Chiffre | Gibt HTTP 502 zurück | Gibt HTTP 503 zurück |
Frühe Upstream-Verbindung wurde vom Backend zurückgesetzt | Gibt HTTP 502 zurück | Gibt HTTP 503 zurück |
Fehler beim Verbindungsupgrade (z. B. beim Upgrade auf WebSockets) | Gibt HTTP 400 zurück | Gibt HTTP 403 zurück |
Header ist zu groß | Gibt HTTP 413 zurück | Gibt HTTP 431 zurück |
Kontingente und Limits | ||
Konfiguration der URL-Zuordnung | Die Konfigurationslimits für die URL-Zuordnung unterscheiden sich erheblich zwischen den beiden Load Balancern. Weitere Informationen finden Sie in der Dokumentation Kontingente: URL-Zuordnungen. | |
Header-Verarbeitung | ||
Anfrage verwendet eine benutzerdefinierte HTTP-Methode ohne Text | Fügt den Header Transfer Encoding: Chunked der Anfrage hinzu, die an das Backend gesendet wird |
Fügt den Header Content-Length: 0 der Anfrage hinzu, die an das Backend gesendet wird |
Format des X-Forwarded-For -Headers, wird der Anfrage hinzugefügt, die an das Backend gesendet wird |
Verwendet das Trennzeichen „, “ zwischen IP-Adressen |
Verwendet das Trennzeichen „, “ zwischen IP-Adressen (kein Leerzeichen nach dem Komma) |
Beibehaltung der Header-Schreibweise | Header-Schreibweise wird beibehalten | Alle Headerschlüssel werden in Kleinbuchstaben umgewandelt. |
Wiederkehrende Header mit demselben Namen | Zugelassen | Wiederkehrende Header können wie in RFC 7230 zugelassen in einem einzigen Header kombiniert werden, in dem die Werte in der richtigen Reihenfolge angehängt und durch Kommas getrennt sind. |
(Nur HTTP/1.1) Ungültiger Header-Name (z. B. nicht unterstützte Zeichen im Header) | Zulässig (für HTTP/1.1) | Gibt HTTP 502 zurück (für HTTP/1.1) |
(Nur HTTP/1.1) Wiederholter (aber derselbe) Content-Length -Header in der Anfrage |
Zulässig (für HTTP/1.1) | Gibt HTTP 502 zurück (für HTTP/1.1) |
(Nur HTTP/1.1) Mehrere Hosts im Header | Wenn zwei oder mehr Hosts hinzugefügt werden und der erste gültig ist, wird der Header akzeptiert | Wenn zwei oder mehr Hosts hinzugefügt werden und einige sind ungültig sind, gibt der Load-Balancer HTTP 502 zurück |
(Nur HTTP/1.1) Connection: Keep-Alive -Header |
Fügt Keep-Alive header den Anfragen hinzu, die standardmäßig an das Backend gesendet werden |
Fügt diesen Header nicht standardmäßig hinzu |
Anfragen verarbeiten | ||
Rückschrägstriche in der Anfrage | URL bleibt unverändert | Umwandlung in Schrägstriche |
Doppelte Schrägstriche in Anfrage zusammenführen | Schrägstriche werden nicht zusammengeführt | Schrägstriche werden zusammengeführt |
„#“ im Anfragepfad | Zulässig | Gibt HTTP 400 zurück |
(Nur HTTP/1.1) Unzulässige Zeichen im Anfragepfad (z. B. „\\x7f\\x7f“) | Zulässig (für HTTP/1.1) | Gibt HTTP 502 zurück (für HTTP/1.1) |
Traffic-Verteilung (URL-Zuordnungskonfiguration) | ||
Clientanfrage enthält eine Portnummer | Die Portnummer wird auch dann ignoriert, wenn Sie Hosts mit Ports in der URL-Zuordnung konfiguriert haben. Es wird nur der Hostname berücksichtigt. Beispiel: Anfragen für example.com:5000 werden dem Backend-Dienst für example.com zugeordnet.
|
Sowohl der Hostname als auch die Portnummer werden berücksichtigt. Beispiel: Anfragen für example.com:5000 werden dem Backend-Dienst für example.com:5000 zugeordnet. Wenn es keine Übereinstimmung gibt, wird der Standard-Backend-Dienst verwendet.
|