Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
En esta página, se explica cómo migrar DAG, datos y configuración de tu entorno existente de Cloud Composer 2 a un nuevo entorno de Cloud Composer 3 con la secuencia de comandos de migración.
Otras guías de migración
De | To | Método | Guía |
---|---|---|---|
Cloud Composer 2 | Cloud Composer 3 | En paralelo, con la secuencia de comandos de migración | Esta guía |
Cloud Composer 2 | Cloud Composer 3 | Comparación en paralelo con instantáneas | Guía de migración de instantáneas |
Cloud Composer 1, Airflow 2 | Cloud Composer 3 | Comparación en paralelo con instantáneas | Guía de migración de instantáneas |
Cloud Composer 1, Airflow 2 | Cloud Composer 2 | Comparación en paralelo con instantáneas | Guía de migración de instantáneas |
Cloud Composer 1, Airflow 2 | Cloud Composer 2 | Transferencia manual en paralelo | Guía de migración manual |
Cloud Composer 1 y Airflow 1 | Cloud Composer 2, Airflow 2 | Comparación en paralelo con instantáneas | Guía de migración de instantáneas |
Cloud Composer 1 y Airflow 1 | Cloud Composer 2, Airflow 2 | Transferencia manual en paralelo | Guía de migración manual |
Cloud Composer 1 y Airflow 1 | Cloud Composer 1, Airflow 2 | Transferencia manual en paralelo | Guía de migración manual |
Acerca de la secuencia de comandos de migración
La secuencia de comandos de migración es una secuencia de comandos de Python para las migraciones en paralelo que automatiza el proceso de migración de Cloud Composer 2 a Cloud Composer 3. Usa instantáneas del entorno para transferir la configuración del entorno al entorno nuevo.
La secuencia de comandos realiza las siguientes acciones:
Obtiene la configuración del entorno de Cloud Composer 2.
Crea un entorno de Cloud Composer 3 con la configuración que coincida con la configuración obtenida.
Debido a que los entornos de Cloud Composer 3 tienen una arquitectura diferente, es posible que algunos parámetros se ajusten para que coincidan con las diferencias. También puedes ajustar la mayoría de los parámetros del entorno más adelante.
Detiene todos los DAG del entorno de Cloud Composer 2 uno por uno. Solo se reanudarán más adelante los DAG que se reanudaron en el entorno de Cloud Composer 2.
Guarda una instantánea del entorno de Cloud Composer 2 de origen. La instantánea se guarda en la ubicación predeterminada para las instantáneas, el bucket del entorno de Cloud Composer 2.
Carga la instantánea en el entorno de Cloud Composer 3.
La secuencia de comandos no verifica la compatibilidad de los paquetes de PyPI personalizados, las variables de entorno y las anulaciones de opciones de configuración de Airflow con el entorno de Cloud Composer 3.
En caso de conflictos, la migración falla después de crear el entorno de Cloud Composer 3, durante el proceso de carga de la instantánea. En este caso, puedes ajustar la configuración de tu entorno de Cloud Composer 2 para resolver el conflicto o migrar sin la secuencia de comandos de migración y omitir la carga de paquetes de PyPI personalizados, variables de entorno o anulaciones de configuración de Airflow cuando cargues la instantánea.
Reanuda los DAG en el entorno de Cloud Composer 3. Si algunos DAG ya estaban detenidos antes de ejecutar la secuencia de comandos, permanecerán detenidos.
La secuencia de comandos tiene las siguientes limitaciones:
La secuencia de comandos siempre crea un entorno nuevo de Cloud Composer 3. No es posible cargar la instantánea en un entorno de Cloud Composer 3 existente. Para ello, puedes migrar con instantáneas, sin usar la secuencia de comandos de migración.
La secuencia de comandos crea un entorno de Cloud Composer 3 solo en la misma región y proyecto que el entorno de Cloud Composer 2.
Solo puedes cargar instantáneas en la misma versión de Airflow o una posterior. Por ejemplo, no puedes cargar una instantánea de Airflow 2.10.2 a Airflow 2.9.3.
Solo se pueden migrar los entornos de Cloud Composer 2 con la secuencia de comandos de migración.
Antes de comenzar
Debido a que la secuencia de comandos de migración crea un entorno y, luego, guarda y carga una instantánea, el proceso de migración puede tardar más de una hora.
La secuencia de comandos usa instantáneas. Se admiten instantáneas
en Cloud Composer 2 versión 2.0.9 y versiones posteriores.
Tu cuenta requiere un rol de IAM que pueda crear entornos, guardar instantáneas y cargarlas.
El tamaño máximo de la base de datos de Airflow que admite instantáneas es de 20 GB. Si la base de datos de tu entorno ocupa más de 20 GB, reduce el tamaño de la base de datos de Airflow.
La cantidad total de objetos en las carpetas
/dags
,/plugins
y/data
del bucket del entorno debe ser inferior a 100,000 para crear instantáneas.Si usas el mecanismo XCom para transferir archivos, asegúrate de seguirlo según los lineamientos de Airflow. La transferencia de archivos grandes o una gran cantidad de archivos con XCom afecta el rendimiento de la base de datos de Airflow y puede generar fallas cuando se cargan instantáneas o se actualiza el entorno. Considera usar alternativas como Cloud Storage para transferir grandes volúmenes de datos.
Cómo migrar a Cloud Composer 3
En esta sección, se describe el proceso de migración con la secuencia de comandos de migración.
Consulta las diferencias entre Cloud Composer 2 y Cloud Composer 3
Consulta la lista de diferencias entre Cloud Composer 2 y Cloud Composer 3.
Asegúrate de que tu entorno no use funciones que aún no están disponibles en Cloud Composer 3 y de que conoces cómo usar y configurar funciones específicas de Cloud Composer 3.
Asegúrate de que tus DAG sean compatibles con Cloud Composer 3
Para asegurarte de que tus DAG sean compatibles con Cloud Composer 3, sigue estas sugerencias:
La lista de paquetes en el entorno de Cloud Composer 3 puede ser diferente de la de tu entorno de Cloud Composer 2. Esto podría afectar la compatibilidad de tus DAG con Cloud Composer 3.
En Cloud Composer 3, el clúster del entorno se encuentra en el proyecto de usuario. Asegúrate de que tus DAG sean compatibles con este cambio. En particular, las cargas de trabajo de
KubernetesPodOperator
ahora se escalan de forma independiente de tu entorno y no es posible usar configuraciones de afinidad de pod.
Instala las dependencias de la secuencia de comandos
La secuencia de comandos requiere la versión 3.8 de Python y versiones posteriores.
La secuencia de comandos de migración usa la CLI de gcloud y las utilidades de
curl
. Asegúrate de que ambas utilidades estén instaladas en tu computadora.
Descarga la secuencia de comandos
Descarga la secuencia de comandos de migración (composer_migrate.py
) desde su
repositorio en GitHub.
Otorga la autorización en gcloud CLI
Autoriza en la CLI de gcloud:
gcloud auth login
Obtén una vista previa de los parámetros del nuevo entorno
Puedes obtener una vista previa de los parámetros del entorno de Cloud Composer 3 antes de la migración. Puedes usar esto para ver cómo la configuración del entorno de Cloud Composer 2 corresponde a Cloud Composer 3.
Las anulaciones de opciones de configuración de Airflow, los paquetes de PyPI personalizados y las variables de entorno se cargan desde la instantánea del entorno y no se muestran en la vista previa.
Expandir
Ejecuta el siguiente 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
Reemplaza lo siguiente:
PROJECT_ID
: El ID del proyecto.COMPOSER_2_ENV
: Es el nombre de tu entorno de Cloud Composer 2.LOCATION
: Es la región en la que se encuentra el entorno de Cloud Composer 2. El entorno de Cloud Composer 3 se creará en la misma región.COMPOSER_3_AIRFLOW_VERSION
: Es la versión de Airflow del entorno de Cloud Composer 3. Esta versión debe ser la misma o posterior que la del entorno de Cloud Composer 2 y debe ser una de las versiones disponibles en Cloud Composer 3.
Ejemplo:
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
Verifica el estado del entorno
Asegúrate de que el entorno de Cloud Composer 2 que deseas migrar esté en buen estado.
Si tu entorno no está en buen estado, el proceso de migración fallará después de crear un nuevo entorno de Cloud Composer 3 porque no será posible crear una instantánea.
Consulta Cómo usar el panel de supervisión para obtener más información sobre cómo verificar el estado del entorno y de la base de datos.
Ejecuta la secuencia de comandos de migración
Ejecuta el siguiente 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
Reemplaza lo siguiente:
PROJECT_ID
: El ID del proyecto.COMPOSER_2_ENV
: Es el nombre de tu entorno de Cloud Composer 2.LOCATION
: Es la región en la que se encuentra el entorno de Cloud Composer 2. El entorno de Cloud Composer 3 se creará en la misma región.COMPOSER_3_AIRFLOW_VERSION
: Es la versión de Airflow del entorno de Cloud Composer 3. Esta versión debe ser la misma o posterior que la del entorno de Cloud Composer 2 y debe ser una de las versiones disponibles en Cloud Composer 3.
Verifica si hay errores de DAG
En la interfaz web de Airflow, ve a DAGs y comprueba si hay errores de sintaxis de DAG informados.
Verifica que las ejecuciones de DAG estén programadas a la hora correcta.
Espera a que se ejecuten los DAG en el entorno de Cloud Composer 3 y verifica si se ejecutaron correctamente. Si una ejecución de DAG se realizó correctamente, no la despausas en el entorno de Cloud Composer 2. Si lo haces, se ejecutará un DAG para la misma hora y fecha en tu entorno de Cloud Composer 2.
Si una ejecución de DAG específica falla, intenta solucionar el problema del DAG hasta que se ejecute correctamente en Cloud Composer 3.
Supervisa tu entorno de Cloud Composer 3
Supervisa tu entorno de Cloud Composer 3 en busca de posibles problemas, ejecuciones de DAG que fallaron y el estado general del entorno.
Si el entorno de Cloud Composer 3 se ejecuta sin problemas durante un período suficiente, considera borrar el entorno de Cloud Composer 2.