Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Questa pagina descrive come configurare ambienti Cloud Composer altamente resilienti.
Informazioni sulla resilienza per gli errori a livello di zona in Cloud Composer
Gli ambienti Cloud Composer a elevata resilienza utilizzano meccanismi di ridondanza e failover integrati che riducono la suscettibilità dell'ambiente a errori di zona e interruzioni del singolo punto di errore.
Ad esempio, un'interruzione a livello di zona interrompe le attività Airflow eseguite in una zona specifica. In seguito, un ambiente altamente resiliente recupera, riavvia i componenti interessati in una zona diversa e passa il database a una zona secondaria. Pertanto, le attività Airflow non riuscite possono essere riprogrammate e riavviate da Airflow, conservando allo stesso tempo la cronologia delle esecuzioni dei DAG e altre impostazioni.
Un ambiente altamente resiliente viene eseguito in almeno due zone di una regione selezionata. Cloud Composer distribuisce automaticamente i componenti dell'ambiente tra le zone.
Puoi usare ambienti Cloud Composer altamente resilienti per i processi aziendali critici.
Informazioni sul database ad alta disponibilità del tuo ambiente
Negli ambienti Cloud Composer a disponibilità elevata, l'istanza Cloud SQL che archivia il database del tuo ambiente viene eseguita in modalità ad alta disponibilità. Un'istanza Cloud SQL configurata per l'alta disponibilità è chiamata anche istanza regionale e si trova in una zona principale e secondaria all'interno della regione configurata. All'interno di un'istanza a livello di regione, la configurazione include un'istanza principale e un'istanza in standby.
In caso di interruzione, l'istanza Cloud SQL del tuo ambiente esegue il failover automatico del database all'istanza Cloud SQL in standby. Non è necessario eseguire azioni aggiuntive nel tuo ambiente Cloud Composer. Una volta che la zona principale diventa di nuovo operativa, l'ambiente torna ad avere due zone (principale e secondaria). In alcuni casi, le zone primarie 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à
Gli ambienti Cloud Composer a disponibilità elevata eseguono componenti Airflow distribuiti tra zone.
Il tuo ambiente esegue sempre esattamente due scheduler di Airflow, due server web e almeno due (ma non più di dieci) triggerer se sono abilitati. Queste coppie di componenti vengono eseguite in zone separate. 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 a livello di zona, le istanze worker interessate vengono ripianificate in una zona diversa.
Per ulteriori informazioni sull'architettura degli ambienti altamente resilienti, consulta Architettura di ambienti altamente resilienti.
Prima di iniziare
Gli ambienti altamente resilienti sono disponibili solo in ambienti IP privati.
Gli ambienti altamente resilienti sono offerti a un costo incrementale rispetto agli ambienti normali.
Gli ambienti a elevata resilienza sono disponibili in Cloud Composer 2.2.0 e versioni successive.
Se vuoi aggiornare un ambiente standard per passare a uno altamente resiliente, assicurati che soddisfi i seguenti requisiti di configurazione. Se il tuo ambiente non soddisfa questi requisiti, puoi aggiornare i relativi parametri di scalabilità e prestazioni.
- Il numero minimo di worker di Airflow è 2 o più.
- Il numero degli scheduler Airflow è esattamente 2.
- Se utilizzi operatori reimpostabili nei DAG, quindi devono avere almeno 2 triggerer.
Crea un ambiente altamente resiliente
Per creare un ambiente altamente resiliente, attiva la modalità ad alta resilienza quando crei un ambiente.
Aggiorna 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 dell'ambiente. Si apre la pagina Dettagli ambiente.
Seleziona la scheda Configurazione dell'ambiente.
Nella sezione Modalità di 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
Creare 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 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"
}
Cambiare un ambiente altamente resiliente alla modalità di resilienza standard
Puoi passare alla modalità di resilienza standard del tuo ambiente in qualsiasi momento. Questa operazione:
- Riduce a 1 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 triggerer di Airflow.
Console
Nella console Google Cloud, vai alla pagina Ambienti.
Nell'elenco degli ambienti, fai clic sul nome dell'ambiente. Si apre la pagina Dettagli ambiente.
Seleziona la scheda Configurazione dell'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
Creare 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 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"
}
Controlla se il tuo ambiente è in modalità ad alta resilienza
Console
Nella console Google Cloud, vai alla pagina Ambienti.
Nell'elenco degli ambienti, fai clic sul nome dell'ambiente. Si apre la pagina Dettagli ambiente.
Seleziona la scheda Configurazione dell'ambiente.
Nella sezione Modalità di resilienza, visualizza la modalità di resilienza del tuo ambiente.
gcloud
Per verificare se nel tuo ambiente è abilitata la modalità ad alta resilienza, esegui questo comando Google Cloud CLI. Il valore True
indica che nel tuo ambiente è abilitata la modalità ad alta resilienza.
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 ad alta resilienza.
- Ripristino di emergenza con snapshot dell'ambiente