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 dall'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 Affiancata, utilizzando lo script di migrazione Questa guida
Cloud Composer 2 Cloud Composer 3 Affiancate, utilizzando gli snapshot Guida alla migrazione degli snapshot
Cloud Composer 1, Airflow 2 Cloud Composer 3 Affiancate, utilizzando gli snapshot Guida alla migrazione degli snapshot
Cloud Composer 1, Airflow 2 Cloud Composer 2 Affiancate, 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 Affiancate, 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. Ottiene 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 modificati per adattarsi alle differenze. Puoi anche modificare la maggior parte dei parametri dell'ambiente in un secondo momento.

  3. Mette in pausa tutti i DAG nell'ambiente Cloud Composer 2 uno alla volta. 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, ovvero il bucket dell'ambiente Cloud Composer 2.

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

    Lo script non verifica 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 riesce 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 Airflow quando carichi lo snapshot.

  6. Riattiva i DAG nell'ambiente Cloud Composer 3. Se alcuni DAG erano già in pausa prima dell'esecuzione dello 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 o in una versione successiva di Airflow. Ad esempio, non puoi caricare uno snapshot da Airflow 2.10.2 ad Airflow 2.9.3.

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

Prima di iniziare

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

  • Lo script utilizza 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 snapshot e caricare snapshot.

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

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

  • 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.

Esegui la migrazione a Cloud Composer 3

Questa sezione descrive il processo di migrazione utilizzando lo script di migrazione.

Controlla 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 di sapere come utilizzare e configurare le funzionalità specifiche di Cloud Composer 3.

Assicurati che i tuoi DAG siano compatibili con Cloud Composer 3

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

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

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

Installare le dipendenze dello script

  • Lo script richiede Python versione 3.8 e successive.

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

Scarica lo script

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

Autorizza 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 come la configurazione dell'ambiente Cloud Composer 2 corrisponde a Cloud Composer 3.

Gli override dell'opzione 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

Controllare l'integrità dell'ambiente

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

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

Per saperne di più 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.

Controllare gli errori del DAG

  1. Nell'interfaccia web di Airflow, vai a DAG e verifica la presenza di errori di sintassi dei DAG segnalati.

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

  3. Attendi l'esecuzione dei DAG nell'ambiente Cloud Composer 3 e verifica se sono andati a buon fine. Se l'esecuzione di un DAG è andata a buon fine, non riattivarla nell'ambiente Cloud Composer 2; in caso contrario, nell'ambiente Cloud Composer 2 si verifica un'esecuzione del DAG per la stessa ora e data.

  4. Se l'esecuzione di un DAG specifico non va a buon fine, prova a risolvere i problemi del 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 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