Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Questa pagina descrive come configurare ambienti Cloud Composer ad alta resilienza.
Informazioni sulla resilienza agli errori a livello di zona in Cloud Composer
Gli ambienti Cloud Composer ad alta resilienza (ad alta disponibilità) utilizzano meccanismi di ridondanza e failover integrati che riducono la suscettibilità dell'ambiente agli errori a livello di zona e alle interruzioni del single point of failure.
Ad esempio, un'interruzione zonale interrompe le attività Airflow eseguite in una zona specifica. Successivamente, un ambiente a elevata resilienza recupera, riavvia i componenti interessati in una zona diversa e sposta il database in una zona secondaria. Pertanto, le attività Airflow non riuscite possono essere riprogrammate e riavviate da Airflow, preservando al contempo la cronologia delle esecuzioni DAG e altre impostazioni.
Un ambiente a elevata resilienza è multizona e viene eseguito in almeno due zone di una regione selezionata. Cloud Composer distribuisce automaticamente i componenti del tuo ambiente tra le zone.
Puoi utilizzare ambienti Cloud Composer altamente resilienti per processi aziendali critici.
Informazioni sul database ad alta disponibilità del tuo ambiente
Negli ambienti Cloud Composer ad alta disponibilità, il componente Cloud SQL che archivia il database del tuo ambiente viene eseguito in modalità ad alta disponibilità. Un'istanza principale e un'istanza di standby di Cloud SQL sono distribuite tra le zone.
In caso di interruzione, l'istanza Cloud SQL del tuo ambiente esegue il failover automatico del database sull'istanza Cloud SQL in standby. Non devi eseguire ulteriori azioni nel tuo ambiente Cloud Composer. Una volta che la zona principale è di nuovo operativa, l'ambiente torna ad avere due zone (principale e secondaria). In alcuni casi, le zone primaria e secondaria possono essere scambiate. L'istanza Cloud SQL in modalità ad alta disponibilità utilizza lo stesso indirizzo IP dopo un failover.
Informazioni sui componenti Airflow a elevata disponibilità
Un ambiente a elevata resilienza è multizona e viene eseguito in almeno due zone di una regione selezionata. I seguenti componenti vengono eseguiti in zone separate:
Esattamente due scheduler Airflow
Almeno due triggerer (se il numero di triggerer non è impostato su zero)
Almeno due processori DAG
Due server web
Il numero minimo di worker è impostato su due e il cluster del tuo ambiente distribuisce le istanze worker tra le zone. In caso di interruzione del servizio a livello di zona, le istanze di lavoro interessate vengono riprogrammate in una zona diversa.
Per ulteriori informazioni sull'architettura degli ambienti a elevata resilienza, vedi Architettura dell'ambiente a elevata resilienza.
Prima di iniziare
-
In Cloud Composer 3, l'alta resilienza è disponibile sia per gli ambienti con IP privato che con IP pubblico.
Gli ambienti a elevata resilienza eseguono componenti aggiuntivi. Ciò comporta costi maggiori rispetto agli ambienti regolari.
Se vuoi aggiornare un ambiente standard a uno a resilienza elevata, assicurati che soddisfi i seguenti requisiti di configurazione. Se il tuo ambiente non soddisfa questi requisiti, puoi aggiornare i parametri di scalabilità e rendimento.
- Il numero minimo di worker Airflow è due o più.
Il numero di scheduler Airflow è esattamente due.
Almeno due processori DAG.
Se utilizzi operatori differibili nei DAG, allora almeno due attivatori.
Crea un ambiente altamente resiliente
Per creare un ambiente a elevata resilienza, attiva la modalità ad alta resilienza quando crei un ambiente.
Aggiornare un ambiente standard alla modalità ad alta resilienza
Console
Nella console Google Cloud , vai alla pagina Ambienti.
Nell'elenco degli ambienti, fai clic sul nome del tuo ambiente. Viene visualizzata la pagina Dettagli ambiente.
Seleziona la scheda Configurazione ambiente.
Nella sezione Modalità di resilienza, fai clic su Modifica.
Seleziona Resilienza elevata e fai clic su Salva.
gcloud
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--enable-high-resilience
Sostituisci quanto segue:
ENVIRONMENT_NAME
: il nome del tuo ambiente.LOCATION
: la regione in cui si trova l'ambiente.
API
Crea una richiesta API
environments.patch
.In questa richiesta:
Nel parametro
updateMask
, specifica la mascheraconfig.resilienceMode
.Nel corpo della richiesta, specifica
HIGH_RESILIENCE
per passare alla modalità ad alta resilienza.
Esempio:
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.resilienceMode
{
"config": {
"resilience_mode": { "HIGH_RESILIENCE" }
}
}
Terraform
Il campo resilience_mode
nel blocco config
specifica la modalità di resilienza. Per utilizzare la modalità ad alta resilienza, imposta questo valore su HIGH_RESILIENCE
.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
resilience_mode = "HIGH_RESILIENCE"
}
}
Sostituisci quanto segue:
ENVIRONMENT_NAME
: il nome del tuo ambiente.LOCATION
: la regione in cui si trova l'ambiente.
Esempio:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
resilience_mode = "HIGH_RESILIENCE"
}
Modificare un ambiente a resilienza elevata in modalità di resilienza standard
Puoi impostare l'ambiente sulla modalità di resilienza standard in qualsiasi momento. Questa operazione:
- Riduce a uno il numero di server web nel tuo ambiente.
- Disattiva la modalità ad alta disponibilità del database Airflow del tuo ambiente.
Non modifica le impostazioni per il numero minimo di worker, scheduler o trigger di Airflow.
Console
Nella console Google Cloud , vai alla pagina Ambienti.
Nell'elenco degli ambienti, fai clic sul nome del tuo ambiente. Viene visualizzata la pagina Dettagli ambiente.
Seleziona la scheda Configurazione ambiente.
Nella sezione Modalità di resilienza, fai clic su Modifica.
Seleziona Resilienza standard (impostazione predefinita) e fai clic su Salva.
gcloud
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--disable-high-resilience
Sostituisci quanto segue:
ENVIRONMENT_NAME
: il nome del tuo ambiente Cloud ComposerLOCATION
: la regione in cui si trova l'ambiente.
API
Crea una richiesta API
environments.patch
.In questa richiesta:
Nel parametro
updateMask
, specifica la mascheraconfig.resilienceMode
.Nel corpo della richiesta, specifica
RESILIENCE_MODE_UNSPECIFIED
per passare alla modalità di resilienza standard.
Esempio:
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.resilienceMode
{
"config": {
"resilience_mode": { "RESILIENCE_MODE_UNSPECIFIED" }
}
}
Terraform
Il campo resilience_mode
nel blocco config
specifica la modalità di resilienza. Per utilizzare la modalità di resilienza standard, imposta questo valore su STANDARD_RESILIENCE
.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
resilience_mode = "STANDARD_RESILIENCE"
}
}
Sostituisci quanto segue:
ENVIRONMENT_NAME
: il nome del tuo ambiente.LOCATION
: la regione in cui si trova l'ambiente.
Esempio:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
resilience_mode = "STANDARD_RESILIENCE"
}
Controlla se l'ambiente viene eseguito in modalità ad alta resilienza
Console
Nella console Google Cloud , vai alla pagina Ambienti.
Nell'elenco degli ambienti, fai clic sul nome del tuo ambiente. Viene visualizzata la pagina Dettagli ambiente.
Seleziona la scheda Configurazione ambiente.
Nella sezione Modalità di resilienza, visualizza la modalità di resilienza del tuo ambiente.
gcloud
Per verificare se la modalità di resilienza elevata è abilitata nel tuo ambiente, esegui il
seguente comando Google Cloud CLI. Il valore True
indica che la modalità
ad alta resilienza è attivata nel tuo ambiente.
gcloud composer environments describe ENVIRONMENT_NAME \
--location LOCATION \
--format="value(config.resilienceMode)"
Sostituisci quanto segue:
ENVIRONMENT_NAME
: il nome del tuo ambiente Cloud ComposerLOCATION
: la regione in cui si trova l'ambiente.
Passaggi successivi
- Esegui test di failover per il tuo ambiente a elevata resilienza.
- Ripristino di emergenza con snapshot dell'ambiente