Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
En esta página se explica cómo se puede actualizar un entorno.
Acerca de las operaciones de actualización
Cuando cambias los parámetros de tu entorno, como especificar nuevos parámetros de escalado y rendimiento o instalar paquetes PyPI personalizados, tu entorno se actualiza.
Una vez completada esta operación, los cambios estarán disponibles en tu entorno.
En un solo entorno de Cloud Composer, solo puedes iniciar una operación de actualización a la vez. Debes esperar a que se complete una operación de actualización para iniciar otra operación en el entorno.
Límites de CPU de los activadores
La versión 2.4.4 de Cloud Composer introduce un enfoque de escalado del rendimiento diferente para el componente activador de Airflow, que se aplica a todas las versiones de Cloud Composer 2.
Antes de la versión 2.4.4, los entornos de Cloud Composer podían usar un máximo de 1 o 2 activadores. Después del cambio, puedes tener hasta 10 activadores por entorno, pero cada activador está limitado a un máximo de 1 vCPU.
Las operaciones de actualización del entorno fallan si el entorno está configurado con más de 1 vCPU por activador. Debes ajustar la configuración para cumplir el límite de 1 vCPU si quieres actualizar otros componentes.
Para obtener más información, consulta estos artículos:
- Configurar la asignación de recursos del activador
- Ajustar el recuento de activadores
- Solucionar problemas de actualización del entorno: se ha superado la CPU del activador
Cómo afectan las actualizaciones a las tareas de Airflow en ejecución
Cuando ejecutas una operación de actualización, es posible que los programadores y los trabajadores de Airflow de tu entorno deban reiniciarse. En este caso, se finalizarán todas las tareas que se estén ejecutando. Una vez completada la operación de actualización, Airflow programa estas tareas para que se vuelvan a intentar, en función de cómo configures los reintentos de tus DAGs.
Los siguientes cambios provocan la finalización de la tarea de Airflow:
- Actualizar tu entorno a una nueva versión.
- Añadir, cambiar o eliminar paquetes de PyPI personalizados.
- Cambiar las variables de entorno de Cloud Composer.
- Añadir o quitar anulaciones de opciones de configuración de Airflow, o cambiar sus valores.
- Cambiar la CPU, la memoria o el almacenamiento de los workers de Airflow.
Reducir el número máximo de trabajadores de Airflow si el nuevo valor es inferior al número de trabajadores que están activos. Por ejemplo, si un entorno tiene tres trabajadores y el máximo se reduce a dos.
Cambiando el modo de resiliencia del entorno.
Los siguientes cambios no provocan la finalización de la tarea de Airflow:
- Crear, actualizar o eliminar un DAG (no una operación de actualización).
- Pausar o reanudar DAGs (no es una operación de actualización).
- Cambiar las variables de Airflow (no es una operación de actualización).
- Cambiar las conexiones de Airflow (no es una operación de actualización).
- Habilitar o inhabilitar la integración de linaje de datos de Dataplex Universal Catalog.
- Cambiando el tamaño del entorno.
- Cambiar el número de programadores.
- Cambiar la CPU, la memoria o el almacenamiento de los programadores de Airflow.
- Cambiar el número de activadores.
- Cambiar la CPU, la memoria o el almacenamiento de los activadores de Airflow.
- Cambiar la CPU, la memoria o el almacenamiento del servidor web de Airflow.
- Aumentar o reducir el número mínimo de trabajadores.
- Reducir el número máximo de trabajadores de Airflow. Por ejemplo, si un entorno ejecuta actualmente dos trabajadores y el máximo se reduce a tres.
- Cambiar las ventanas de mantenimiento.
- Cambiar los ajustes de las capturas programadas.
- Cambiar las etiquetas de los entornos.
Actualizar con Terraform
Ejecuta terraform plan
antes de terraform apply
para ver si Terraform crea un nuevo entorno en lugar de actualizarlo.
Antes de empezar
Comprueba que tu cuenta, la cuenta de servicio de tu entorno y la cuenta de agente de servicio de Cloud Composer de tu proyecto tengan los permisos necesarios:
Tu cuenta debe tener un rol que pueda activar operaciones de actualización del entorno.
La cuenta de servicio de tu entorno debe tener un rol que tenga permisos suficientes para realizar operaciones de actualización.
La cuenta de agente de servicio de Cloud Composer debe tener permisos para crear enlaces entre la cuenta de servicio de tu entorno y la cuenta de servicio de Kubernetes del clúster de tu entorno.
El comando
gcloud composer environments update
finaliza cuando se completa la operación. Puedes usar la marca--async
para no tener que esperar a que se complete la operación.
Actualizar entornos
Para obtener más información sobre cómo actualizar tu entorno, consulta otras páginas de documentación sobre operaciones de actualización específicas. Por ejemplo:
- Anular opciones de configuración de Airflow
- Definir variables de entorno
- Instalar dependencias de Python
Ver los detalles del entorno
Consola
En la Google Cloud consola, ve a la página Entornos.
En la lista de entornos, haz clic en el nombre del entorno. Se abrirá la página Detalles del entorno.
gcloud
Ejecuta el siguiente comando gcloud
:
gcloud composer environments describe ENVIRONMENT_NAME \
--location LOCATION
Sustituye:
ENVIRONMENT_NAME
con el nombre del entorno.LOCATION
con la región en la que se encuentra el entorno.
API
Crea una solicitud de la API environments.get
.
Ejemplo:
GET https://composer.googleapis.com/v1/projects/example-project/
locations/us-central1/environments/example-environment
Terraform
Ejecuta el comando terraform state show
para el recurso de tu entorno.
El nombre del recurso de Terraform de tu entorno puede ser diferente del nombre de tu entorno.
terraform state show google_composer_environment.RESOURCE_NAME
Sustituye:
RESOURCE_NAME
con el nombre del recurso de tu entorno.
Restaurar los cambios de la actualización
En algunas situaciones poco frecuentes, una operación de actualización puede interrumpirse (por ejemplo, debido a un tiempo de espera) y es posible que los cambios solicitados no se reviertan en todos los componentes del entorno (como el servidor web de Airflow).
Por ejemplo, una operación de actualización puede instalar o quitar módulos PyPI adicionales, volver a definir o definir una nueva variable de entorno de Airflow o Cloud Composer, o cambiar algunos parámetros relacionados con Airflow.
Esta situación puede producirse si se activa una operación de actualización mientras se están llevando a cabo otras operaciones, como el escalado automático de un clúster de Cloud Composer o una operación de mantenimiento.
En ese caso, te recomendamos que repitas la operación.
Duración de las operaciones de actualización
La duración de las operaciones de actualización y mejora depende de los siguientes factores:
La mayoría de las operaciones de actualización requieren reiniciar los componentes de Airflow, como los programadores, los trabajadores y los servidores web de Airflow. Después de reiniciar un componente, debe inicializarse. Durante la inicialización, los programadores y los trabajadores de Airflow descargan el contenido de las carpetas
/dags
y/plugins
del segmento del entorno. El proceso de sincronización de archivos con los programadores y los trabajadores de Airflow no es instantáneo y depende del tamaño total y del número de todos los objetos de estas carpetas.Te recomendamos que solo conserves los archivos DAG y de complementos en las carpetas
/dags
y/plugins
(respectivamente) y que elimines el resto de los archivos. Si hay demasiados datos en las carpetas/dags
y/plugins
, la inicialización de los componentes de Airflow puede ralentizarse y, en algunos casos, puede que no sea posible.Te recomendamos que no superes los 30 MB de datos en las carpetas
/dags
y/plugins
, y que no excedas los 100 MB. Para obtener más información, consulta también Gestionar un gran número de DAGs y complementos.El tamaño de la base de datos de Airflow puede aumentar significativamente el tiempo de las operaciones de actualización. Te recomendamos que mantengas el tamaño de la base de datos de Airflow manteniendo la base de datos de Airflow de tu entorno.