Airflow gestito (terza generazione) | Airflow gestito (seconda generazione) | Airflow gestito (prima generazione legacy)
Questa pagina descrive come configurare ambienti Airflow gestiti ad alta resilienza (alta disponibilità).
Informazioni sugli ambienti ad alta resilienza (alta disponibilità)
Un ambiente ad alta resilienza è multizona e viene eseguito in almeno due zone di una regione selezionata. Airflow gestito distribuisce automaticamente i componenti del tuo ambiente tra le zone.
Ad esempio, un'interruzione a livello di zona interrompe le attività Airflow eseguite in una zona specifica. Successivamente, un ambiente ad alta resilienza recupera, riavvia i componenti interessati in un'altra zona e passa il database a una zona secondaria. In questo modo, le attività Airflow non riuscite possono essere riprogrammate e riavviate da Airflow, preservando al contempo la cronologia delle esecuzioni DAG e altre impostazioni.
Informazioni sul database ad alta disponibilità dell'ambiente
Negli ambienti Airflow gestiti ad alta disponibilità, il componente Cloud SQL che archivia il database dell'ambiente viene eseguito in modalità ad alta disponibilità. Un'istanza principale e un'istanza in standby di Cloud SQL vengono distribuite tra le zone.
In caso di interruzione, l'istanza Cloud SQL dell'ambiente esegue il failover automatico del database all'istanza Cloud SQL in standby. Non è necessario eseguire altre azioni nell'ambiente Airflow gestito. Una volta che la zona principale è di nuovo operativa, l'ambiente torna ad avere due zone (principale e secondaria). In alcuni casi, le zone principali e secondarie possono essere scambiate. L'istanza Cloud SQL in modalità ad alta disponibilità utilizza lo stesso indirizzo IP dopo un failover.
Informazioni sui componenti Airflow ad alta disponibilità
Un ambiente ad alta 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 dell'ambiente distribuisce le istanze worker tra le zone. In caso di interruzione a livello di zona, le istanze worker interessate vengono riprogrammate in un'altra zona.
Per saperne di più sull'architettura degli ambienti ad alta resilienza, consulta Architettura dell'ambiente ad alta resilienza.
Prima di iniziare
-
In Airflow gestito (terza generazione), l'alta resilienza è disponibile sia per gli ambienti IP privati sia per quelli IP pubblici.
In Airflow gestito (terza generazione), gli ambienti ad alta resilienza sono disponibili a partire dalle build Airflow composer-3-airflow-2.10.2-build.13 e composer-3-airflow-2.9.3-build.20.
Gli ambienti ad alta resilienza eseguono componenti dell'ambiente aggiuntivi. Ciò comporta un aumento dei costi rispetto agli ambienti normali.
Se vuoi aggiornare un ambiente standard a uno ad alta resilienza, assicurati che soddisfi i seguenti requisiti di configurazione. Se l'ambiente non soddisfa questi requisiti, puoi aggiornarne i parametri di scalabilità e prestazioni.
- Il numero minimo di worker Airflow è pari o superiore a due.
Il numero di scheduler Airflow è esattamente due.
Almeno due processori DAG.
Se utilizzi operatori decriptabili nei DAG, almeno due triggerer.
Creare un ambiente ad alta resilienza
Per creare un ambiente ad alta resilienza, attiva la modalità ad alta resilienza quando crei un ambiente.
Aggiornare un ambiente standard alla modalità ad alta resilienza
Console
Nella Google Cloud console, vai alla pagina Ambienti.
Nell'elenco degli ambienti, fai clic sul nome dell'ambiente. Si apre la pagina Dettagli ambiente.
Seleziona la scheda Configurazione ambiente.
Nella sezione Modalità resilienza, fai clic su Modifica.
Seleziona Alta resilienza e fai clic su Salva.
gcloud
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--enable-high-resilience
Sostituisci quanto segue:
ENVIRONMENT_NAME: il nome dell'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_RESILIENCEper 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 dell'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 ad alta resilienza in modalità di resilienza standard
Puoi modificare la modalità di resilienza dell'ambiente in standard in qualsiasi momento. Questa operazione:
- Riduce a uno il numero di server web nell'ambiente.
- Disattiva la modalità ad alta disponibilità del database Airflow dell'ambiente.
Non modifica le impostazioni per il numero minimo di worker, scheduler o triggerer Airflow.
Console
Nella Google Cloud console, vai alla pagina Ambienti.
Nell'elenco degli ambienti, fai clic sul nome dell'ambiente. Si apre la pagina Dettagli ambiente.
Seleziona la scheda Configurazione ambiente.
Nella sezione Modalità 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 dell'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_UNSPECIFIEDper 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 dell'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"
}
Verificare se l'ambiente è in esecuzione in modalità ad alta resilienza
Console
Nella Google Cloud console, vai alla pagina Ambienti.
Nell'elenco degli ambienti, fai clic sul nome dell'ambiente. Si apre la pagina Dettagli ambiente.
Seleziona la scheda Configurazione ambiente.
Nella sezione Modalità resilienza, visualizza la modalità di resilienza dell'ambiente.
gcloud
Per verificare se la modalità ad alta resilienza è attivata nell'ambiente, esegui il seguente comando Google Cloud CLI. Il valore True indica che la modalità ad alta resilienza è attivata nell'ambiente.
gcloud composer environments describe ENVIRONMENT_NAME \
--location LOCATION \
--format="value(config.resilienceMode)"
Sostituisci quanto segue:
ENVIRONMENT_NAME: il nome dell'ambiente Cloud ComposerLOCATION: la regione in cui si trova l'ambiente.
Passaggi successivi
- Esegui test di failover per l'ambiente ad alta resilienza.
- Ripristino di emergenza con snapshot dell'ambiente