Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
En esta página se explica cómo migrar DAGs, datos y configuración de tu entorno de Cloud Composer 2 a un nuevo entorno de Cloud Composer 3 mediante el script de migración.
Otras guías de migración
De | Para | 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 | En paralelo, con capturas | Guía de migración de capturas |
Cloud Composer 1, Airflow 2 | Cloud Composer 3 | En paralelo, con capturas | Guía de migración de capturas |
Cloud Composer 1, Airflow 2 | Cloud Composer 2 | En paralelo, con capturas | Guía de migración de capturas |
Cloud Composer 1, Airflow 2 | Cloud Composer 2 | Transferencia manual en paralelo | Guía de migración manual |
Cloud Composer 1, Airflow 1 | Cloud Composer 2, Airflow 2 | En paralelo, con capturas | Guía de migración de capturas |
Cloud Composer 1, Airflow 1 | Cloud Composer 2, Airflow 2 | Transferencia manual en paralelo | Guía de migración manual |
Cloud Composer 1, 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 migraciones en paralelo que automatiza el proceso de migración de Cloud Composer 2 a Cloud Composer 3. Usa capturas del entorno para transferir la configuración del entorno al nuevo.
El script realiza las siguientes acciones:
Obtiene la configuración del entorno de Cloud Composer 2.
Crea un entorno de Cloud Composer 3 con una configuración que coincida con la configuración obtenida.
Como los entornos de Cloud Composer 3 tienen una arquitectura diferente, es posible que algunos parámetros se ajusten para adaptarse a las diferencias. También puedes ajustar la mayoría de los parámetros del entorno más adelante.
Pausa todos los DAGs del entorno de Cloud Composer 2 uno por uno. Solo se reanudarán los DAGs que se hayan reanudado en el entorno de Cloud Composer 2.
Guarda una captura del entorno de Cloud Composer 2 de origen. La instantánea se guarda en la ubicación predeterminada para las instantáneas, que es el segmento del entorno de Cloud Composer 2.
Carga la instantánea en el entorno de Cloud Composer 3.
La secuencia de comandos no comprueba la compatibilidad de los paquetes 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 conflicto, la migración fallará 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 PyPI personalizados, variables de entorno o anulaciones de configuración de Airflow al cargar la instantánea.
Reanuda los DAGs del entorno de Cloud Composer 3. Si algunos DAGs ya estaban pausados antes de ejecutar la secuencia de comandos, seguirán pausados.
La secuencia de comandos tiene las siguientes limitaciones:
La secuencia de comandos siempre crea un entorno de Cloud Composer 3. No es posible cargar la instantánea en un entorno de Cloud Composer 3. Para ello, puedes migrar mediante copias de seguridad 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 o en una posterior de Airflow. Por ejemplo, no puedes cargar una instantánea de Airflow 2.10.2 en Airflow 2.9.3.
Solo se pueden migrar los entornos de Cloud Composer 2 con la secuencia de comandos de migración.
Antes de empezar
Como la secuencia de comandos de migración crea un entorno y, a continuación, guarda y carga una instantánea, el proceso de migración puede tardar más de una hora.
La secuencia de comandos usa capturas. Se admiten las capturas
en Cloud Composer 2, versión 2.0.9 y posteriores.
Tu cuenta requiere un rol de gestión de identidades y accesos que pueda crear entornos, guardar y cargar snapshots.
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 su tamaño.
El número total de objetos de las carpetas
/dags
,/plugins
y/data
del segmento del entorno debe ser inferior a 100.000 para poder crear snapshots.Si usas el mecanismo XCom para transferir archivos, asegúrate de usarlo de acuerdo con las directrices de Airflow. La transferencia de archivos grandes o de un gran número de archivos mediante XCom afecta al rendimiento de la base de datos de Airflow y puede provocar errores al cargar instantáneas o actualizar el entorno. Puedes usar alternativas como Cloud Storage para transferir grandes volúmenes de datos.
Migrar a Cloud Composer 3
En esta sección se describe el proceso de migración mediante la secuencia de comandos de migración.
Consultar 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 sepas cómo usar y configurar las funciones específicas de Cloud Composer 3.
Comprueba que tus DAGs sean compatibles con Cloud Composer 3
Asegúrate de que tus DAGs sean compatibles con Cloud Composer 3 siguiendo estas sugerencias:
La lista de paquetes del entorno de Cloud Composer 3 puede ser diferente a la de tu entorno de Cloud Composer 2. Esto puede afectar a la compatibilidad de tus DAGs con Cloud Composer 3.
En Cloud Composer 3, el clúster del entorno se encuentra en el proyecto de inquilino. Asegúrate de que tus DAGs sean compatibles con este cambio. En concreto, las cargas de trabajo de
KubernetesPodOperator
ahora se escalan de forma independiente de tu entorno y no es posible usar configuraciones de afinidad de pods.
Instalar las dependencias de la secuencia de comandos
El script requiere Python 3.8 o versiones posteriores.
La secuencia de comandos de migración usa la CLI de gcloud y las utilidades
curl
. Asegúrate de que ambas utilidades estén instaladas en tu ordenador.
Descargar la secuencia de comandos
Descarga la secuencia de comandos de migración (composer_migrate.py
) desde su repositorio en GitHub.
Autorizar en la CLI de gcloud
Autoriza en la CLI de gcloud:
gcloud auth login
Previsualizar los parámetros del nuevo entorno
Puedes previsualizar los parámetros del entorno de Cloud Composer 3 antes de migrar. Puedes usarlo para ver cómo se corresponde la configuración del entorno de Cloud Composer 2 con la de Cloud Composer 3.
Las anulaciones de opciones de configuración de Airflow, los paquetes PyPI personalizados y las variables de entorno se cargan desde la instantánea del entorno y no se muestran en la vista previa.
Mostrar
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
Haz los cambios siguientes:
PROJECT_ID
: el ID de proyecto.COMPOSER_2_ENV
: el nombre de tu entorno de Cloud Composer 2.LOCATION
: 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
: la versión de Airflow del entorno de Cloud Composer 3. Esta versión debe ser igual o posterior a 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
Comprobar el estado del entorno
Asegúrate de que el entorno de Cloud Composer 2 que quieres migrar esté en buen estado.
Si tu entorno no está en buen estado, el proceso de migración fallará después de crear un entorno de Cloud Composer 3 porque no se podrá crear una instantánea.
Consulta Usar el panel de control de monitorización para obtener más información sobre cómo comprobar el estado del entorno y de la base de datos.
Ejecutar 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
Haz los cambios siguientes:
PROJECT_ID
: el ID de proyecto.COMPOSER_2_ENV
: el nombre de tu entorno de Cloud Composer 2.LOCATION
: 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
: la versión de Airflow del entorno de Cloud Composer 3. Esta versión debe ser igual o posterior a la del entorno de Cloud Composer 2 y debe ser una de las versiones disponibles en Cloud Composer 3.
Comprobar si hay errores en los DAGs
En la interfaz web de Airflow, ve a DAGs y comprueba si hay errores de sintaxis de DAG.
Comprueba que las ejecuciones de DAG estén programadas a la hora correcta.
Espera a que se ejecuten los DAGs en el entorno de Cloud Composer 3 y comprueba si se han completado correctamente. Si una ejecución de un DAG se ha completado correctamente, no la reanudes en el entorno de Cloud Composer 2. Si lo haces, se producirá una ejecución de DAG para la misma hora y fecha en tu entorno de Cloud Composer 2.
Si falla la ejecución de un DAG específico, intenta solucionar los problemas del DAG hasta que se ejecute correctamente en Cloud Composer 3.
Monitorizar un entorno de Cloud Composer 3
Monitoriza tu entorno de Cloud Composer 3 para detectar posibles problemas, ejecuciones de DAG fallidas y el estado general del entorno.
Si el entorno de Cloud Composer 3 funciona sin problemas durante un periodo suficiente, puedes eliminar el entorno de Cloud Composer 2.