Upgrade degli ambienti

Cloud Composer 1 | Cloud Composer 2

Questa pagina descrive come eseguire l'upgrade del tuo ambiente a una nuova versione di Cloud Composer o Airflow.

Informazioni sulle operazioni di upgrade

Quando modifichi la versione di Airflow o Cloud Composer utilizzata dal tuo ambiente, l'ambiente viene aggiornato.

L'upgrade non cambia il modo in cui ti connetti alle risorse nel tuo ambiente, ad esempio l'URL del bucket del tuo ambiente o del server web Airflow.

Durante un upgrade, Cloud Composer:

  1. Esegue nuovamente il deployment dei componenti del tuo ambiente utilizzando nuove versioni delle immagini di Cloud Composer.
  2. Applica le modifiche alla configurazione di Airflow, ad esempio pacchetti PyPI personalizzati o override delle opzioni di configurazione di Airflow, se presenti nel tuo ambiente prima dell'upgrade.
  3. Aggiorna la connessione airflow_db di Airflow in modo che punti al nuovo database Cloud SQL.

Prima di iniziare

  • L'upgrade è in anteprima. Usa questa funzionalità con cautela negli ambienti di produzione.

  • Non puoi eseguire il downgrade a una versione precedente di Cloud Composer o Airflow.

  • Ti consigliamo di creare un nuovo snapshot dell'ambiente per poter ricreare l'ambiente nel caso in cui sia necessario.

  • Puoi eseguire l'upgrade della versione di Cloud Composer, della versione di Airflow o di entrambe contemporaneamente.

  • Puoi eseguire l'upgrade da qualsiasi versione di Cloud Composer solo alla versione più recente, a tre versioni precedenti di Cloud Composer e a versioni con una tempistica di upgrade estesa.

  • Per eseguire l'upgrade a versioni diverse dall'ultima versione di Cloud Composer, utilizza Google Cloud CLI, l'API o Terraform. Nella console Google Cloud, puoi eseguire l'upgrade solo alla versione più recente.

  • Devi avere un ruolo che possa attivare operazioni di upgrade dell'ambiente. Inoltre, l'account di servizio dell'ambiente deve avere un ruolo con autorizzazioni sufficienti per eseguire operazioni di upgrade. Per ulteriori informazioni, consulta Controllo dell'accesso.

  • Per l'elenco dei pacchetti PyPI in una versione a cui vuoi eseguire l'upgrade, consulta l'elenco delle versioni di Cloud Composer.

  • Non puoi eseguire l'upgrade del tuo ambiente se il database Airflow contiene più di 16 GB di dati. Durante un upgrade, viene visualizzato un avviso se la dimensione del database Airflow è superiore a 16 GB. In questo caso, esegui la manutenzione del database per ridurne le dimensioni.

  • La versione immagine a cui esegui l'upgrade deve supportare l'attuale versione Python del tuo ambiente.

  • Assicurati che i tuoi DAG siano compatibili con la versione di Airflow e con tutti i pacchetti del provider (incluso il pacchetto del provider Airflow per i servizi Google Cloud e Google). Puoi controllare le versioni dei pacchetti del provider inclusi in una versione specifica di Cloud Composer.

  • Nella console Google Cloud, vai alla pagina IAM e amministrazione > Quote e limiti di sistema e controlla se la quota di Compute Engine Engine API per la CPU non è stata superata. Se stai per raggiungere la soglia di quota, richiedi un'estensione della quota prima di procedere con l'operazione di upgrade.

  • È possibile eseguire gli upgrade per le ultime tre versioni di Cloud Composer pubblicate o per una delle versioni con "supporto esteso per gli upgrade", come descritto nelle versioni di Cloud Composer.

Verifica che il tuo ambiente sia aggiornato

Cloud Composer mostra avvisi quando l'immagine dell'ambiente si avvicina alla data di fine del supporto. Puoi utilizzare questi avvisi per mantenere sempre gli ambienti durante il periodo di assistenza completo.

Viene visualizzato un messaggio relativo al ritiro nella pagina Dettagli ambiente
Figura 1. Nella pagina Dettagli ambiente viene visualizzato un messaggio relativo al ritiro

Cloud Composer tiene traccia della versione dell'immagine di Cloud Composer su cui si basa il tuo ambiente. Quando l'immagine si avvicina alla data di fine del supporto, puoi visualizzare un avviso nell'elenco degli ambienti e nella pagina Dettagli ambiente.

Per verificare se l'immagine dell'ambiente è aggiornata:

Console

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

    Vai a Ambienti

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

  3. Vai alla scheda Configurazione dell'ambiente.

  4. Nel campo Versione immagine viene visualizzato uno dei seguenti messaggi:

    • Versione più recente disponibile. L'immagine dell'ambiente è completamente supportata.

    • Nuova versione disponibile. L'immagine dell'ambiente è completamente supportata e puoi eseguirne l'upgrade a una versione successiva.

    • Il supporto per questa versione immagine termina tra... L'immagine dell'ambiente si avvicina alla fine del periodo di assistenza completo.

    • Questa versione non è supportata a partire da... L'ambiente ha superato il periodo di assistenza completo.

Visualizza gli upgrade disponibili

Per visualizzare le versioni di Cloud Composer a cui puoi eseguire l'upgrade:

Console

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

    Vai a Ambienti

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

  3. Vai alla scheda Configurazione ambiente e fai clic su Esegui l'upgrade della versione dell'immagine.

  4. Per l'elenco delle versioni disponibili, fai clic sul menu a discesa Versione immagine di Cloud Composer.

gcloud

gcloud beta composer environments list-upgrades \
  ENVIRONMENT_NAME \
  --location LOCATION

Sostituisci:

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

Esempio:

gcloud beta composer environments list-upgrades example-environment \
  --location us-central1

API

Puoi visualizzare le versioni disponibili per una località. Per farlo, crea una richiesta API imageVersions.list.

Ad esempio:

// GET https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/imageVersions

Verifica della presenza di conflitti di pacchetti PyPI prima dell'upgrade

Puoi verificare se i pacchetti PyPI installati nel tuo ambiente presentano conflitti con i pacchetti preinstallati nella nuova immagine Cloud Composer.

Un controllo riuscito indica che non sono presenti conflitti di dipendenza dei pacchetti PyPI tra la versione corrente e quella specificata. Tieni presente che un'operazione di upgrade potrebbe non riuscire ancora per altri motivi.

Console

Per eseguire il controllo dell'upgrade per il tuo ambiente:

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

    Vai a Ambienti

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

  3. Vai alla scheda Configurazione ambiente, individua la voce Versione immagine e fai clic su Upgrade.

  4. Nella finestra di dialogo Upgrade della versione dell'ambiente, nell'elenco a discesa Nuova versione, seleziona una versione di Cloud Composer di cui vuoi eseguire l'upgrade.

  5. Nella sezione Compatibilità dei pacchetti PyPI, fai clic su Verifica la presenza di conflitti.

  6. Attendi il completamento del controllo. In caso di conflitti di dipendenza dei pacchetti PyPI, i messaggi di errore visualizzati contengono dettagli sui pacchetti e sulle versioni dei pacchetti in conflitto.

gcloud

Per eseguire il controllo dell'upgrade per il tuo ambiente, esegui il comando environments check-upgrade con la versione dell'immagine di Cloud Composer di cui vuoi eseguire l'upgrade.

gcloud beta composer environments check-upgrade \
    ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version COMPOSER_IMAGE

Sostituisci:

  • ENVIRONMENT_NAME con il nome dell'ambiente.
  • LOCATION con la regione in cui si trova l'ambiente.
  • COMPOSER_IMAGE con la nuova versione immagine di Cloud Composer a cui vuoi eseguire l'upgrade, nel formato composer-a.b.c-airflow-x.y.z.

Esempio:

gcloud beta composer environments check-upgrade example-environment \
  --location us-central1 \
  --image-version composer-2.8.0-airflow-2.7.3

Output di esempio:

Waiting for [projects/example-project/locations/us-central1/environments/
example-environment] to be checked for PyPI package conflicts when upgrading
to composer-2.8.0-airflow-2.7.3. Operation [projects/example-project/locations/
us-central1/operations/04d0e8b2-...]...done.
...

Response:
'@type': type.googleapis.com/
google.cloud.orchestration.airflow.service.v1beta1.CheckUpgradeResponse
buildLogUri: https://console.cloud.google.com/cloud-build/builds/79738aa7-...
containsPypiModulesConflict: CONFLICT
pypiConflictBuildLogExtract: |-
The Cloud Build image build failed: Build failed; check build logs for
details. Full log can be found at https://console.cloud.google.com/
cloud-build/builds/79738aa7-...
Error details: tensorboard 2.2.2 has requirement
setuptools>=41.0.0, but you have setuptools 40.3.0.

In alternativa, puoi eseguire un controllo dell'upgrade in modo asincrono. Utilizza l'argomento --async per effettuare una chiamata asincrona, quindi controlla il risultato con il comando gcloud composer operations describe.

API

Creare una richiesta API environments.checkUpgrade.

Specifica la versione dell'immagine nel campo imageVersion:

{
  "imageVersion": "COMPOSER_IMAGE"
}

Sostituisci COMPOSER_IMAGE con la nuova versione dell'immagine di Cloud Composer a cui vuoi eseguire l'upgrade, nel formato composer-a.b.c-airflow-x.y.z.

Esegui l'upgrade dell'ambiente

Per eseguire l'upgrade del tuo ambiente a una versione più recente di Cloud Composer o Airflow:

Console

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

    Vai a Ambienti

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

  3. Vai alla scheda Configurazione dell'ambiente.

  4. Individua la voce Versione immagine e fai clic su Esegui l'upgrade.

  5. Nel menu a discesa Versione immagine, seleziona una versione.

  6. Fai clic su Esegui l'upgrade.

gcloud

gcloud beta composer environments update \
  ENVIRONMENT_NAME \
  --location LOCATION \
  --image-version COMPOSER_IMAGE

Sostituisci:

  • ENVIRONMENT_NAME con il nome dell'ambiente.
  • LOCATION con la regione in cui si trova l'ambiente.
  • COMPOSER_IMAGE con la nuova versione dell'immagine di Cloud Composer a cui vuoi eseguire l'upgrade, nel formato composer-a.b.c-airflow-x.y.z.

Ad esempio:

gcloud beta composer environments update
  example-environment \
  --location us-central1 \
  --image-version composer-2.8.0-airflow-2.7.3

API

  1. Creare una richiesta API environments.patch beta.

  2. In questa richiesta:

    1. Nel parametro updateMask, specifica la maschera config.softwareConfig.imageVersion.

    2. Nel corpo della richiesta, nel campo imageVersion, la nuova versione dell'immagine di Cloud Composer di cui vuoi eseguire l'upgrade, nel formato composer-a.b.c-airflow-x.y.z.

Ad esempio:

// PATCH https://composer.googleapis.com/v1beta1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.softwareConfig.imageVersion

  {
    "config": {
      "softwareConfig": {
        "imageVersion": "composer-2.8.0-airflow-2.7.3"
      }
    }
  }

Terraform

Il campo image_version nel blocco config.software_config controlla l'immagine Cloud Composer del tuo ambiente. In questo campo, specifica una nuova immagine di Cloud Composer.

  resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {
    software_config {
      image_version = "COMPOSER_IMAGE"
    }
  }
}

Sostituisci:

  • ENVIRONMENT_NAME con il nome dell'ambiente.
  • LOCATION con la regione in cui si trova l'ambiente.
  • COMPOSER_IMAGE con la nuova versione dell'immagine di Cloud Composer a cui vuoi eseguire l'upgrade, nel formato composer-a.b.c-airflow-x.y.z.

Esempio:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {
    software_config {
      image_version = "composer-2.8.0-airflow-2.7.3"
    }
  }
}

Passaggi successivi