Configura ambienti a elevata resilienza

Managed Airflow (terza generazione) | Managed Airflow (seconda generazione) | Managed Airflow (prima generazione legacy)

Questa pagina descrive come configurare ambienti Managed Airflow a elevata resilienza (alta disponibilità).

Informazioni sugli ambienti a elevata resilienza (alta disponibilità)

Un ambiente a elevata resilienza è multizona e viene eseguito in almeno due zone di una regione selezionata. Managed Airflow 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 a elevata 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, mantenendo al contempo la cronologia delle esecuzioni DAG e altre impostazioni.

Informazioni sul database a elevata disponibilità dell'ambiente

Negli ambienti Managed Airflow a elevata affidabilità, il componente Cloud SQL che archivia il database dell'ambiente viene eseguito in modalità alta affidabilità. 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 devi 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 affidabilità 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:

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 a elevata resilienza, consulta Architettura dell'ambiente a elevata resilienza.

Prima di iniziare

  • In Managed Airflow (seconda generazione), l'elevata resilienza è disponibile solo negli ambienti IP privati.

  • Gli ambienti a elevata resilienza vengono offerti a un costo incrementale rispetto agli ambienti normali.

  • Gli ambienti a elevata resilienza sono disponibili in Managed Airflow versione 2.2.0 e successive.

  • Se vuoi aggiornare un ambiente standard a uno a elevata 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.

    • Se utilizzi operatori decriptabili nei DAG, almeno due triggerer.

Creare un ambiente a elevata resilienza

Per creare un ambiente a elevata resilienza, attiva la modalità a elevata resilienza quando crei un ambiente.

Aggiornare un ambiente standard alla modalità a elevata resilienza

Console

  1. Nella Google Cloud console, vai alla pagina Ambienti.

    Vai ad Ambienti

  2. Nell'elenco degli ambienti, fai clic sul nome dell'ambiente. Si apre la pagina Dettagli ambiente.

  3. Seleziona la scheda Configurazione ambiente.

  4. Nella sezione Modalità resilienza, fai clic su Modifica.

  5. Seleziona Elevata 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

  1. Crea una richiesta API environments.patch.

  2. In questa richiesta:

    1. Nel parametro updateMask, specifica la maschera config.resilienceMode.

    2. Nel corpo della richiesta, specifica HIGH_RESILIENCE per passare alla modalità a elevata 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à a elevata 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 a elevata resilienza in modalità di resilienza standard

Puoi modificare la modalità di resilienza dell'ambiente in standard in qualsiasi momento. Questa operazione:

  • Riduce il numero di server web nell'ambiente a uno.
  • Disattiva la modalità ad alta affidabilità del database Airflow dell'ambiente.
  • Non modifica le impostazioni per il numero minimo di worker, scheduler o triggerer Airflow.

Console

  1. Nella Google Cloud console, vai alla pagina Ambienti.

    Vai ad Ambienti

  2. Nell'elenco degli ambienti, fai clic sul nome dell'ambiente. Si apre la pagina Dettagli ambiente.

  3. Seleziona la scheda Configurazione ambiente.

  4. Nella sezione Modalità resilienza, fai clic su Modifica.

  5. 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 Composer
  • LOCATION: la regione in cui si trova l'ambiente.

API

  1. Crea una richiesta API environments.patch.

  2. In questa richiesta:

    1. Nel parametro updateMask, specifica la maschera config.resilienceMode.

    2. 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"

}

Verificare se l'ambiente è in esecuzione in modalità a elevata resilienza

Console

  1. Nella Google Cloud console, vai alla pagina Ambienti.

    Vai ad Ambienti

  2. Nell'elenco degli ambienti, fai clic sul nome dell'ambiente. Si apre la pagina Dettagli ambiente.

  3. Seleziona la scheda Configurazione ambiente.

  4. Nella sezione Modalità resilienza, visualizza la modalità di resilienza dell'ambiente.

gcloud

Per verificare se la modalità a elevata resilienza è abilitata nell'ambiente, esegui il seguente comando Google Cloud CLI. Il valore True indica che la modalità a elevata resilienza è abilitata nell'ambiente.

gcloud composer environments describe ENVIRONMENT_NAME \
  --location LOCATION \
  --format="value(config.resilienceMode)"

Sostituisci quanto segue:

  • ENVIRONMENT_NAME: il nome dell'ambiente Cloud Composer
  • LOCATION: la regione in cui si trova l'ambiente.

Passaggi successivi