Esegui la migrazione degli ambienti a Cloud Composer 3 (script di migrazione)

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

Questa pagina spiega come eseguire la migrazione di DAG, dati e configurazione dal tuo ambiente Cloud Composer 2 esistente a un nuovo ambiente Cloud Composer 3 utilizzando lo script di migrazione.

Da A Metodo Guida
Cloud Composer 2 Cloud Composer 3 Accanto, utilizzando lo script di migrazione Questa guida
Cloud Composer 2 Cloud Composer 3 Accanto, utilizzando gli snapshot Guida alla migrazione degli snapshot
Cloud Composer 1, Airflow 2 Cloud Composer 3 Accanto, utilizzando gli snapshot Guida alla migrazione degli snapshot
Cloud Composer 1, Airflow 2 Cloud Composer 2 Accanto, utilizzando gli snapshot Guida alla migrazione degli snapshot
Cloud Composer 1, Airflow 2 Cloud Composer 2 Trasferimento manuale affiancato Guida alla migrazione manuale
Cloud Composer 1, Airflow 1 Cloud Composer 2, Airflow 2 Accanto, utilizzando gli snapshot Guida alla migrazione degli snapshot
Cloud Composer 1, Airflow 1 Cloud Composer 2, Airflow 2 Trasferimento manuale affiancato Guida alla migrazione manuale
Cloud Composer 1, Airflow 1 Cloud Composer 1, Airflow 2 Trasferimento manuale affiancato Guida alla migrazione manuale

Informazioni sullo script di migrazione

Lo script di migrazione è uno script Python per le migrazioni affiancate che automatizza il processo di migrazione da Cloud Composer 2 a Cloud Composer 3. Utilizza gli snapshot dell'ambiente per trasferire la configurazione dell'ambiente al nuovo ambiente.

Lo script esegue le seguenti azioni:

  1. Recupera la configurazione dell'ambiente Cloud Composer 2.

  2. Crea un ambiente Cloud Composer 3 con una configurazione corrispondente a quella ottenuta.

    Poiché gli ambienti Cloud Composer 3 hanno un'architettura diversa, alcuni parametri potrebbero essere regolati in base alle differenze. Puoi anche modificare la maggior parte dei parametri dell'ambiente in un secondo momento.

  3. Mette in pausa uno per uno tutti i DAG nell'ambiente Cloud Composer 2. Solo i DAG che sono stati riattivati nell'ambiente Cloud Composer 2 verranno riattivati in un secondo momento.

  4. Salva uno snapshot dell'ambiente Cloud Composer 2 di origine. Lo snapshot viene salvato nella posizione predefinita per gli snapshot, il bucket dell'ambiente Cloud Composer 2.

  5. Carica lo snapshot nell'ambiente Cloud Composer 3.

    Lo script non controlla la compatibilità dei pacchetti PyPI personalizzati, delle variabili di ambiente e degli override delle opzioni di configurazione di Airflow con l'ambiente Cloud Composer 3.

    In caso di conflitti, la migrazione non va a buon fine dopo la creazione dell'ambiente Cloud Composer 3, durante il processo di caricamento dello snapshot. In questo caso, puoi modificare la configurazione del tuo ambiente Cloud Composer 2 per risolvere il conflitto oppure eseguire la migrazione senza lo script di migrazione e saltare il caricamento di pacchetti PyPI personalizzati, variabili di ambiente o override della configurazione di Airflow quando carichi lo snapshot.

  6. Riattiva i DAG nell'ambiente Cloud Composer 3. Se alcuni DAG erano già in pausa prima di eseguire lo script, rimarranno in pausa.

Lo script presenta le seguenti limitazioni:

  • Lo script crea sempre un nuovo ambiente Cloud Composer 3. Non è possibile caricare lo snapshot in un ambiente Cloud Composer 3 esistente. Per farlo, puoi eseguire la migrazione utilizzando gli snapshot, senza utilizzare lo script di migrazione.

  • Lo script crea un ambiente Cloud Composer 3 solo nella stessa regione e nello stesso progetto dell'ambiente Cloud Composer 2.

  • Puoi caricare gli snapshot solo nella stessa versione di Airflow o in una successiva. Ad esempio, non puoi caricare uno snapshot da Airflow 2.10.2 a Airflow 2.9.3.

  • Solo gli ambienti Cloud Composer 2 possono essere sottoposti a migrazione con lo script di migrazione.

Prima di iniziare

  • Poiché lo script di migrazione crea un ambiente, poi salva e carica un snapshot, il processo di migrazione può richiedere più di un'ora.

  • Lo script utilizza gli snapshot. Gli snapshot sono supportati

  • in Cloud Composer 2 versione 2.0.9 e successive.

  • Il tuo account richiede un ruolo IAM che possa creare ambienti, salvare e caricare snapshot.

  • La dimensione massima del database Airflow che supporta gli snapshot è di 20 GB. Se il database del tuo ambiente occupa più di 20 GB, riduci le dimensioni del database Airflow.

  • Per creare gli snapshot, il numero totale di oggetti nelle cartelle /dags,/plugins e /data nel bucket dell'ambiente deve essere inferiore a 100.000.

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

Esegui la migrazione a Cloud Composer 3

Questa sezione descrive la procedura di migrazione utilizzando lo script di migrazione.

Controllare le differenze tra Cloud Composer 2 e Cloud Composer 3

Consulta l'elenco delle differenze tra Cloud Composer 2 e Cloud Composer 3.

Assicurati che il tuo ambiente non utilizzi funzionalità non ancora disponibili in Cloud Composer 3 e che tu abbia dimestichezza con l'utilizzo e la configurazione delle funzionalità specifiche di Cloud Composer 3.

Assicurati che i DAG siano compatibili con Cloud Composer 3

Assicurati che i DAG siano compatibili con Cloud Composer 3 seguendo questi suggerimenti:

  • L'elenco dei pacchetti nell'ambiente Cloud Composer 3 può essere diverso da quello nell'ambiente Cloud Composer 2. Ciò potrebbe influire sulla compatibilità dei DAG con Cloud Composer 3.

  • In Cloud Composer 3, il cluster dell'ambiente si trova nel progetto del tenant. Assicurati che i DAG siano compatibili con questa modifica. In particolare, i workload KubernetesPodOperator ora si scalano indipendentemente dal tuo ambiente e non è possibile utilizzare le configurazioni di affinità dei pod.

Installa le dipendenze dello script

  • Lo script richiede Python 3.8 e versioni successive.

  • Lo script di migrazione utilizza gcloud CLI e le utilità curl. Assicurati che entrambe le utilità siano installate sul computer.

Scaricare lo script

Scarica lo script di migrazione (composer_migrate.py) dal suo repository su GitHub.

Autorizzazione in gcloud CLI

Autorizza in gcloud CLI:

gcloud auth login

Visualizza l'anteprima dei parametri del nuovo ambiente

Puoi visualizzare l'anteprima dei parametri dell'ambiente Cloud Composer 3 prima della migrazione. Puoi utilizzarlo per vedere in che modo la configurazione dell'ambiente Cloud Composer 2 corrisponde a Cloud Composer 3.

Gli override delle opzioni di configurazione di Airflow, i pacchetti PyPI personalizzati e le variabili di ambiente vengono caricati dallo snapshot dell'ambiente e non vengono visualizzati nell'anteprima.

Espandi

Esegui questo comando:

python3 composer_migrate.py \
    --project PROJECT_ID \
    --location LOCATION \
    --source_environment COMPOSER_2_ENV \
    --target_environment COMPOSER_3_ENV \
    --target_airflow_version COMPOSER_3_AIRFLOW_VERSION \
    --dry_run

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto.
  • COMPOSER_2_ENV: il nome del tuo ambiente Cloud Composer 2.
  • LOCATION: la regione in cui si trova l'ambiente Cloud Composer 2. L'ambiente Cloud Composer 3 verrà creato nella stessa regione.
  • COMPOSER_3_AIRFLOW_VERSION: la versione di Airflow dell'ambiente Cloud Composer 3. Questa versione deve essere uguale o successiva a quella dell'ambiente Cloud Composer 2 e deve essere una delle versioni disponibili in Cloud Composer 3.

Esempio:

python3 composer_migrate.py \
    --project example-project \
    --location us-central1 \
    --source_environment example-composer-2-environment \
    --target_environment example-composer-3-environment \
    --target_airflow_version 2.10.2

Controlla lo stato di salute dell'ambiente

Assicurati che l'ambiente Cloud Composer 2 di cui vuoi eseguire la migrazione sia in buono stato.

Se l'ambiente non è integro, il processo di migrazione non andrà a buon fine dopo la creazione di un nuovo ambiente Cloud Composer 3 perché non sarà possibile creare uno snapshot.

Per ulteriori informazioni sui modi per controllare l'integrità dell'ambiente e del database, consulta Utilizzare la dashboard di monitoraggio.

Esegui lo script di migrazione

Esegui questo comando:

python3 composer_migrate.py \
    --project PROJECT_ID \
    --location LOCATION \
    --source_environment COMPOSER_2_ENV \
    --target_environment COMPOSER_3_ENV \
    --target_airflow_version COMPOSER_3_AIRFLOW_VERSION

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto.
  • COMPOSER_2_ENV: il nome del tuo ambiente Cloud Composer 2.
  • LOCATION: la regione in cui si trova l'ambiente Cloud Composer 2. L'ambiente Cloud Composer 3 verrà creato nella stessa regione.
  • COMPOSER_3_AIRFLOW_VERSION: la versione di Airflow dell'ambiente Cloud Composer 3. Questa versione deve essere uguale o successiva a quella dell'ambiente Cloud Composer 2 e deve essere una delle versioni disponibili in Cloud Composer 3.

Verificare la presenza di errori DAG

  1. Nell'interfaccia web di Airflow, vai a DAG e controlla se sono stati segnalati errori di sintassi dei DAG.

  2. Verifica che le esecuzioni del DAG siano pianificate all'ora corretta.

  3. Attendi che le esecuzioni del DAG vengano eseguite nell'ambiente Cloud Composer 3 e controlla se sono andate a buon fine. Se l'esecuzione di un DAG è andata a buon fine, non riprendere la messa in pausa nell'ambiente Cloud Composer 2. In caso contrario, nell'ambiente Cloud Composer 2 verrà eseguita un'esecuzione del DAG per la stessa data e ora.

  4. Se l'esecuzione di un DAG specifico non va a buon fine, prova a risolvere i problemi relativi al DAG finché non viene eseguito correttamente in Cloud Composer 3.

Monitora l'ambiente Cloud Composer 3

Monitora l'ambiente Cloud Composer 3 per rilevare potenziali problemi, esecuzioni di DAG non riuscite e l'integrità complessiva dell'ambiente.

Se l'ambiente Cloud Composer 3 funziona senza problemi per un periodo di tempo sufficiente, valuta la possibilità di eliminare l'ambiente Cloud Composer 2.

Passaggi successivi