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 zum Migrieren Ihrer vorhandenen Ressourcen für den klassischen Application Load Balancer zum globalen externen Application Load Balancer.
Wenn Sie die erweiterten Funktionen zur Trafficverwaltung des globalen externen Application Load Balancers nutzen möchten, empfehlen wir Ihnen, Ihre Ressourcen für den klassischen Application Load Balancer zur globalen externen Application Load Balancer-Infrastruktur 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.
|
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
Wenn Sie zu einem globalen externen Application Load Balancer migrieren möchten, ä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 Netzwerktraffics 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 klassische Application Load Balancer-Infrastruktur oder an die globale externe Application Load Balancer-Infrastruktur gesendet wird.
Das folgende Diagramm zeigt die Load Balancing-Schemas Ihrer Load Balancing-Ressourcen vor und nach der Migration.
Beachten Sie im vorherigen Diagramm Folgendes:
- Bevor Ressourcen migriert werden, wird für alle Anfragen die klassische Application Load Balancer-Infrastruktur verwendet.
- Während der Migration werden einige Anfragen an die globale externe Application Load Balancer-Infrastruktur und die verbleibenden Anfragen an die klassische Application Load Balancer-Infrastruktur gesendet.
- Nach der Migration der Ressourcen werden für alle Anfragen die globalen externen Application Load Balancer-Infrastrukturen verwendet.
Für einen reibungslosen Übergang sollten Sie die folgenden Ressourcen des klassischen Application Load Balancers in der angegebenen Reihenfolge migrieren:
Migrieren Sie alle Back-End-Dienste, die mit den Weiterleitungsregeln des Load Balancers verknüpft sind.
Migrieren Sie alle Back-End-Buckets, die mit den Weiterleitungsregeln des Load Balancers verknüpft sind. Sie tun dies auf Ebene der Weiterleitungsregel, da Back-End-Buckets keine Load Balancing-Schemata haben.
Migrieren Sie die Weiterleitungsregeln des Load Balancers.
Sie können eine Weiterleitungsregel erst migrieren, nachdem alle mit der Weiterleitungsregel verknüpften Back-End-Dienste und Back-End-Buckets migriert wurden.
Migrationsstatus
Sie migrieren Ressourcen, indem Sie ihnen einen anderen Status zuweisen, bevor Sie das Load Balancing-Schema in EXTERNAL_MANAGED
ändern.
PREPARE
: Sie können eine Ressource in diesen Status setzen, um sie für die Migration vorzubereiten.TEST_BY_PERCENTAGE
: Wenn Sie eine vorbereitete Ressource testen möchten, legen Sie diesen Status für die Ressource fest, um einen Prozentsatz des Netzwerktraffics zu senden. Diese Phase ist optional.TEST_ALL_TRAFFIC
: Legen Sie für eine Ressource diesen Status fest, um den gesamten Netzwerkverkehr über die globale externe Application Load Balancer-Infrastruktur an die Ressource zu senden, anstatt über die klassische Application Load Balancer-Infrastruktur.
Migrationsprozess
Um Ausfallzeiten zu vermeiden, sollten Sie die Ressourcen in einer bestimmten Reihenfolge von der Infrastruktur des klassischen Application Load Balancers zur Infrastruktur des globalen externen Application Load Balancers migrieren und dann das Load Balancing-Schema von EXTERNAL
in EXTERNAL_MANAGED
ändern, 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 globale externe Application Load Balancer-Infrastruktur gesendet werden kann, müssen Sie den Status des Backend-Dienstes auf
PREPARE
festlegen. Dadurch wird der Backend-Dienst für die Verarbeitung des Netzwerkverkehrs der globalen externen Application Load Balancer-Infrastruktur vorbereitet. Es dauert einige Zeit (ungefähr sechs Minuten), bis ein Backend-Dienst Traffic über die globale externe Application Load Balancer-Infrastruktur senden kann.Optional: Testen Sie den vorbereiteten Backend-Dienst.
Nachdem der Backend-Dienst den Status
PREPARE
hat, legen Sie den Status aufTEST_BY_PERCENTAGE
fest und legen Sie einen Prozentsatz des Netzwerktraffics des klassischen Application Load Balancers auf die globale externe Application Load Balancer-Infrastruktur fest.Diese Phase ist optional. Wir empfehlen jedoch, den Traffic zu testen, bevor Sie einen Backend-Dienst migrieren. Beginnen Sie mit einem kleinen Prozentsatz und überwachen Sie die Protokolle der Ressourcen. Wenn sich der Back-End-Dienst wie erwartet verhält, erhöhen Sie den Prozentsatz schrittweise auf 100%.
Im Status
TEST_BY_PERCENTAGE
können Sie die zusätzlichen Funktionen der globalen externen Application Load Balancer-Infrastruktur nicht verwenden.Senden Sie den gesamten Netzwerkverkehr des klassischen Application Load Balancers an den vorbereiteten Backend-Dienst.
Nachdem der Test des Backend-Dienstes erfolgreich war, setzen Sie seinen Status auf
TEST_ALL_TRAFFIC
und senden Sie den gesamten Netzwerkverkehr des klassischen Anwendungs-Load Balancers an den vorbereiteten Backend-Dienst. Es dauert einige Zeit (ungefähr sechs Minuten), bis ein Backend-Dienst für die Verarbeitung des Netzwerktraffics bereit ist.Im Status
TEST_ALL_TRAFFIC
können Sie die zusätzlichen Funktionen der globalen externen Application Load Balancer-Infrastruktur nicht verwenden.Ändern Sie das Load Balancing-Schema des migrierten Backend-Dienstes in
EXTERNAL_MANAGED
.Nachdem Sie Ihren vorbereiteten Backend-Dienst in der globalen externen Application Load Balancer-Infrastruktur getestet haben, ändern Sie das Load Balancing-Schema in
EXTERNAL_MANAGED
. Die vollständige Migration eines Backend-Dienstes dauert einige Zeit (ungefähr sechs Minuten). Nachdem das Load Balancing-Schema des Backend-Dienstes inEXTERNAL_MANAGED
geändert wurde, können Sie die erweiterten Funktionen der globalen externen Application Load Balancer-Infrastruktur verwenden.
Migrieren Sie die Back-End-Buckets des Load Balancers. Sie tun dies auf 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 globale externe Application Load Balancer-Infrastruktur gesendet werden kann, müssen Sie den Status des Back-End-Buckets auf
PREPARE
setzen und einige Zeit warten (ca. sechs Minuten).Optional: Testen Sie den vorbereiteten Backend-Dienst.
Nachdem der Backend-Bucket den Status
PREPARE
hat, ändern Sie den Status inTEST_BY_PERCENTAGE
und legen Sie einen Prozentsatz des Netzwerktraffics des klassischen Application Load Balancers auf die globale externe Application Load Balancer-Infrastruktur fest.Senden Sie den gesamten Netzwerkverkehr des klassischen Application Load Balancers an den vorbereiteten Backend-Bucket.
Legen Sie den Status des Backend-Buckets auf
TEST_ALL_TRAFFIC
fest und leiten Sie den gesamten Netzwerkverkehr des klassischen Application Load Balancers an ihn weiter. Es dauert einige Zeit (ungefähr sechs Minuten), bis ein Backend-Bucket für den Netzwerkverkehr bereit ist.Im Status
TEST_ALL_TRAFFIC
können Sie die zusätzlichen Funktionen der globalen externen Application Load Balancer-Infrastruktur nicht verwenden.
Migrieren Sie die Weiterleitungsregeln.
Ändern Sie für jede Weiterleitungsregel das Load Balancing-Schema in
EXTERNAL_MANAGED
und warten Sie einige Zeit (ca. sechs Minuten). Nachdem das Load Balancing-Schema der Weiterleitungsregel inEXTERNAL_MANAGED
geändert wurde, können Sie die erweiterten Funktionen der globalen externen Application Load Balancer-Infrastruktur verwenden.
Eine detaillierte Anleitung finden Sie unter Ressourcen vom klassischen Application Load Balancer migrieren.
Das folgende Diagramm zeigt die Ressourcen des klassischen Application Load Balancers in den verschiedenen Migrationsstatus.
Wenn Sie eine Ressource nach der Migration auf den klassischen Application Load Balancer zurücksetzen möchten, ändern Sie das Load Balancing-Schema innerhalb von 90 Tagen nach der Migration. Nach Ablauf der 90 Tage ist kein Rollback mehr möglich.
Sitzungsaffinität verwenden
Beachten Sie die folgenden Einschränkungen, wenn Sie klassische Application Load Balancer-Backend-Dienste mit Sitzungsaffinität migrieren:
Wenn Sie einen Wert für
TEST_BY_PERCENTAGE
festlegen, 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 der Client-IP-Adressen (in diesem Beispiel 10 %) aufgehoben, bis sie bei der nächsten Anfrage wiederhergestellt wird.Wenn Sie einen Wert für
TEST_BY_PERCENTAGE
festlegen, 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_PERCENTAGE
den Wert „0 %“ festlegen oder ihn nicht festlegen oder den Backend-Dienst in den StatusPREPARE
setzen, werden alle vorhandenen Cookies ungültig, die an den globalen externen Application Load Balancer weitergeleitet werden.Wenn Sie das Load Balancing-Schema des Backend-Dienstes in
EXTERNAL_MANAGED
ändern, werden alle Cookies ungültig, die von der klassischen Application Load Balancer-Flotte generiert wurden. So können Sie den Traffic rückgängig machen, wenn ein Problem mit Ihrer Anwendung auftritt, die den globalen externen Application Load Balancer verwendet. Wenn ein Client beispielsweise ein Cookie aus der klassischen Application Load Balancer-Flotte vorlegt, das Backend-Dienstschema aberEXTERNAL_MANAGED
ist, wird das Cookie des Clients nicht berücksichtigt. Der globale externe Application Load Balancer ignoriert das Cookie und erstellt ein neues.
Migrierte Ressourcen rückgängig machen
Wenn Sie eine Ressource nach der Migration von der Infrastruktur des globalen externen Application Load Balancers zur Infrastruktur des klassischen Application Load Balancers zurückverschieben 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öchten, müssen Sie auch die Weiterleitungsregel rückgängig machen. Wenn Sie eine Weiterleitungsregel auf das EXTERNAL
-Schema zurücksetzen, müssen die Backend-Dienste nicht rückgängig gemacht werden.
So machen Sie Änderungen an Ressourcen rückgängig:
- Entfernen Sie alle neuen erweiterten Funktionen zur Traffic-Verwaltung des globalen externen Application Load Balancers, die für die Ressource konfiguriert wurden.
Machen Sie die Weiterleitungsregeln rückgängig.
Ändern Sie das Load Balancing-Schema der Weiterleitungsregeln von
EXTERNAL_MANAGED
inEXTERNAL
.Führen Sie ein Rollback der Back-End-Buckets durch.
- Legen Sie den Migrationsstatus der Back-End-Buckets auf
TEST_ALL_TRAFFIC
fest und warten Sie einige Zeit (ca. sechs Minuten). - Optional: Wenn Sie den Traffic verringern möchten, legen Sie den Migrationsstatus der Backend-Buckets auf
TEST_BY_PERCENTAGE
fest und geben Sie einen Prozentsatz des Traffics an. - Legen Sie den Migrationsstatus der Back-End-Buckets auf
PREPARE
fest. - Stellen Sie die Backend-Buckets in den Zustand vor der Migration zurück.
- Legen Sie den Migrationsstatus der Back-End-Buckets auf
Führen Sie ein Rollback der Back-End-Dienste durch.
- Legen Sie den Migrationsstatus der Back-End-Dienste auf
TEST_ALL_TRAFFIC
fest und warten Sie einige Zeit (ungefähr sechs Minuten). - Optional: Wenn Sie den Traffic verringern möchten, legen Sie den Migrationsstatus der Back-End-Dienste auf
TEST_BY_PERCENTAGE
fest und legen Sie einen Prozentsatz des Traffics fest. - Legen Sie den Migrationsstatus der Back-End-Dienste auf
PREPARE
fest. - Setzen Sie die Backend-Dienste auf den Zustand vor der Migration zurück.
- Legen Sie den Migrationsstatus der Back-End-Dienste 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 prüfen. Rufen Sie dazu Folgendes auf:
Die Logging- und Monitoring-Dashboards 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 ihrem Wert weiter. Wenn der HeaderwertEXTERNAL
ist, wird die Anfrage an die klassische Application Load Balancer-Infrastruktur weitergeleitet. Wenn der WertEXTERNAL_MANAGED
ist, wird die Anfrage über die globale externe Application Load Balancer-Infrastruktur weitergeleitet.Verwenden Sie diesen Header, um eine Anfrage an eine bestimmte Load Balancer-Flotte zu senden.
X-External-Managed-Migration-Selected-Scheme
: Dieser Anfrage- und Antwortheader informiert das Backend und den Client über das Load Balancing-Schema, das für die Weiterleitung der Anfrage verwendet wird. Der Header wird an den Client zurückgegeben und an das Backend des Kunden übergeben.Wenn die Anfrage über die klassische Application Load Balancer-Infrastruktur weitergeleitet wird, ist der Wert
EXTERNAL
. Wenn die Anfrage über die globale externe Application Load Balancer-Infrastruktur weitergeleitet wird, lautet der WertEXTERNAL_MANAGED
.
Nächste Schritte
- Ressourcen vom klassischen Application Load Balancer migrieren
- Migrierte Ressourcen auf den klassischen Application Load Balancer zurückverschieben