Upgrade degli ambienti

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

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

Informazioni sulle operazioni di upgrade

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

Quando modifichi la versione di Airflow o Cloud Composer utilizzata dal tuo ambiente:

  • Cloud Composer esegue nuovamente il deployment dei componenti dell'ambiente utilizzando nuove versioni delle immagini Cloud Composer.

  • Cloud Composer applica le modifiche alla configurazione di Airflow, ad esempio override delle opzioni di configurazione di Airflow o pacchetti PyPI personalizzati, se il tuo ambiente li aveva prima dell'upgrade.

  • Cloud Composer aggiorna la connessione airflow_db di Airflow in modo che punti al nuovo database Cloud SQL.

L'upgrade non modifica la modalità di connessione alle risorse nel tuo ambiente, ad esempio l'URL del bucket dell'ambiente o del server web di Airflow.

Limitazioni delle operazioni di upgrade

Le operazioni di upgrade presentano le seguenti limitazioni:

  • Le versioni di Cloud Composer vengono implementate gradualmente in tutte le regioni supportate da Cloud Composer nell'arco di diversi giorni. L'ultima versione di una release in corso potrebbe non essere ancora disponibile nella tua regione.

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

  • In Google Cloud console, puoi eseguire l'upgrade solo alle versioni più recenti supportate di Cloud Composer 2.

  • In Google Cloud CLI, API o Terraform, puoi eseguire l'upgrade di un ambiente alle ultime versioni supportate, a tre versioni precedenti di Cloud Composer 2, all'ultima versione patch della versione secondaria precedente e alle versioni con una sequenza temporale di upgrade estesa. Non è possibile eseguire l'upgrade ad altre versioni di Cloud Composer 2, anche se sono ancora supportate e possono essere utilizzate per creare un nuovo ambiente.

    Esempio di scelte di upgrade per Google Cloud CLI, API e Terraform:

    • Versioni più recenti: composer-2.11.5-airflow-*
    • Tre versioni precedenti di Cloud Composer 2: composer-2.11.4-airflow-*, composer-2.11.3-airflow-*, composer-2.11.2-airflow-*.
    • Ultima patch della versione secondaria precedente di Cloud Composer 2: composer-2.10.2-airflow-*
    • Versioni di Cloud Composer 2 con una sequenza temporale di upgrade estesa: composer-2.10.2-airflow-*, composer-2.10.1-ariflow-*, composer-2.9.7-airflow-* e altre versioni con una sequenza temporale di upgrade estesa.
  • La versione a cui esegui l'upgrade deve supportare la versione attuale di Python del tuo ambiente.

  • I limiti di quota dell'API Compute Engine possono impedire gli upgrade. Nella console Google Cloud , vai alla pagina IAM e amministrazione > Quote e limiti di sistema e verifica che la quota API Compute Engine per la CPU non sia stata superata. Se si sta per raggiungere la soglia della quota, richiedi l'estensione della quota prima di procedere con l'operazione di upgrade.

  • Non è possibile eseguire l'upgrade in loco a una versione principale diversa di Cloud Composer o Airflow. Puoi trasferire manualmente i DAG e la configurazione tra gli ambienti. Per ulteriori informazioni, vedi:

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

  • Se utilizzi il meccanismo XCom per trasferire i file, assicurati di utilizzarlo in conformità alle linee guida di Airflow. Il trasferimento di file di grandi dimensioni o di un numero elevato di file utilizzando XCom influisce sulle prestazioni del database Airflow e può causare errori durante il caricamento degli snapshot o l'upgrade dell'ambiente. Prendi in considerazione l'utilizzo di alternative come Cloud Storage per trasferire grandi volumi di dati.

Prima di iniziare

  • Ti consigliamo di creare un nuovo snapshot dell'ambiente per poterlo ricreare in caso di necessità.

  • Il tuo account deve disporre di un ruolo che possa attivare le operazioni di upgrade dell'ambiente. Inoltre, il account di servizio dell'ambiente deve disporre di un ruolo con autorizzazioni sufficienti per eseguire le operazioni di upgrade. Per ulteriori informazioni, consulta Controllo dell'accesso.

Controllare che l'ambiente sia aggiornato

Cloud Composer mostra avvisi quando l'immagine del tuo ambiente si avvicina alla data di fine del supporto completo. Puoi utilizzare questi avvisi per mantenere sempre il tuo ambiente supportato.

Nella pagina dei dettagli dell'ambiente viene visualizzato un messaggio di ritiro
Figura 1. Nella pagina dei dettagli dell'ambiente viene visualizzato un messaggio di ritiro

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

Per verificare se il tuo ambiente è aggiornato:

Console

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

    Vai ad Ambienti

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

  3. Vai alla scheda Configurazione ambiente.

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

    • Ultima versione 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 dell'immagine termina tra... L'immagine del tuo ambiente si avvicina alla fine del periodo di assistenza completo.

    • Questa versione non è supportata a partire dal giorno… Il tuo ambiente ha superato il periodo di supporto completo.

gcloud

Questa funzionalità non è disponibile tramite Google Cloud CLI. Puoi visualizzare gli upgrade suggeriti, che mostrano le nuove versioni disponibili.

API

Questa funzionalità non è disponibile tramite API. Puoi visualizzare gli upgrade suggeriti, che mostrano le nuove versioni disponibili.

Visualizza gli upgrade suggeriti

Cloud Composer fornisce un elenco delle versioni di Cloud Composer a cui puoi eseguire l'upgrade del tuo ambiente.

Per visualizzare le versioni di Cloud Composer suggerite per un upgrade:

Console

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

    Vai ad Ambienti

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

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

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

gcloud

gcloud 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 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

Verificare la presenza di conflitti tra i 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 ci sono conflitti nelle dipendenze dei pacchetti PyPI tra la versione attuale e quella specificata. Tuttavia, un'operazione di upgrade potrebbe comunque non riuscire per altri motivi.

Console

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

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

    Vai ad Ambienti

  2. Nell'elenco degli ambienti, fai clic sul nome del tuo 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, seleziona una versione di Cloud Composer a cui eseguire l'upgrade dall'elenco a discesa Nuova versione.

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

  6. Attendi il completamento del controllo. Se si verificano conflitti tra le dipendenze dei pacchetti PyPI, i messaggi di errore visualizzati contengono dettagli sui pacchetti e sulle versioni dei pacchetti in conflitto.

gcloud

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

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

Sostituisci:

Esempio:

gcloud composer environments check-upgrade example-environment \
  --location us-central1 \
  --image-version composer-1.20.12-airflow-1.10.15

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-1.20.12-airflow-1.10.15. Operation [projects/example-project/locations/
us-central1/operations/04d0e8b2-...]...done.
...

Response:
'@type': type.googleapis.com/
google.cloud.orchestration.airflow.service.v1.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

Crea una richiesta API environments.checkUpgrade.

Specifica la versione dell'immagine nel campo imageVersion:

{
  "imageVersion": "VERSION"
}

Sostituisci VERSION con la nuova versione a cui vuoi eseguire l'upgrade, nel formato composer-a.b.c-airflow-x.y.z.

Eseguire l'upgrade dell'ambiente

Per eseguire l'upgrade dell'ambiente a una versione successiva di Cloud Composer o Airflow:

Console

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

    Vai ad Ambienti

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

  3. Vai alla scheda Configurazione ambiente.

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

  5. Nel menu a discesa Versione immagine, seleziona una versione di Cloud Composer a cui eseguire l'upgrade.

  6. Fai clic su Esegui upgrade.

gcloud

gcloud composer environments update \
  ENVIRONMENT_NAME \
  --location LOCATION \
  --image-version VERSION

Sostituisci:

Ad esempio:

gcloud composer environments update
  example-environment \
  --location us-central1 \
  --image-version composer-1.20.12-airflow-1.10.15

API

  1. Crea una richiesta API environments.patch.

  2. In questa richiesta:

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

    2. Nel corpo della richiesta, nel campo imageVersion, specifica una nuova versione a cui vuoi eseguire l'upgrade.

Ad esempio:

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

  {
    "config": {
      "softwareConfig": {
        "imageVersion": "composer-1.20.12-airflow-1.10.15"
      }
    }
  }

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 Cloud Composer.

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

  config {
    software_config {
      image_version = "VERSION"
    }
  }
}

Sostituisci:

Esempio:

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

  config {
    software_config {
      image_version = "composer-1.20.12-airflow-1.10.15"
    }
  }
}

Passaggi successivi