Auf dieser Seite finden Sie eine Übersicht über die Unterschiede zwischen dem globalen externen Application Load Balancer und dem klassischen Application Load Balancer sowie eine detaillierte Anleitung zur Migration Ihrer vorhandenen klassischen Application Load Balancer-Ressourcen zum globalen externen Application Load Balancer.
Wenn Sie die erweiterten Funktionen zur Trafficverwaltung des globalen externen Application Load Balancers nutzen möchten, empfehlen wir, Ihre Ressourcen des klassischen Application Load Balancers zur Infrastruktur des globalen externen Application Load Balancers zu migrieren.
Klassische Application Load Balancer und globale externe Application Load Balancer vergleichen
Bevor Sie Ressourcen migrieren, sollten Sie sich mit den Unterschieden zwischen klassischen Application Load Balancern und globalen externen Application Load Balancern vertraut machen.
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.
|
Aufgrund architektonischer Unterschiede kann es bei der Migration zum globalen externen Application Load Balancer zu einer Zunahme der Anzahl der Verbindungen zu Ihren Back-Ends kommen, insbesondere bei Verwendung des HTTP/1.1-Protokolls. Dies kann zu einem erhöhten Arbeitsspeicherverbrauch auf den Backend-Instanzen führen. Überwachen Sie die Nutzung Ihrer Backend-Ressourcen während und nach der Migration.
Weitere Informationen zu den Unterschieden und unterstützten Funktionen finden Sie unter Load-Balancer-Features im Vergleich und Application Load Balancer.
Von klassischen zu globalen externen Application Load Balancern migrieren
Um zu einem globalen externen Application Load Balancer zu migrieren, ändern Sie das Load-Balancing-Schema Ihrer Load-Balancing-Ressourcen, insbesondere der Backend-Dienste und Weiterleitungsregeln, von EXTERNAL zu EXTERNAL_MANAGED. Dazu führen Sie eine Reihe von Migrationsschritten aus, bei denen Sie Teile Ihres Netzwerk-Traffics mit dem neuen Load-Balancing-Schema testen können, bevor Sie die Migration abschließen. Während der Ressourcenmigration können Sie festlegen, welcher Prozentsatz der Anfragen an die Infrastruktur des klassischen Application Load Balancers oder an die Infrastruktur des globalen externen Application Load Balancers gesendet wird.
Das folgende Diagramm zeigt die Load-Balancing-Schemata Ihrer Load-Balancing-Ressourcen vor und nach der Migration.
Beachten Sie im vorherigen Diagramm Folgendes:
- Vor der Migration von Ressourcen werden alle Anfragen über die Infrastruktur des klassischen Application Load Balancers weitergeleitet.
- Während der Migration der Ressourcen werden einige Anfragen an die Infrastruktur des globalen externen Application Load Balancers und die verbleibenden Anfragen an die Infrastruktur des klassischen Application Load Balancers gesendet.
- Nach der Migration der Ressourcen werden alle Anfragen über die Infrastruktur des globalen externen Application Load Balancers weitergeleitet.
Um einen reibungslosen Übergang zu gewährleisten, migrieren Sie die folgenden Ressourcen des klassischen Application Load Balancers in der angegebenen Reihenfolge:
Migrieren Sie alle Backend-Dienste, die an die Weiterleitungsregeln des Load-Balancers angehängt sind.
Migrieren Sie alle Back-End-Buckets, die an die Weiterleitungsregeln des Load-Balancers angehängt sind. Das erfolgt auf der Ebene der Weiterleitungsregel, da Backend-Buckets keine Load-Balancing-Schemata haben.
Weiterleitungsregeln des Load-Balancers migrieren.
Sie können eine Weiterleitungsregel erst migrieren, wenn alle Backend-Dienste und Backend-Buckets, die an die Weiterleitungsregel angehängt sind, bereits migriert wurden.
Migrationsstatus
Sie migrieren Ressourcen, indem Sie sie in verschiedene Status versetzen, bevor Sie ihr Load-Balancing-Schema in EXTERNAL_MANAGED ändern.
PREPARE: Wenn Sie eine Ressource in diesen Status versetzen, bereiten Sie sie für die Migration vor.TEST_BY_PERCENTAGE: Wenn Sie eine vorbereitete Ressource testen möchten, legen Sie die Ressource auf diesen Status fest, um einen bestimmten Prozentsatz des Netzwerkverkehrs zu senden. Diese Phase ist optional.TEST_ALL_TRAFFIC: Wenn Sie eine Ressource in diesen Status versetzen, wird der gesamte Netzwerkverkehr zur Ressource über die Infrastruktur des globalen externen Application Load Balancers anstelle der Infrastruktur des klassischen Application Load Balancers gesendet.
Migrationsprozess
Um Ausfallzeiten zu vermeiden, migrieren Sie Ressourcen in einer bestimmten Reihenfolge von der Infrastruktur des klassischen Application Load Balancer zur Infrastruktur des globalen externen Application Load Balancer und ändern dann das Load-Balancing-Schema von EXTERNAL zu EXTERNAL_MANAGED, um die Migration abzuschließen.
Migrieren Sie die Backend-Dienste des Load Balancers.
Wiederholen Sie die folgenden Schritte für jeden Back-End-Dienst.
Bereiten Sie den Backend-Dienst für die Migration vor.
Bevor Traffic über die Infrastruktur des globalen externen Application Load Balancers gesendet werden kann, müssen Sie den Status des Backend-Dienstes auf
PREPAREfestlegen. Dadurch wird der Backend-Dienst für die Verarbeitung des Infrastrukturnetzwerk-Traffics globaler externer Application Load Balancer vorbereitet. Es dauert einige Zeit (ca. sechs Minuten), bis ein Backend-Dienst bereit ist, Traffic über die Infrastruktur des globalen externen Application Load Balancers zu senden.Optional: Testen Sie den vorbereiteten Backend-Dienst.
Nachdem sich der Backend-Dienst im Status
PREPAREbefindet, stellen Sie seinen Status aufTEST_BY_PERCENTAGEein und legen Sie einen Prozentsatz des Netzwerk-Traffics des klassischen Application Load Balancers auf die Infrastruktur des globalen externen Application Load Balancers fest.Diese Phase ist zwar optional, wir empfehlen jedoch, den Traffic zu testen, bevor Sie einen Backend-Dienst migrieren. Beginnen Sie mit einem kleinen Prozentwert und beobachten Sie die Logs der Ressourcen. Wenn sich der Backend-Dienst wie erwartet verhält, erhöhen Sie den Prozentsatz schrittweise auf 100%.
Im Status
TEST_BY_PERCENTAGEkönnen Sie die zusätzlichen Funktionen der Infrastruktur des globalen externen Application Load Balancers nicht nutzen.Senden Sie den gesamten Netzwerk-Traffic des klassischen Application Load Balancers an den vorbereiteten Backend-Dienst.
Nachdem der Backend-Dienst erfolgreich getestet wurde, legen Sie seinen Status auf
TEST_ALL_TRAFFICfest und leiten Sie den gesamten Netzwerk-Traffic des klassischen Application Load Balancers an den vorbereiteten Backend-Dienst weiter. Es dauert einige Zeit (etwa sechs Minuten), bis ein Backend-Dienst bereit ist, den Netzwerk-Traffic zu verarbeiten.Im Status
TEST_ALL_TRAFFICkönnen Sie die zusätzlichen Funktionen der Infrastruktur des globalen externen Application Load Balancers nicht nutzen.Ändern Sie das Load-Balancing-Schema des migrierten Back-End-Dienstes in
EXTERNAL_MANAGED.Nachdem Sie den vorbereiteten Backend-Dienst in der Infrastruktur des globalen externen Application Load Balancer getestet haben, ändern Sie das Load-Balancing-Schema in
EXTERNAL_MANAGED. Die vollständige Migration eines Backend-Dienstes dauert einige Zeit (ca. sechs Minuten). Nachdem sich das Load-Balancing-Schema des Backend-Dienstes inEXTERNAL_MANAGEDgeändert hat, können Sie die erweiterten Funktionen der Infrastruktur des globalen externen Application Load Balancers verwenden.
Migrieren Sie die Backend-Buckets des Load-Balancers. Dies erfolgt auf der Ebene der Weiterleitungsregel, da Backend-Buckets keine Load-Balancing-Schemas haben.
Wiederholen Sie die folgenden Schritte für jeden Bucket.
Bereiten Sie den Backend-Bucket für die Migration vor.
Bevor Traffic über die Infrastruktur des globalen externen Application Load Balancers gesendet werden kann, müssen Sie den Status des Backend-Buckets auf
PREPAREfestlegen und einige Zeit (ca. sechs Minuten) warten.Optional: Testen Sie den vorbereiteten Backend-Dienst.
Nachdem sich der Backend-Bucket im Status
PREPAREbefindet, stellen Sie seinen Status aufTEST_BY_PERCENTAGEein und legen Sie einen Prozentsatz des Netzwerkverkehrs des klassischen Application Load Balancers auf die Infrastruktur des globalen externen Application Load Balancers fest.Senden Sie den gesamten Netzwerk-Traffic des klassischen Application Load Balancers an den vorbereiteten Backend-Bucket.
Legen Sie den Status des Backend-Buckets auf
TEST_ALL_TRAFFICfest und leiten Sie den gesamten Netzwerk-Traffic des klassischen Application Load Balancers dorthin weiter. Es dauert einige Zeit (etwa sechs Minuten), bis ein Backend-Bucket bereit ist, um den Netzwerkverkehr zu verarbeiten.Im Status
TEST_ALL_TRAFFICkönnen Sie die zusätzlichen Funktionen der Infrastruktur des globalen externen Application Load Balancers nicht nutzen.
Migrieren Sie die Weiterleitungsregeln.
Ändern Sie für jede Weiterleitungsregel das Load-Balancing-Schema der Weiterleitungsregel in
EXTERNAL_MANAGEDund warten Sie einige Zeit (ca. sechs Minuten). Nachdem sich das Load-Balancing-Schema der Weiterleitungsregel inEXTERNAL_MANAGEDgeändert hat, können Sie die erweiterten Funktionen der Infrastruktur des globalen externen Application Load Balancers verwenden.
Eine detaillierte Schritt-für-Schritt-Anleitung finden Sie unter Ressourcen vom klassischen Application Load Balancer migrieren.
Das folgende Diagramm zeigt die Ressourcen des klassischen Application Load Balancer in den verschiedenen Migrationsstatus.
Wenn Sie eine migrierte Ressource innerhalb von 90 Tagen nach der Migration auf den klassischen Application Load Balancer zurücksetzen möchten, ändern Sie das Load-Balancing-Schema. Nach Ablauf des 90‑Tage-Zeitraums können Sie für eine Ressource kein Rollback mehr durchführen.
Sitzungsaffinität verwenden
Beachten Sie die folgenden Einschränkungen, wenn Sie Backend-Dienste für klassische Application Load Balancer mit Sitzungsaffinität migrieren:
Wenn Sie einen Wert für
TEST_BY_PERCENTAGEfestlegen, wird ein Teil des Traffics, der auf den klassischen Application Load Balancer ausgerichtet ist, an den globalen externen Application Load Balancer weitergeleitet. Dadurch wird die Client-IP-Affinität aufgehoben. Wenn Sie den Migrationsprozentsatz ändern (z. B. um 10%), wird die Sitzungsaffinität für denselben Prozentsatz von Client-IP-Adressen (in diesem Beispiel 10 %) unterbrochen, bis die Affinität bei der nächsten Anfrage wiederhergestellt wird.Wenn Sie einen Wert für
TEST_BY_PERCENTAGEfestlegen, wird dieser Prozentsatz des Traffics ohne Sitzungscookie an den globalen externen Application Load Balancer weitergeleitet. Außerdem wird der gesamte Traffic mit einem Sitzungscookie an die Load-Balancer-Flotte weitergeleitet, die das Cookie generiert hat.Wenn Sie für
TEST_BY_PERCENTAGEden Wert 0 % festlegen, ihn nicht festlegen oder den Backend-Dienst auf den StatusPREPAREsetzen, werden alle vorhandenen Cookies, die an den globalen externen Application Load Balancer gerichtet sind, ungültig.Wenn Sie das Load-Balancing-Schema des Backend-Dienstes in
EXTERNAL_MANAGEDändern, werden alle Cookies ungültig, die von der Flotte klassischer Application Load Balancer generiert wurden. So können Sie den Traffic zurücksetzen, wenn es ein Problem mit Ihrer Anwendung gibt, die den globalen externen Application Load Balancer verwendet. Wenn ein Client beispielsweise ein Cookie aus der Flotte des klassischen Application Load Balancer präsentiert, das Backend-Dienstschema aberEXTERNAL_MANAGEDist, wird das Cookie des Clients nicht berücksichtigt. Der globale externe Application Load Balancer ignoriert das Cookie und erstellt ein neues.
Migrierte Ressourcen zurücksetzen
Wenn Sie eine migrierte Ressource nach der Migration von der Infrastruktur des globalen externen Application Load Balancers zur Infrastruktur des klassischen Application Load Balancers zurücksetzen möchten, können Sie dies innerhalb von 90 Tagen nach der Änderung des Load-Balancing-Schemas tun.
Wenn Sie einen Backend-Dienst auf das EXTERNAL-Schema zurücksetzen, müssen Sie auch die Weiterleitungsregel zurücksetzen. Wenn Sie eine Weiterleitungsregel auf das EXTERNAL-Schema zurücksetzen, müssen Sie die Backend-Dienste nicht zurücksetzen.
So machen Sie Änderungen an Ressourcen rückgängig:
- Entfernen Sie alle neuen erweiterten Traffic-Verwaltungsfunktionen des globalen externen Application Load Balancer, die für die Ressource konfiguriert sind.
Machen Sie die Weiterleitungsregeln rückgängig.
Ändern Sie das Load-Balancing-Schema von Weiterleitungsregeln von
EXTERNAL_MANAGEDinEXTERNAL.Führen Sie ein Rollback der Backend-Buckets durch.
- Legen Sie den Migrationsstatus der Backend-Buckets auf
TEST_ALL_TRAFFICfest und warten Sie einige Zeit (ca. sechs Minuten). - Optional: Wenn Sie den Traffic verringern möchten, legen Sie den Migrationsstatus von Backend-Buckets auf
TEST_BY_PERCENTAGEfest und geben Sie einen Prozentsatz des Traffics an. - Legen Sie den Migrationsstatus von Backend-Buckets auf
PREPAREfest. - Backend-Buckets in den Zustand vor der Migration zurücksetzen.
- Legen Sie den Migrationsstatus der Backend-Buckets auf
Machen Sie die Änderungen an den Backend-Diensten rückgängig.
- Legen Sie den Migrationsstatus von Back-End-Diensten auf
TEST_ALL_TRAFFICfest und warten Sie einige Zeit (ca. sechs Minuten). - Optional: Wenn Sie den Traffic verringern möchten, legen Sie den Migrationsstatus von Back-End-Diensten auf
TEST_BY_PERCENTAGEfest und geben Sie einen Prozentsatz des Traffics an. - Legen Sie den Migrationsstatus von Backend-Diensten auf
PREPAREfest. - Backend-Dienste in den Zustand vor der Migration zurücksetzen
- Legen Sie den Migrationsstatus von Back-End-Diensten auf
Eine detaillierte Schritt-für-Schritt-Anleitung finden Sie unter Migrierte Ressourcen auf den klassischen Application Load Balancer zurücksetzen.
Migrationsprozess verfolgen
Während der Migration Ihrer Ressourcen können Sie die Load-Balancing-Schemata so prüfen:
Die Dashboards für Logging und Monitoring des globalen externen Application Load Balancers. Weitere Informationen finden Sie unter Logging und Monitoring für globale externe Application Load Balancer.
Die Werte der folgenden HTTP-Anfrage- und -Antwortheader:
X-External-Managed-Migration-Scheme-Override: Dieser Anfrageheader leitet die Anfrage basierend auf seinem Wert weiter. Wenn der HeaderwertEXTERNAList, wird die Anfrage an die Infrastruktur des klassischen Application Load Balancer weitergeleitet. Wenn der WertEXTERNAL_MANAGEDist, wird die Anfrage über die Infrastruktur des globalen externen Application Load Balancers weitergeleitet.Mit diesem Header können Sie eine Anfrage an eine bestimmte Load-Balancer-Flotte weiterleiten.
X-External-Managed-Migration-Selected-Scheme: Dieser Anfrage- und Antwortheader informiert das Backend und den Client über das Load-Balancing-Schema, das zum Weiterleiten der Anfrage verwendet wurde. Der Header wird an den Client zurückgegeben und an das Backend des Kunden übergeben.Wenn die Anfrage über die Infrastruktur des klassischen Application Load Balancer weitergeleitet wird, ist der Wert
EXTERNAL. Wenn die Anfrage über die Infrastruktur des globalen externen Application Load Balancers weitergeleitet wird, ist der WertEXTERNAL_MANAGED.
Nächste Schritte
- Ressourcen vom klassischen Application Load Balancer migrieren
- Migrierte Ressourcen auf den klassischen Application Load Balancer zurücksetzen