Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
En esta página se enumeran los problemas conocidos de Cloud Composer. Para obtener información sobre las correcciones de problemas, consulta las notas de la versión.
Algunos problemas afectan a versiones anteriores y se pueden solucionar actualizando el entorno.
Los intervalos de direcciones que no son RFC 1918 se admiten parcialmente en pods y servicios
Cloud Composer depende de GKE para ofrecer compatibilidad con direcciones que no sean RFC 1918 para pods y servicios. En Cloud Composer solo se admite la siguiente lista de intervalos no incluidos en RFC 1918:
- 100.64.0.0/10
- 192.0.0.0/24
- 192.0.2.0/24
- 192.88.99.0/24
- 198.18.0.0/15
- 198.51.100.0/24
- 203.0.113.0/24
- 240.0.0.0/4
Las etiquetas de entorno añadidas durante una actualización no se propagan por completo
Cuando actualizas las etiquetas de un entorno, no se aplican a las VMs de Compute Engine del clúster del entorno. Como solución alternativa, puede aplicar las etiquetas manualmente.
No se pueden crear entornos de Cloud Composer con las restricciones de la política de la organización/compute.disableSerialPortLogging
No se puede crear un entorno de Cloud Composer si la constraints/compute.disableSerialPortLogging
política de organización se aplica al proyecto de destino.
Diagnóstico
Para determinar si te afecta este problema, sigue este procedimiento:
Ve al menú de GKE en la Google Cloud consola. Ir al menú de GKE
A continuación, selecciona el clúster que acabas de crear. Comprueba si se produce el siguiente error:
Not all instances running in IGM after 123.45s.
Expect <number of desired instances in IGM>. Current errors:
Constraint constraints/compute.disableSerialPortLogging violated for
project <target project number>.
Soluciones:
Inhabilita la política de organización en el proyecto en el que se creará el entorno de Cloud Composer.
Una política de organización siempre se puede inhabilitar a nivel de proyecto, aunque los recursos principales (organización o carpeta) la tengan habilitada. Consulta más información en la página sobre cómo personalizar políticas con restricciones booleanas.
Usar filtros de exclusión
Usar un filtro de exclusión para los registros del puerto serie. consigue el mismo objetivo que inhabilitar la política de la organización, ya que habrá registros de la consola serie en Logging. Para obtener más información, consulta la página Filtros de exclusión.
Uso de Deployment Manager para gestionar Google Cloud recursos protegidos por Controles de Servicio de VPC
Las versiones 2.0.x de Cloud Composer 1 y Cloud Composer 2 usan Deployment Manager para crear componentes de entornos de Cloud Composer.
En diciembre del 2020, puede que hayas recibido información sobre la necesidad de llevar a cabo una configuración adicional de Controles de Servicio de VPC para poder usar Deployment Manager y gestionar los recursos protegidos por Controles de Servicio de VPC.
Queremos aclarar que no es necesario que hagas nada si usas Cloud Composer y no utilizas Deployment Manager directamente para gestionar los recursos mencionados en el anuncio de Deployment Manager. Google Cloud
Deployment Manager muestra información sobre una función no admitida
Puede que vea la siguiente advertencia en la pestaña Gestor de implementaciones:
The deployment uses actions, which are an unsupported feature. We recommend
that you avoid using actions.
En el caso de las implementaciones de Deployment Manager propiedad de Cloud Composer, puede ignorar esta advertencia.
No se puede eliminar un entorno después de eliminar su clúster
Este problema se aplica a las versiones 2.0.x de Cloud Composer 1 y Cloud Composer 2.
Si eliminas el clúster de GKE de tu entorno antes que el propio entorno, al intentar eliminar el entorno se producirá el siguiente error:
Got error "" during CP_DEPLOYMENT_DELETING [Rerunning Task. ]
Para eliminar un entorno cuando ya se ha eliminado su clúster, sigue estos pasos:
En la Google Cloud consola, ve a la página Deployment Manager.
Buscar todas las implementaciones marcadas con etiquetas:
goog-composer-environment:<environment-name>
goog-composer-location:<environment-location>
.
Deberían aparecer dos implementaciones marcadas con las etiquetas descritas:
- Un despliegue llamado
<environment-location>-<environment-name-prefix>-<hash>-sd
- Un despliegue llamado
addons-<uuid>
Elimina manualmente los recursos que sigan apareciendo en estos dos despliegues y que estén en el proyecto (por ejemplo, temas y suscripciones de Pub/Sub). Para ello:
Selecciona los despliegues.
Haz clic en Eliminar.
Selecciona la opción Eliminar 2 despliegues y todos los recursos que hayan creado, como VMs, balanceadores de carga y discos y haz clic en Eliminar todo.
La operación de eliminación falla, pero se eliminan los recursos restantes.
Elimina las implementaciones con una de estas opciones:
En la Google Cloud consola, vuelve a seleccionar ambas implementaciones. Haz clic en Eliminar y, a continuación, selecciona la opción Eliminar 2 implementaciones, pero mantener los recursos que hayan creado.
Ejecuta un comando de gcloud para eliminar los despliegues con la política
ABANDON
:gcloud deployment-manager deployments delete addons-<uuid> \ --delete-policy=ABANDON gcloud deployment-manager deployments delete <location>-<env-name-prefix>-<hash>-sd \ --delete-policy=ABANDON
Advertencias sobre entradas duplicadas de la tarea "echo" que pertenece al DAG "echo-airflow_monitoring"
Es posible que veas la siguiente entrada en los registros de Airflow:
in _query db.query(q) File "/opt/python3.6/lib/python3.6/site-packages/MySQLdb/
connections.py", line 280, in query _mysql.connection.query(self, query)
_mysql_exceptions.IntegrityError: (1062, "Duplicate entry
'echo-airflow_monitoring-2020-10-20 15:59:40.000000' for key 'PRIMARY'")
Puedes ignorar estas entradas de registro, ya que este error no afecta al procesamiento de tareas y DAGs de Airflow.
Estamos trabajando para mejorar el servicio Cloud Composer y eliminar estas advertencias de los registros de Airflow.
No se puede crear el entorno en proyectos con APIs de Identity-Aware Proxy añadidas al perímetro de Controles de Servicio de VPC
En los proyectos en los que Controles de Servicio de VPC está habilitado, la cuenta cloud-airflow-prod@system.gserviceaccount.com
requiere acceso explícito en tu perímetro de seguridad para crear entornos.
Para crear entornos, puedes usar una de las siguientes soluciones:
No añadas API de Cloud Identity-Aware Proxy ni API de Identity-Aware Proxy TCP al perímetro de seguridad.
Añade la
cloud-airflow-prod@system.gserviceaccount.com
cuenta de serviciocomo miembro de tu perímetro de seguridad con la siguiente configuración en el archivo de condiciones YAML:- members: - serviceAccount:cloud-airflow-prod@system.gserviceaccount.com
La creación o la actualización de un entorno de Cloud Composer falla cuando la política compute.vmExternalIpAccess está inhabilitada
Este problema se aplica a los entornos de Cloud Composer 1 y Cloud Composer 2.
Los clústeres de GKE propiedad de Cloud Composer configurados en el modo de IP pública requieren conectividad externa para sus VMs. Por este motivo, la política compute.vmExternalIpAccess
no puede prohibir la creación de VMs con direcciones IP externas. Para obtener más información sobre esta política de organización, consulta Restricciones de la política de organización.
La primera ejecución de un archivo DAG subido tiene varias tareas fallidas
Cuando subes un archivo DAG, a veces las primeras tareas del primer DAG que se ejecuta fallan y se produce el error Unable to read remote log...
. Este problema se produce porque el archivo DAG se sincroniza entre el bucket de tu entorno, los trabajadores de Airflow y los programadores de Airflow de tu entorno. Si el programador obtiene el archivo DAG y programa su ejecución por parte de un trabajador, y si el trabajador aún no tiene el archivo DAG, la ejecución de la tarea falla.
Para mitigar este problema, los entornos con Airflow 2 están configurados para realizar dos reintentos de una tarea fallida de forma predeterminada. Si una tarea falla, se vuelve a intentar dos veces con intervalos de 5 minutos.
Anuncios sobre la retirada de la compatibilidad con APIs beta obsoletas de versiones de GKE
Cloud Composer gestiona los clústeres de GKE subyacentes propiedad de Cloud Composer. A menos que uses explícitamente estas APIs en tus DAGs y tu código, puedes ignorar los anuncios sobre las APIs de GKE obsoletas. Cloud Composer se encarga de las migraciones, si es necesario.
Cloud Composer no debería verse afectado por la vulnerabilidad de Apache Log4j 2 (CVE-2021-44228)
En respuesta a la vulnerabilidad de Apache Log4j 2 (CVE-2021-44228), Cloud Composer ha llevado a cabo una investigación detallada y creemos que Cloud Composer no es vulnerable a este exploit.
Los trabajadores o programadores de Airflow pueden tener problemas al acceder al segmento de Cloud Storage del entorno
Cloud Composer usa gcsfuse para acceder a la carpeta /data
del segmento del entorno y para guardar los registros de tareas de Airflow en el directorio /logs
(si está habilitado). Si gcsfuse está sobrecargado o el bucket del entorno no está disponible, es posible que se produzcan errores en las instancias de tareas de Airflow y que aparezcan errores Transport endpoint is not connected
en los registros de Airflow.
Soluciones:
- Inhabilita la opción de guardar registros en el segmento del entorno. Esta opción ya está inhabilitada de forma predeterminada si se crea un entorno con Cloud Composer 2.8.0 o versiones posteriores.
- Actualiza a Cloud Composer 2.8.0 o una versión posterior.
- Reduce
[celery]worker_concurrency
y aumenta el número de trabajadores de Airflow. - Reduce la cantidad de registros que se generan en el código del DAG.
- Sigue las recomendaciones y las prácticas recomendadas para implementar DAGs y habilitar los reintentos de tareas.
Es posible que la interfaz de usuario de Airflow no vuelva a cargar un complemento una vez que se haya cambiado
Si un complemento consta de muchos archivos que importan otros módulos, es posible que la interfaz de usuario de Airflow no pueda reconocer que se debe volver a cargar un complemento. En ese caso, reinicia el servidor web de Airflow de tu entorno.
El clúster del entorno tiene cargas de trabajo en el estado Unschedulable
Este problema conocido solo se aplica a Cloud Composer 2.
En Cloud Composer 2, después de crear un entorno, varias cargas de trabajo del clúster del entorno permanecen en el estado Unschedulable.
Cuando un entorno se amplía, se crean nuevos pods de trabajador y Kubernetes intenta ejecutarlos. Si no hay recursos gratuitos disponibles para ejecutarlos, los pods de trabajador se marcan como no programables.
En esta situación, la herramienta de adaptación dinámica de clústeres añade más nodos, lo que tarda un par de minutos. Hasta que se complete, los pods permanecerán en el estado Unschedulable y no ejecutarán ninguna tarea.
Las cargas de trabajo de DaemonSet no programables llamadas composer-gcsfuse
y composer-fluentd
que no se pueden iniciar en nodos en los que no hay componentes de Airflow no afectan a tu entorno.
Si este problema persiste durante mucho tiempo (más de 1 hora), puede consultar los registros de la herramienta de ajuste automático de clústeres. Puede encontrarlos en el visualizador de registros con el siguiente filtro:
resource.type="k8s_cluster"
logName="projects/<project-name>/logs/container.googleapis.com%2Fcluster-autoscaler-visibility"
resource.labels.cluster_name="<cluster-name>"
Contiene información sobre las decisiones que toma la herramienta de adaptación dinámica de clústeres: despliega cualquier noDecisionStatus para ver el motivo por el que no se puede escalar verticalmente ni reducir el clúster.
Error 504 al acceder a la interfaz de usuario de Airflow
Puedes recibir el error 504 Gateway Timeout
al acceder a la interfaz de usuario de Airflow. Este error puede deberse a varios motivos:
Problema de comunicación transitorio. En ese caso, intenta acceder a la interfaz de usuario de Airflow más tarde. También puedes reiniciar el servidor web de Airflow.
(Solo Cloud Composer 3) Problema de conectividad. Si la interfaz de usuario de Airflow no está disponible de forma permanente y se generan errores de tiempo de espera o 504, asegúrate de que tu entorno pueda acceder a
*.composer.googleusercontent.com
.(Solo Cloud Composer 2) Problema de conectividad. Si la interfaz de usuario de Airflow no está disponible de forma permanente y se generan errores de tiempo de espera o 504, asegúrate de que tu entorno pueda acceder a
*.composer.cloud.google.com
. Si usas Acceso privado a Google y envías tráfico a través de IPs virtualesprivate.googleapis.com
o Controles de Servicio de VPC y envías tráfico a través de IPs virtualesrestricted.googleapis.com
, asegúrate de que tu Cloud DNS también esté configurado para los nombres de dominio*.composer.cloud.google.com
.El servidor web de Airflow no responde. Si el error 504 persiste, pero sigues pudiendo acceder a la interfaz de usuario de Airflow en determinados momentos, es posible que el servidor web de Airflow no responda porque está sobrecargado. Intenta aumentar los parámetros de escala y rendimiento del servidor web.
Error 502 al acceder a la interfaz de usuario de Airflow
El error 502 Internal server exception
indica que la interfaz de Airflow no puede
servir solicitudes entrantes. Este error puede deberse a varios motivos:
Problema de comunicación transitorio. Intenta acceder a la interfaz de usuario de Airflow más tarde.
No se ha podido iniciar el servidor web. Para empezar, el servidor web requiere que se sincronicen los archivos de configuración. Comprueba si en los registros del servidor web hay entradas de registro similares a las siguientes:
GCS sync exited with 1: gcloud storage cp gs://<bucket-name>/airflow.cfg /home/airflow/gcs/airflow.cfg.tmp
oGCS sync exited with 1: gcloud storage cp gs://<bucket-name>/env_var.json.cfg /home/airflow/gcs/env_var.json.tmp
. Si ves estos errores, comprueba si los archivos mencionados en los mensajes de error siguen presentes en el bucket del entorno.Si se eliminan por error (por ejemplo, porque se ha configurado una política de conservación), puedes restaurarlos:
Define una nueva variable de entorno en tu entorno. Puedes usar cualquier nombre y valor de variable.
Anula una opción de configuración de Airflow. Puedes usar una opción de configuración de Airflow que no exista.
Al colocar el cursor sobre una instancia de tarea en la vista de árbol, se produce un error TypeError no detectado
En Airflow 2, es posible que la vista de árbol de la interfaz de usuario de Airflow no funcione correctamente en ocasiones cuando se usa una zona horaria no predeterminada. Para solucionar este problema, configura la zona horaria explícitamente en la interfaz de usuario de Airflow.
La interfaz de usuario de Airflow en las versiones 2.2.3 o anteriores es vulnerable a CVE-2021-45229
Como se indica en CVE-2021-45229, la pantalla "Activar DAG con configuración" era vulnerable a ataques XSS a través del argumento de consulta origin
.
Recomendación: Actualice a la versión más reciente de Cloud Composer que sea compatible con Airflow 2.2.5.
Los workers requieren más memoria que en versiones anteriores de Airflow
Síntomas:
En tu entorno de Cloud Composer 2, todas las cargas de trabajo del clúster del entorno de los trabajadores de Airflow tienen el estado
CrashLoopBackOff
y no ejecutan tareas. También puedes ver las advertencias deOOMKilling
que se generan si te afecta este problema.Este problema puede impedir que se actualicen los entornos.
Causa:
- Si usa un valor personalizado para la opción de configuración de
[celery]worker_concurrency
Airflow y ajustes de memoria personalizados para los trabajadores de Airflow, puede que se produzca este problema cuando el consumo de recursos se acerque al límite. - Los requisitos de memoria de los trabajadores de Airflow en Airflow 2.6.3 con Python 3.11 son un 10 % superiores en comparación con los trabajadores de versiones anteriores.
- Los requisitos de memoria de los trabajadores de Airflow en Airflow 2.3 y versiones posteriores son un 30 % superiores en comparación con los trabajadores de Airflow 2.2 o Airflow 2.1.
Soluciones:
- Elimina la anulación de
worker_concurrency
para que Cloud Composer calcule este valor automáticamente. - Si usa un valor personalizado para
worker_concurrency
, asígnele un valor inferior. Puede usar el valor calculado automáticamente como punto de partida. - Como alternativa, puedes aumentar la cantidad de memoria disponible para los workers de Airflow.
- Si no puedes actualizar tu entorno a una versión posterior debido a este problema, aplica una de las soluciones propuestas antes de actualizar.
Activación de DAGs a través de redes privadas mediante funciones de Cloud Run
Cloud Composer no admite el activador de DAGs con funciones de Cloud Run a través de redes privadas con el uso de conectores de VPC.
Recomendación: Usa Cloud Run Functions para publicar mensajes en Pub/Sub. Estos eventos pueden activar sensores Pub/Sub para que activen DAGs de Airflow o implementen un enfoque basado en operadores aplazables.
Carpetas vacías en el programador y los trabajadores
Cloud Composer no elimina de forma activa las carpetas vacías de los workers y los programadores de Airflow. Estas entidades se pueden crear como resultado del proceso de sincronización de contenedores de entorno cuando estas carpetas existían en el contenedor y se eliminaron posteriormente.
Recomendación: Ajusta tus DAGs para que estén preparados para omitir esas carpetas vacías.
Estas entidades se eliminan de los almacenamientos locales de los programadores y los trabajadores de Airflow cuando se reinician estos componentes (por ejemplo, como resultado de operaciones de reducción de escala o de mantenimiento en el clúster de tu entorno).
Compatibilidad con Kerberos
Cloud Composer no admite la configuración de Kerberos de Airflow.
Compatibilidad con clases de computación en Cloud Composer 2 y Cloud Composer 3
Cloud Composer 3 y Cloud Composer 2 solo admiten la clase de computación de uso general. Esto significa que no se pueden ejecutar pods que soliciten otras clases de computación (como Balanced o Scale-Out).
La clase general-purpose permite ejecutar pods que soliciten hasta 110 GB de memoria y hasta 30 CPUs (tal como se describe en Solicitudes máximas de clase de computación).
Si quieres usar una arquitectura basada en ARM o necesitas más CPU y memoria, debes usar otra clase de computación, que no es compatible con los clústeres de Cloud Composer 3 y Cloud Composer 2.
Recomendación: Usa GKEStartPodOperator
para ejecutar pods de Kubernetes en otro clúster que admita la clase de computación seleccionada. Si ejecutas pods personalizados que requieren una clase de computación diferente, también deben ejecutarse en un clúster que no sea de Cloud Composer.
Asistencia para operadores de Google Campaign Manager 360
Los operadores de Google Campaign Manager de las versiones de Cloud Composer anteriores a la 2.1.13 se basan en la API v3.5 de Campaign Manager 360, que está obsoleta y dejará de estar disponible el 1 de mayo del 2023.
Si usas operadores de Google Campaign Manager, actualiza tu entorno a Cloud Composer 2.1.13 o una versión posterior.
Compatibilidad con operadores de Google Display & Video 360
Los operadores de Google Display & Video 360 en versiones de Cloud Composer anteriores a la 2.1.13 se basan en la API Display & Video 360 v1.1, que está obsoleta y se retirará el 27 de abril del 2023.
Si usas operadores de Google Display & Video 360, actualiza tu entorno a Cloud Composer 2.1.13 o una versión posterior. Además, es posible que tengas que cambiar tus DAGs porque algunos de los operadores de Google Display & Video 360 están obsoletos y se han sustituido por otros nuevos.
GoogleDisplayVideo360CreateReportOperator
está obsoleta. En su lugar, usaGoogleDisplayVideo360CreateQueryOperator
. Este operador devuelvequery_id
en lugar dereport_id
.GoogleDisplayVideo360RunReportOperator
está obsoleta. En su lugar, usaGoogleDisplayVideo360RunQueryOperator
. Este operador devuelvequery_id
yreport_id
en lugar de soloreport_id
, y requierequery_id
en lugar dereport_id
como parámetro.- Para comprobar si un informe está listo, usa el nuevo sensor
GoogleDisplayVideo360RunQuerySensor
que utiliza los parámetrosquery_id
yreport_id
. El sensorGoogleDisplayVideo360ReportSensor
obsoleto solo requeríareport_id
. - Ahora,
GoogleDisplayVideo360DownloadReportV2Operator
requiere los parámetrosquery_id
yreport_id
. - En
GoogleDisplayVideo360DeleteReportOperator
no hay cambios que puedan afectar a tus DAGs.
Restricciones de nombres de intervalos secundarios
CVE-2023-29247 (la página de detalles de la instancia de tarea de la interfaz de usuario es vulnerable a un ataque XSS almacenado)
La interfaz de usuario de Airflow en las versiones de Airflow de la 2.0.x a la 2.5.x es vulnerable a CVE-2023-29247.
Si usas una versión de Cloud Composer anterior a la 2.4.2 y sospechas que tu entorno puede ser vulnerable a la vulnerabilidad, lee la siguiente descripción y las posibles soluciones.
En Cloud Composer, el acceso a la interfaz de usuario de Airflow está protegido con IAM y control de acceso a la interfaz de usuario de Airflow.
Esto significa que, para aprovechar la vulnerabilidad de la interfaz de usuario de Airflow, los atacantes primero deben obtener acceso a tu proyecto junto con los permisos y roles de IAM necesarios.
Solución:
Verifica los permisos y roles de gestión de identidades y accesos de tu proyecto, incluidos los roles de Cloud Composer asignados a usuarios concretos. Asegúrate de que solo los usuarios aprobados puedan acceder a la interfaz de usuario de Airflow.
Verifica los roles asignados a los usuarios mediante el mecanismo de control de acceso a la interfaz de usuario de Airflow (se trata de un mecanismo independiente que proporciona un acceso más granular a la interfaz de usuario de Airflow). Asegúrate de que solo los usuarios aprobados puedan acceder a la interfaz de usuario de Airflow y de que todos los usuarios nuevos se registren con el rol adecuado.
Considera la posibilidad de reforzar la seguridad con Controles de Servicio de VPC.
El DAG de monitorización de Airflow del entorno de Cloud Composer 2 no se vuelve a crear después de eliminarlo
El DAG de monitorización del flujo de aire no se vuelve a crear automáticamente si el usuario lo elimina o lo mueve del bucket en entornos con composer-2.1.4-airflow-2.4.3.
Solución:
- Este problema se ha solucionado en versiones posteriores, como composer-2.4.2-airflow-2.5.3. Lo más recomendable es actualizar tu entorno a una versión más reciente.
- Una solución alternativa o temporal a una actualización del entorno sería copiar el DAG airflow_monitoring de otro entorno con la misma versión.
No es posible reducir el almacenamiento de Cloud SQL
Cloud Composer usa Cloud SQL para ejecutar la base de datos de Airflow. Con el tiempo, el almacenamiento en disco de la instancia de Cloud SQL puede aumentar porque el disco se amplía para adaptarse a los datos almacenados por las operaciones de Cloud SQL cuando crece la base de datos de Airflow.
No es posible reducir el tamaño del disco de Cloud SQL.
Como solución alternativa, si quieres usar el tamaño de disco más pequeño de Cloud SQL, puedes volver a crear entornos de Cloud Composer con capturas.
La métrica Uso de disco de la base de datos no se reduce después de eliminar registros de Cloud SQL
Las bases de datos relacionales, como Postgres o MySQL, no eliminan físicamente las filas cuando se eliminan o actualizan. En su lugar, las marca como "tuplas inactivas" para mantener la coherencia de los datos y evitar que se bloqueen las transacciones simultáneas.
Tanto MySQL como PostgreSQL implementan mecanismos para recuperar espacio después de eliminar registros.
Aunque es posible forzar a la base de datos a reclamar el espacio en disco no utilizado, se trata de una operación que consume muchos recursos y que, además, bloquea la base de datos, lo que hace que Cloud Composer no esté disponible. Por lo tanto, se recomienda usar los mecanismos integrados para recuperar el espacio no utilizado.
Acceso bloqueado: error de autorización
Si este problema afecta a un usuario, el cuadro de diálogo Acceso bloqueado: error de autorización contiene el mensaje Error 400: admin_policy_enforced
.
Si la opción Controles de API > Aplicaciones de terceros no configuradas > No permitir que los usuarios accedan a aplicaciones de terceros está habilitada en Google Workspace y la aplicación Apache Airflow en Cloud Composer no está permitida de forma explícita, los usuarios no podrán acceder a la interfaz de usuario de Airflow a menos que permitan la aplicación de forma explícita.
Para permitir el acceso, sigue los pasos que se indican en Permitir el acceso a la interfaz de Airflow en Google Workspace.
Bucle de inicio de sesión al acceder a la interfaz de usuario de Airflow
Este problema puede deberse a los siguientes motivos:
Si se usan enlaces de acceso contextual de Chrome Enterprise Premium con niveles de acceso que dependen de atributos de dispositivo y no se excluye la aplicación Apache Airflow en Cloud Composer, no se podrá acceder a la interfaz de usuario de Airflow debido a un bucle de inicio de sesión. Para permitir el acceso, sigue los pasos que se indican en Permitir el acceso a la interfaz de usuario de Airflow en las vinculaciones de acceso contextual.
Si se configuran reglas de entrada en un perímetro de Controles de Servicio de VPC que protege el proyecto y la regla de entrada que permite el acceso al servicio Cloud Composer usa el tipo de identidad
ANY_SERVICE_ACCOUNT
oANY_USER_ACCOUNT
, los usuarios no podrán acceder a la interfaz de usuario de Airflow y se quedarán en un bucle de inicio de sesión. Para obtener más información sobre cómo abordar esta situación, consulta Permitir el acceso a la interfaz de usuario de Airflow en las reglas de entrada de Controles de Servicio de VPC.
Instancias de tareas que se completaron correctamente en el pasado y que ahora están marcadas como FALLIDAS
En algunas circunstancias y casos excepcionales, las instancias de tareas de Airflow que se completaron correctamente en el pasado se pueden marcar como FAILED
.
Si esto ocurre, suele deberse a una actualización o una operación de actualización del entorno, o bien al mantenimiento de GKE.
Nota: El problema en sí no indica ningún problema en el entorno y no provoca ningún fallo en la ejecución de las tareas.
El problema se ha solucionado en Cloud Composer 2.6.5 o versiones posteriores.
Los componentes de Airflow tienen problemas al comunicarse con otras partes de la configuración de Cloud Composer
Este problema solo se aplica a las versiones 2.10.2 y anteriores de Cloud Composer 2.
En casos muy excepcionales, la lentitud de la comunicación con el servidor de metadatos de Compute Engine puede provocar que los componentes de Airflow no funcionen de forma óptima. Por ejemplo, es posible que se reinicie el programador de Airflow, que sea necesario volver a intentar ejecutar tareas de Airflow o que el tiempo de inicio de las tareas sea mayor.
Síntomas:
Aparecen los siguientes errores en los registros de los componentes de Airflow (como los programadores, los trabajadores o el servidor web de Airflow):
Authentication failed using Compute Engine authentication due to unavailable metadata server
Compute Engine Metadata server unavailable on attempt 1 of 3. Reason: timed out
...
Compute Engine Metadata server unavailable on attempt 2 of 3. Reason: timed out
...
Compute Engine Metadata server unavailable on attempt 3 of 3. Reason: timed out
Solución:
(Recomendado) Actualiza tu entorno a una versión posterior de Cloud Composer. Este problema se ha corregido a partir de la versión 2.11.0 de Cloud Composer.
Como solución temporal, puedes definir la siguiente variable de entorno:
GCE_METADATA_TIMEOUT=30
. Asegúrate de quitar este ajuste cuando quieras actualizar tu entorno.
La carpeta /data no está disponible en el servidor web de Airflow
En Cloud Composer 2 y Cloud Composer 3, el servidor web de Airflow es un componente de solo lectura y Cloud Composer no sincroniza la carpeta data/
con este componente.
En ocasiones, es posible que quieras compartir archivos comunes entre todos los componentes de Airflow, incluido el servidor web de Airflow.
Solución:
Envuelve los archivos que quieras compartir con el servidor web en un módulo PYPI e instálalo como un paquete PYPI normal. Una vez instalado el módulo PYPI en el entorno, los archivos se añaden a las imágenes de los componentes de Airflow y están disponibles para ellos.
Añade archivos a la carpeta
plugins/
. Esta carpeta se sincroniza con el servidor web de Airflow.
Diagramas de tiempos de análisis de DAG no continuos y de tamaño de bolsa de DAG en la monitorización
Los diagramas de tiempos de análisis de DAGs no continuos y de tamaño de bolsa de DAGs del panel de control de monitorización indican problemas con tiempos de análisis de DAGs largos (más de 5 minutos).

Solución: Te recomendamos que el tiempo total de análisis de los DAGs no supere los 5 minutos. Para reducir el tiempo de análisis de los DAGs, sigue las directrices de escritura de DAGs.
Faltan registros de componentes de Cloud Composer en Cloud Logging
Hay un problema en el componente del entorno encargado de subir los registros de los componentes de Airflow a Cloud Logging. A veces, este error provoca que falte el registro a nivel de Cloud Composer de un componente de Airflow. El mismo registro sigue estando disponible en el nivel de componente de Kubernetes.
Frecuencia del problema: muy rara, esporádica
Causa:
Comportamiento incorrecto del componente de Cloud Composer responsable de subir los registros a Cloud Logging.
Soluciones:
Actualiza tu entorno a la versión 2.10.0 de Cloud Composer o a una posterior.
En versiones anteriores de Cloud Composer, la solución temporal cuando se produce esta situación es iniciar una operación de Cloud Composer que reinicie los componentes de los que faltan los registros.
No se admite cambiar el clúster del entorno a la edición GKE Enterprise
Esta nota se aplica a Cloud Composer 1 y Cloud Composer 2.
El clúster de GKE del entorno de Cloud Composer se crea en GKE Standard Edition.
Desde diciembre del 2024, el servicio Cloud Composer no admite la creación de entornos de Cloud Composer con clústeres en la edición Enterprise.
Los entornos de Cloud Composer no se han probado con GKE Enterprise Edition, que tiene un modelo de facturación diferente.
En el segundo trimestre del 2025, se enviará más información sobre las diferencias entre la edición Standard y la Enterprise de GKE.
Componentes de Airflow que tienen problemas al comunicarse con otras partes de la configuración de Cloud Composer
En algunos casos, debido a un error en la resolución de DNS, es posible que los componentes de Airflow tengan problemas al comunicarse con otros componentes de Cloud Composer o con endpoints de servicio fuera del entorno de Cloud Composer.
Síntomas:
Es posible que aparezcan los siguientes errores en los registros de los componentes de Airflow (como los programadores, los trabajadores o el servidor web de Airflow):
google.api_core.exceptions.ServiceUnavailable: 503 DNS resolution failed ...
... Timeout while contacting DNS servers
o
Could not access *.googleapis.com: HTTPSConnectionPool(host='www.googleapis.com', port=443): Max retries exceeded with url: / (Caused by NameResolutionError("<urllib3.connection.HTTPSConnection object at 0x7c5ef5adba90>: Failed to resolve 'www.googleapis.com' ([Errno -3] Temporary failure in name resolution)"))
o
redis.exceptions.ConnectionError: Error -3 connecting to
airflow-redis-service.composer-system.svc.cluster.local:6379.
Temporary failure in name resolution.
Posibles soluciones:
Actualizar a Cloud Composer 2.9.11 o
Define la siguiente variable de entorno:
GCE_METADATA_HOST=169.254.169.254
.
El entorno está en estado ERROR después de que se haya eliminado o desactivado la cuenta de facturación del proyecto, o bien se haya inhabilitado la API de Cloud Composer
Los entornos de Cloud Composer afectados por estos problemas no se pueden recuperar:
- Después de que se eliminara o desactivara la cuenta de facturación del proyecto, aunque se vinculara otra cuenta más adelante.
- Después de que la API Cloud Composer se inhabilitara en el proyecto, aunque se habilitara más adelante.
Para solucionar el problema, puedes hacer lo siguiente:
Puedes seguir accediendo a los datos almacenados en los contenedores de tu entorno, pero los entornos en sí ya no se pueden usar. Puedes crear un entorno de Cloud Composer y, a continuación, transferir tus DAGs y datos.
Si quieres realizar alguna de las operaciones que hacen que tus entornos sean irrecuperables, asegúrate de crear una copia de seguridad de tus datos. Por ejemplo, puedes crear una instantánea del entorno. De esta forma, puedes crear otro entorno y transferir sus datos cargando esta instantánea.
Advertencias sobre el presupuesto de interrupciones de pods de clústeres de entornos
En la interfaz de usuario de GKE, puedes ver las siguientes advertencias sobre los clústeres de entornos de Cloud Composer:
GKE can't perform maintenance because the Pod Disruption Budget allows
for 0 Pod evictions. Update the Pod Disruption Budget.
A StatefulSet is configured with a Pod Disruption Budget but without readiness
probes, so the Pod Disruption Budget isn't as effective in gauging application
readiness. Add one or more readiness probes.
No es posible eliminar estas advertencias. Estamos trabajando para evitar que se generen estas advertencias.
Posibles soluciones:
- Ignora estas advertencias hasta que se solucione el problema.
No se puede eliminar el valor de un campo de una conexión de Airflow
Causa:
La interfaz de usuario de Apache Airflow tiene una limitación que impide actualizar los campos de conexión a valores vacíos. Cuando intentes hacerlo, el sistema volverá a la configuración guardada anteriormente.
Posibles soluciones:
Aunque la versión 2.10.4 de Apache Airflow incluye una solución permanente, los usuarios de versiones anteriores pueden usar una solución alternativa temporal. Para ello, debes eliminar la conexión y volver a crearla, dejando vacíos los campos obligatorios. La interfaz de línea de comandos es el método recomendado para eliminar la conexión:
gcloud composer environments run ENVIRONMENT_NAME \
--location LOCATION \
connections delete -- \
CONNECTION_ID
Después de eliminar la conexión, vuelve a crearla con la interfaz de usuario de Airflow y asegúrate de que los campos que quieras dejar vacíos estén en blanco. También puedes crear la conexión ejecutando el comando connections add
de la CLI de Airflow con la CLI de Google Cloud.
Los registros de las tareas de Airflow no se recogen si [core]execute_tasks_new_python_interpreter se define como True
Cloud Composer no recoge registros de tareas de Airflow si la opción de configuración de Airflow [core]execute_tasks_new_python_interpreter
está definida como True
.
Solución posible:
- Elimine la anulación de esta opción de configuración o asigne el valor
False
.
Siguientes pasos
- Solucionar problemas de creación de entornos
- Solucionar problemas de DAGs
- Solucionar problemas del programador de Airflow