Questa pagina fornisce una panoramica delle differenze tra il bilanciatore del carico delle applicazioni esterno globale e il bilanciatore del carico delle applicazioni classico, nonché una panoramica dettagliata di come eseguire la migrazione delle risorse del bilanciatore del carico delle applicazioni classico esistenti al bilanciatore del carico delle applicazioni esterno globale.
Per sfruttare le funzionalità di gestione avanzata del traffico del bilanciatore del carico delle applicazioni esterno globale, ti consigliamo di eseguire la migrazione delle risorse del bilanciatore del carico delle applicazioni classico all'infrastruttura del bilanciatore del carico delle applicazioni esterno globale.
Confrontare i bilanciatori del carico delle applicazioni classici e i bilanciatori del carico delle applicazioni esterni globali
Prima di eseguire la migrazione delle risorse, comprendi le differenze tra i bilanciatori del carico delle applicazioni classici e i bilanciatori del carico delle applicazioni esterni globali.
Differenze nelle funzionalità
Le seguenti funzionalità non sono supportate con il bilanciatore del carico delle applicazioni esterno globale. Sono disponibili solo con il bilanciatore del carico delle applicazioni classico:
- Livello di rete standard
-
Per eseguire il deployment di bilanciatori del carico delle applicazioni esterni globali per i cluster GKE, utilizza il controller GKE Gateway. Per le istruzioni di configurazione, consulta Implementare i gateway.
Differenze nel piano dati
La seguente tabella evidenzia le differenze nel piano dati tra il bilanciatore del carico delle applicazioni classico e il bilanciatore del carico delle applicazioni esterno globale. Queste differenze influiscono sul modo in cui gli bilanciatori del carico rispondono ad alcuni eventi comuni.
Evento | Risposta del bilanciatore del carico delle applicazioni classico | Risposta del bilanciatore del carico delle applicazioni esterno globale |
Stato/codici di errore | ||
Tutti i backend sono in stato non integro | Restituisce HTTP 502 | Restituisce HTTP 503 |
La richiesta utilizza un cifrario SSL vietato | Restituisce HTTP 502 | Restituisce HTTP 503 |
Reimpostazione anticipata della connessione upstream dal backend | Restituisce HTTP 502 | Restituisce HTTP 503 |
Aggiornamento della connessione non riuscito (ad esempio durante l'upgrade a Websockets) | Restituisce HTTP 400 | Restituisce HTTP 403 |
L'intestazione è troppo grande | Restituisce HTTP 413 | Restituisce HTTP 431 |
Quote e limiti | ||
Configurazione della mappa URL | Esistono differenze significative nei limiti di configurazione della mappa URL tra i due bilanciatori del carico. Per maggiori dettagli, consulta la documentazione relativa alle quote: mappe URL. | |
Gestione delle intestazioni | ||
La richiesta utilizza un metodo HTTP personalizzato senza corpo | Aggiunge l'intestazione Transfer Encoding: Chunked alla richiesta inviata
al backend |
Aggiunge l'intestazione Content-Length: 0 alla richiesta inviata al backend |
Formato dell'intestazione X-Forwarded-For aggiunta alle richieste inviate al backend |
Utilizza il delimitatore ", " tra gli IP |
Utilizza il delimitatore ", " tra gli IP (nessuno spazio dopo la virgola) |
Mantenimento delle maiuscole delle intestazioni | Le lettere maiuscole dell'intestazione vengono conservate | Tutte le chiavi dell'intestazione vengono trasformate in minuscole |
Intestazioni ripetute con lo stesso nome | Consentito | Le intestazioni ripetute possono essere combinate in un'unica intestazione, con i valori aggiunti in ordine e separati da virgole, come consentito dal documento RFC 7230. |
(Solo HTTP/1.1) Nome intestazione non valido (ad es. caratteri non supportati nell'intestazione) | Consentito (per HTTP/1.1) | Restituisce HTTP 502 (per HTTP/1.1) |
(Solo HTTP/1.1) Intestazione Content-Length ripetuta (ma uguale) nella richiesta |
Consentito (per HTTP/1.1) | Restituisce HTTP 502 (per HTTP/1.1) |
(Solo HTTP/1.1) Più host nell'intestazione | Quando vengono aggiunti due o più host e il primo è valido, l'intestazione viene accettata | Quando vengono aggiunti due o più host e uno o più non sono validi, il bilanciatore del carico restituisce HTTP 502 |
(solo HTTP/1.1) Connection: Keep-Alive
intestazione |
Aggiunge Keep-Alive header alle richieste inviate al backend per impostazione predefinita |
Non aggiunge questa intestazione per impostazione predefinita |
Gestione delle richieste | ||
Barre oblique inverse nella richiesta | L'URL non è stato modificato | Si converte in barra |
Unire le barre duplicate nella richiesta | Lascia gli slash non uniti | Unisce le barre oblique |
"#" nel percorso della richiesta | Consentito | Restituisce HTTP 400 |
(Solo HTTP/1.1) Caratteri non consentiti nel percorso della richiesta (ad esempio, "\\x7f\\x7f") | Consentito (per HTTP/1.1) | Restituisce HTTP 502 (per HTTP/1.1) |
Distribuzione del traffico (configurazione della mappa di URL) | ||
La richiesta del client include un numero di porta | Il numero di porta viene ignorato anche se hai configurato host con porte
nella mappa URL. Viene considerato solo il nome host.
Ad esempio, le richieste per example.com:5000 vengono associate al servizio di backend per example.com .
|
Vengono presi in considerazione sia il nome host sia il numero di porta.
Ad esempio, le richieste per example.com:5000 vengono associate al servizio di backend per example.com:5000 . Se non viene trovata una corrispondenza, viene utilizzato il servizio di backend predefinito.
|
Per scoprire di più sulle differenze e sulle funzionalità supportate, consulta Confronto delle funzionalità dei bilanciatori del carico e Panoramica di Application Load Balancer.
Esegui la migrazione da un bilanciatore del carico delle applicazioni classico a uno esterno globale
Per eseguire la migrazione al bilanciatore del carico delle applicazioni esterno globale, modifica lo schema di bilanciamento del carico delle risorse di bilanciamento del carico, in particolare i servizi di backend e le regole di inoltro, da EXTERNAL
a EXTERNAL_MANAGED
. Per farlo,
esegui una serie di passaggi di migrazione in cui puoi testare parti
del traffico di rete con il nuovo schema di bilanciamento del carico
prima di completare effettivamente la migrazione. Durante la migrazione delle risorse, puoi controllare la percentuale di richieste inviate all'infrastruttura del bilanciatore del carico delle applicazioni classico o all'infrastruttura del bilanciatore del carico delle applicazioni esterno globale.
Il seguente diagramma mostra gli schemi di bilanciamento del carico delle risorse di bilanciamento del carico prima e dopo la migrazione.
Nel diagramma precedente, tieni presente quanto segue:
- Prima della migrazione delle risorse, tutte le richieste utilizzano l'infrastruttura classica del bilanciatore del carico delle applicazioni.
- Durante la migrazione delle risorse, alcune richieste vengono inviate all'infrastruttura del bilanciatore del carico delle applicazioni esterno globale e le restanti all'infrastruttura del bilanciatore del carico delle applicazioni classico.
- Dopo la migrazione delle risorse, tutte le richieste utilizzano l'infrastruttura del bilanciatore del carico delle applicazioni esterno globale.
Per garantire una transizione senza problemi, esegui la migrazione delle seguenti risorse del bilanciatore del carico delle applicazioni classico nell'ordine specificato:
Esegui la migrazione di tutti i servizi di backend collegati alle regole di inoltro del bilanciatore del carico.
Esegui la migrazione di tutti i bucket di backend collegati alle regole di forwarding del bilanciatore del carico. Questo viene fatto a livello di regola di forwarding perché i bucket di backend non hanno schemi di bilanciamento del carico.
Esegui la migrazione delle regole di inoltro del bilanciatore del carico.
Puoi eseguire la migrazione di una regola di forwarding solo dopo che è già stata eseguita la migrazione di tutti i servizi di backend e dei bucket di backend associati alla regola di forwarding.
Stati di migrazione
Esegui la migrazione delle risorse impostandole su stati diversi prima di modificare il loro schema di bilanciamento del carico su EXTERNAL_MANAGED
.
PREPARE
: imposta una risorsa su questo stato per prepararla alla migrazione.TEST_BY_PERCENTAGE
: per testare una risorsa preparata, impostala su questo stato per inviare una percentuale del traffico di rete. Questa fase è facoltativa.TEST_ALL_TRAFFIC
: imposta una risorsa su questo stato per inviare tutto il traffico di rete alla risorsa tramite l'infrastruttura del bilanciatore del carico delle applicazioni esterno globale anziché l'infrastruttura del bilanciatore del carico delle applicazioni classico.
Processo di migrazione
Per evitare tempi di riposo, esegui la migrazione delle risorse in un ordine specifico
dall'infrastruttura del bilanciatore del carico delle applicazioni classico all'infrastruttura del bilanciatore del carico delle applicazioni esterno globale, quindi modifica lo schema di bilanciamento del carico da EXTERNAL
a
EXTERNAL_MANAGED
per completare la migrazione.
Esegui la migrazione dei servizi di backend del bilanciatore del carico.
Ripeti i seguenti passaggi per ogni servizio di backend.
Prepara il servizio di backend per la migrazione.
Prima che qualsiasi traffico possa essere inviato tramite l'infrastruttura del bilanciatore del carico delle applicazioni esterno globale, imposta lo stato del servizio di backend su
PREPARE
. In questo modo, il servizio di backend viene preparato per gestire il traffico di rete dell'infrastruttura del bilanciatore del carico delle applicazioni esterno globale. Un servizio di backend richiede un po' di tempo (circa sei minuti) per essere pronto a inviare traffico tramite l'infrastruttura del bilanciatore del carico delle applicazioni esterno globale.(Facoltativo) Testa il servizio di backend preparato.
Dopo che il servizio di backend è nello stato
PREPARE
, impostalo suTEST_BY_PERCENTAGE
e imposta una percentuale del traffico di rete del bilanciatore del carico delle applicazioni classico sull'infrastruttura del bilanciatore del carico delle applicazioni esterno globale.Anche se questa fase è facoltativa, ti consigliamo di testare il traffico prima di eseguire la migrazione di un servizio di backend. Inizia con un valore percentuale ridotto e monitora i log delle risorse. Se il servizio di backend si comporta come previsto, aumenta gradualmente la percentuale fino al 100%.
Nello stato
TEST_BY_PERCENTAGE
, non puoi utilizzare le funzionalità aggiuntive dell'infrastruttura del bilanciatore del carico delle applicazioni esterno globale.Invia tutto il traffico di rete del bilanciatore del carico delle applicazioni classico al servizio di backend preparato.
Una volta completato il test del servizio di backend, imposta il relativo stato su
TEST_ALL_TRAFFIC
e invia tutto il traffico di rete dell'Application Load Balancer classico al servizio di backend preparato. Un servizio di backend richiede un po' di tempo (circa sei minuti) per essere pronto a gestire il traffico di rete.Nello stato
TEST_ALL_TRAFFIC
, non puoi utilizzare le funzionalità aggiuntive dell'infrastruttura del bilanciatore del carico delle applicazioni esterno globale.Modifica lo schema di bilanciamento del carico del servizio di backend sottoposto a migrazione in
EXTERNAL_MANAGED
.Dopo aver testato il servizio di backend preparato sull'infrastruttura del bilanciatore del carico delle applicazioni esterno globale, modifica il relativo schema di bilanciamento del carico impostandolo su
EXTERNAL_MANAGED
. La migrazione completa di un servizio di backend richiede un po' di tempo (circa sei minuti). Dopo che lo schema di bilanciamento del carico del servizio di backend diventaEXTERNAL_MANAGED
, puoi utilizzare le funzionalità avanzate dell'infrastruttura del bilanciatore del carico delle applicazioni esterno globale.
Esegui la migrazione dei bucket di backend del bilanciatore del carico. Questo viene eseguito a livello di regola di inoltro perché i bucket di backend non hanno schemi di bilanciamento del carico.
Ripeti i seguenti passaggi per ogni bucket.
Prepara il bucket di backend per la migrazione.
Prima che qualsiasi traffico possa essere inviato tramite l'infrastruttura del bilanciatore del carico delle applicazioni esterno globale, imposta lo stato del bucket di backend su
PREPARE
e aspetta un po' di tempo (circa sei minuti).(Facoltativo) Testa il servizio di backend preparato.
Dopo che il bucket di backend è nello stato
PREPARE
, impostalo suTEST_BY_PERCENTAGE
e imposta una percentuale del traffico di rete del bilanciatore del carico delle applicazioni classico sull'infrastruttura del bilanciatore del carico delle applicazioni esterno globale.Invia tutto il traffico di rete del bilanciatore del carico delle applicazioni classico al bucket di backend preparato.
Imposta lo stato del bucket di backend su
TEST_ALL_TRAFFIC
e inviavi tutto il traffico di rete dell'Application Load Balancer classico. Un bucket di backend richiede un po' di tempo (circa sei minuti) per essere pronto a gestire il traffico di rete.Nello stato
TEST_ALL_TRAFFIC
, non puoi utilizzare le funzionalità aggiuntive dell'infrastruttura del bilanciatore del carico delle applicazioni esterno globale.
Esegui la migrazione delle regole di inoltro.
Per ogni regola di forwarding, imposta lo schema di bilanciamento del carico della regola di inoltro su
EXTERNAL_MANAGED
e attendi un po' di tempo (circa sei minuti). Dopo che lo schema di bilanciamento del carico della regola di forwarding diventaEXTERNAL_MANAGED
, puoi utilizzare le funzionalità avanzate dell'infrastruttura del bilanciatore del carico delle applicazioni esterno globale.
Per una procedura dettagliata, consulta Eseguire la migrazione delle risorse dall'Application Load Balancer classico.
Il seguente diagramma mostra le risorse Application Load Balancer classiche nei diversi stati della migrazione.
Dopo aver eseguito la migrazione di una risorsa, se vuoi ripristinare il bilanciamento del carico classico, modifica lo schema di bilanciamento del carico entro 90 giorni dalla migrazione. Non puoi eseguire il rollback di una risorsa dopo il periodo di 90 giorni.
Utilizzo dell'affinità sessione
Tieni presenti i seguenti accorgimenti durante la migrazione dei servizi di backend del bilanciatore del carico delle applicazioni classico con affinità sessione:
L'impostazione di un valore per
TEST_BY_PERCENTAGE
reindirizza parte del traffico che ha come target il bilanciatore del carico delle applicazioni classico al bilanciatore del carico delle applicazioni esterno globale. In questo modo, viene interrotta l'affinità dell'IP client. La modifica della percentuale di migrazione (ad esempio, l'aumento del 10%) interrompe l'affinità sessione per la stessa percentuale di indirizzi IP dei client (10% in questo esempio), finché l'affinità non viene ristabilita nella richiesta successiva.L'impostazione di un valore per
TEST_BY_PERCENTAGE
reindirizza la percentuale di trafico senza un cookie di sessione al bilanciatore del carico delle applicazioni esterno globale. Inoltre, reindirizza tutto il traffico con un cookie di sessione al parco di bilanciatori del carico che ha generato il cookie.Se imposti un valore per
TEST_BY_PERCENTAGE
pari al 0%, se non lo imposti o se imposti il servizio di backend sullo statoPREPARE
, tutti i cookie esistenti indirizzati al bilanciatore del carico delle applicazioni esterno globale vengono invalidati.La modifica dello schema di bilanciamento del carico del servizio di backend su
EXTERNAL_MANAGED
invalida tutti i cookie generati dal parco risorse di bilanciatori del carico delle applicazioni classici. In questo modo, puoi eseguire il rollback del traffico se si verifica un problema con l'applicazione che utilizza il bilanciatore del carico delle applicazioni esterno globale. Ad esempio, se un client presenta un cookie del fleet dell'Application Load Balancer classico, ma lo schema del servizio di backend èEXTERNAL_MANAGED
, il cookie del client non viene rispettato. Il bilanciatore del carico delle applicazioni esterno globale ignora il cookie e ne crea uno nuovo.
Esegui il rollback delle risorse migrate
Dopo aver eseguito la migrazione di una risorsa, se vuoi ripristinarla dall'infrastruttura bilanciatore del carico delle applicazioni esterno globale all'infrastruttura bilanciatore del carico delle applicazioni classica, puoi farlo entro 90 giorni dalla modifica dello schema di bilanciamento del carico.
Il rollback di un servizio di backend allo schema EXTERNAL
richiede il rollback della regola di forwarding. Il rollback di una regola di forwarding allo schema EXTERNAL
non richiede il rollback dei servizi di backend.
Per eseguire il rollback delle risorse:
- Rimuovi eventuali nuove funzionalità avanzate di gestione del traffico del bilanciatore del carico delle applicazioni esterno globale configurate sulla risorsa.
Ripristina le regole di inoltro.
Modifica lo schema di bilanciamento del carico delle regole di inoltro da
EXTERNAL_MANAGED
aEXTERNAL
.Esegui il rollback dei bucket di backend.
- Imposta lo stato di migrazione dei bucket di backend su
TEST_ALL_TRAFFIC
e attendi un po' di tempo (circa sei minuti). - (Facoltativo) Per ridurre il traffico, imposta lo stato di migrazione dei bucket di backend su
TEST_BY_PERCENTAGE
e imposta una percentuale del traffico. - Imposta lo stato di migrazione dei bucket di backend su
PREPARE
. - Ripristina i bucket di backend agli stati precedenti alla migrazione.
- Imposta lo stato di migrazione dei bucket di backend su
Esegui il rollback dei servizi di backend.
- Imposta lo stato di migrazione dei servizi di backend su
TEST_ALL_TRAFFIC
e aspetta un po' di tempo (circa sei minuti). - (Facoltativo) Per ridurre il traffico, imposta lo stato di migrazione dei servizi di backend su
TEST_BY_PERCENTAGE
e imposta una percentuale del traffico. - Imposta lo stato di migrazione dei servizi di backend su
PREPARE
. - Ripristina i servizi di backend agli stati precedenti alla migrazione.
- Imposta lo stato di migrazione dei servizi di backend su
Per una procedura dettagliata passo passo, consulta Eseguire il rollback delle risorse migrate al bilanciatore del carico delle applicazioni classico.
Monitorare il processo di migrazione
Durante la migrazione delle risorse, puoi controllare i relativi schemi di bilanciamento del carico visualizzando quanto segue:
Le dashboard di logging e monitoraggio del bilanciatore del carico delle applicazioni esterno globale. Per ulteriori informazioni, consulta Logging e monitoraggio del bilanciatore del carico delle applicazioni esterno globale.
I valori delle seguenti intestazioni di richiesta e risposta HTTP:
X-External-Managed-Migration-Scheme-Override
: questo intestazione della richiesta indirizza la richiesta in base al relativo valore. Se il valore dell'intestazione èEXTERNAL
, la richiesta viene indirizzata all'infrastruttura del bilanciatore del carico delle applicazioni classico. Se il valore èEXTERNAL_MANAGED
, la richiesta viene instradata tramite l'infrastruttura del bilanciatore del carico delle applicazioni esterno globale.Utilizza questa intestazione per indirizzare una richiesta a un determinato parco di bilanciatori del carico.
X-External-Managed-Migration-Selected-Scheme
: questa intestazione della richiesta e della risposta informa il backend e il client dello schema di bilanciamento del carico utilizzato per instradare la richiesta. L'intestazione viene restituita al client e passata al backend del cliente.Se la richiesta viene instradata tramite l'infrastruttura del bilanciatore del carico delle applicazioni classico, il relativo valore è
EXTERNAL
. Se la richiesta viene instradata tramite l'infrastruttura bilanciatore del carico delle applicazioni esterno globale, il valore èEXTERNAL_MANAGED
.
Passaggi successivi
- Eseguire la migrazione delle risorse dal bilanciatore del carico delle applicazioni classico
- Eseguire il rollback delle risorse migrate al bilanciatore del carico delle applicazioni classico