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 tu entorno.
Los rangos de direcciones que no son RFC 1918 son compatibles de forma parcial con los Pods y los servicios.
Cloud Composer depende de GKE para proporcionar compatibilidad con direcciones que no son RFC 1918 para Pods y servicios. Solo Cloud Composer admite la siguiente lista de rangos que no son 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 del entorno que se agregan durante una actualización no se propagan completamente
Cuando actualizas las etiquetas del entorno, no se aplican a las VMs de Compute Engine en el clúster del entorno. Como solución alternativa, puedes aplicar las etiquetas de forma manual.
No se pueden crear entornos de Cloud Composer con las restricciones de la política de la organización constraints/compute.disableSerialPortLogging enforced
La creación del entorno de Cloud Composer falla si la política de la organización constraints/compute.disableSerialPortLogging
se aplica en el proyecto de destino.
Diagnóstico
Para determinar si este problema te afectará, sigue este procedimiento:
Ve al menú de GKE en laGoogle Cloud consola. Visita el menú de GKE
Luego, selecciona el clúster recién creado. Verifica 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 alternativas:
Inhabilita la política de la organización en el proyecto en el que se creará el entorno de Cloud Composer.
La política de la organización siempre se puede inhabilitar a nivel del proyecto, incluso si los recursos superiores (organización o carpeta) la tienen habilitada. Consulta la página Personaliza políticas de restricciones booleanas para obtener más detalles.
Usa filtros de exclusión
Usar un filtro de exclusión para los registros del puerto en serie implica el mismo objetivo que inhabilitar la política de la organización, ya que habrá registros de la consola en serie en Logging. Para obtener más detalles, consulta la página Filtros de exclusión.
Uso del Administrador de implementaciones para administrar Google Cloud recursos protegidos por los Controles del servicio de VPC
Las versiones 2.0.x de Cloud Composer 1 y Cloud Composer 2 usan el Administrador de implementaciones para crear componentes de entornos de Cloud Composer.
Es posible que en diciembre de 2020 se le haya informado que podría necesitar realizar una configuración adicional en los Controles del servicio de VPC para poder usar Deployment Manager a fin de administrar recursos protegidos por los Controles del servicio de VPC.
Queremos aclarar que no se requiere ninguna acción de tu parte si usas Cloud Composer y no usas Deployment Manager directamente para administrar los recursos Google Cloud mencionados en el anuncio de Deployment Manager.
El Administrador de implementaciones muestra información sobre una función no compatible
Es posible que veas la siguiente advertencia en la pestaña Administrador de implementaciones:
The deployment uses actions, which are an unsupported feature. We recommend
that you avoid using actions.
Si las implementaciones del Administrador de implementaciones son propiedad de Cloud Composer, puedes ignorar esta advertencia.
No se puede borrar un entorno después de que se borra su clúster
Este problema se aplica a las versiones 2.0.x de Cloud Composer 1 y Cloud Composer 2.
Si borras el clúster de GKE de tu entorno antes de que se ejecute, los intentos de borrar tu entorno generarán el siguiente error:
Got error "" during CP_DEPLOYMENT_DELETING [Rerunning Task. ]
Para borrar un entorno cuando su clúster ya fue borrado, sigue estos pasos:
En la consola de Google Cloud , ve a la página Deployment Manager.
Busca todas las implementaciones marcadas con etiquetas:
goog-composer-environment:<environment-name>
goog-composer-location:<environment-location>
Deberías ver dos implementaciones marcadas con las etiquetas descritas:
- Una implementación llamada
<environment-location>-<environment-name-prefix>-<hash>-sd
- Una implementación llamada
addons-<uuid>
Borra de forma manual los recursos que siguen apareciendo en estas dos implementaciones y existen en el proyecto (por ejemplo, temas y suscripciones de Pub/Sub). Para ello, deberás hacer lo siguiente:
Selecciona las implementaciones.
Haz clic en Borrar.
Selecciona la opción Borrar 2 implementaciones y todos los recursos que crearon, como VM, balanceadores de cargas y discos, y haz clic en Borrar todo.
La operación de eliminación falla, pero se borran los recursos restantes.
Borra las implementaciones mediante una de estas opciones:
En la consola de Google Cloud , vuelve a seleccionar ambas implementaciones. Haz clic en Borrar y, luego, selecciona la opción Borrar 2 implementaciones, pero conserva los recursos que crearon.
Ejecuta un comando de gcloud para borrar las implementaciones 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 pertenecen 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 DAG de Airflow ni al procesamiento de tareas.
Trabajamos a fin de mejorar el servicio de Cloud Composer para quitar estas advertencias de los registros de Airflow.
La creación del entorno falla en proyectos con APIs de Identity-Aware Proxy agregadas al perímetro de Controles del servicio de VPC
En los proyectos con los Controles del servicio de VPC habilitados, la cuenta de 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 agregues la API de Cloud Identity-Aware Proxy ni la API de Identity-Aware Proxy TCP al perímetro de seguridad.
Agrega la cuenta de servicio
cloud-airflow-prod@system.gserviceaccount.com
como 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 actualización del 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 que son propiedad de Cloud Composer y están configurados en el modo de IP pública requieren conectividad externa para las VM. Debido a esto, la política compute.vmExternalIpAccess
no puede prohibir la creación de VM con direcciones IP externas. Para obtener más información sobre esta política de la organización, consulta Restricciones de las políticas de la organización.
La primera ejecución del DAG para un archivo DAG subido arroja varias tareas con errores
Cuando subes un archivo DAG, a veces las primeras tareas del primer DAG que se ejecutan para él fallan debido al error Unable to read remote log...
. Este problema ocurre porque el archivo de 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 lo programa para que lo ejecute 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 para una tarea con errores de forma predeterminada. Si una tarea falla, se vuelve a intentar dos veces con intervalos de 5 minutos.
Anuncios sobre la eliminación de la asistencia para las versiones Beta de la API obsoletas de las versiones de GKE
Cloud Composer administra los clústeres de GKE que son de su propiedad. A menos que uses de forma explícita esas API en tus DAG y en tu código, puedes ignorar los anuncios sobre las API obsoletas de GKE. Cloud Composer se encarga de cualquier migración, 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 realizó una investigación detallada y creemos que Cloud Composer no es vulnerable a este exploit.
Es posible que los trabajadores o programadores de Airflow tengan problemas para acceder al bucket de Cloud Storage del entorno.
Cloud Composer usa gcsfuse para acceder a la carpeta /data
en el bucket del entorno y 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 experimentes fallas en las instancias de tareas de Airflow y veas errores de Transport endpoint is not connected
en los registros de Airflow.
Soluciones:
- Inhabilita la función para guardar registros en el bucket 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, en su lugar, aumenta la cantidad de trabajadores de Airflow. - Reduce la cantidad de registros que se producen en el código del DAG.
- Sigue las recomendaciones y las prácticas recomendadas para implementar DAGs y habilitar los reintentos de tareas.
A veces, es posible que la IU 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 IU de Airflow no pueda reconocer el hecho de 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 en el clúster del entorno permanecen en el estado Unschedulable.
Cuando un entorno se expande, se crean nuevos Pods de trabajador y Kubernetes intenta ejecutarlos. Si no hay recursos disponibles para ejecutarlos, los Pods de trabajador se marcan como Unschedulable.
En esta situación, el escalador automático del clúster agrega más nodos, lo que tarda unos 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 donde no hay componentes de Airflow no afectan tu entorno.
Si este problema persiste durante mucho tiempo (más de 1 hora), puedes consultar los registros del escalador automático de clústeres. Puedes encontrarlos en el Visor 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 tomó el escalador automático de clústeres: expande cualquier noDecisionStatus para ver el motivo por el que no se puede escalar verticalmente el clúster.
Error 504 al acceder a la IU de Airflow
Puedes recibir el error 504 Gateway Timeout
cuando accedes a la IU de Airflow. Este error puede deberse a varios motivos:
Problema de comunicación transitorio. En este caso, intenta acceder a la IU de Airflow más tarde. También puedes reiniciar el servidor web de Airflow.
(Solo en Cloud Composer 3) Problema de conectividad. Si la IU 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 para Cloud Composer 2) Problema de conectividad. Si la IU 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 el Acceso privado a Google y envías tráfico a través de las IPs virtuales deprivate.googleapis.com
, o bien los Controles del servicio de VPC y envías tráfico a través de las IPs virtuales derestricted.googleapis.com
, asegúrate de que tu Cloud DNS también esté configurado para los nombres de dominio de*.composer.cloud.google.com
.El servidor web de Airflow no responde. Si el error 504 persiste, pero aún puedes acceder a la IU de Airflow en ciertos momentos, es posible que el servidor web de Airflow no responda porque está sobrecargado. Intenta aumentar los parámetros de rendimiento y escalamiento del servidor web.
Error 502 al acceder a la IU de Airflow
El error 502 Internal server exception
indica que la IU de Airflow no puede atender las solicitudes entrantes. Este error puede deberse a varios motivos:
Problema de comunicación transitorio. Intenta acceder a la IU de Airflow más tarde.
No se pudo iniciar el servidor web. Para comenzar, el servidor web requiere que primero se sincronicen los archivos de configuración. Revisa los registros del servidor web en busca de entradas de registro similares a
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, verifica si los archivos mencionados en los mensajes de error aún están presentes en el bucket del entorno.En caso de que se quiten accidentalmente (por ejemplo, porque se configuró una política de retención), puedes restablecerlos:
Establece 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.
Si se coloca el cursor sobre la instancia de la tarea en la vista de árbol, se arroja un TypeError no detectado
En Airflow 2, es posible que la vista de árbol de la IU de Airflow no funcione correctamente en ocasiones cuando se usa una zona horaria no predeterminada. Como solución alternativa a este problema, configura la zona horaria de forma explícita en la IU de Airflow.
La IU de Airflow en las versiones 2.2.3 o anteriores de Airflow es vulnerable a la CVE-2021-45229
Como se indica en CVE-2021-45229, la pantalla "Trigger DAG with config" era vulnerable a ataques de XSS a través del argumento de consulta origin
.
Recomendación: Actualiza a la versión más reciente de Cloud Composer que admita Airflow 2.2.5.
Los trabajadores requieren más memoria que en las 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 este problema te afecta.Este problema puede impedir las actualizaciones del entorno.
Causa:
- Si usas un valor personalizado para la opción de configuración de
[celery]worker_concurrency
Airflow y parámetros de configuración de memoria personalizados para los trabajadores de Airflow, es posible que experimentes este problema cuando el consumo de recursos se acerque al límite. - Los requisitos de memoria del trabajador de Airflow en Airflow 2.6.3 con Python 3.11 son un 10% más altos 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% más altos en comparación con los trabajadores de Airflow 2.2 o Airflow 2.1.
Soluciones:
- Quita la anulación de
worker_concurrency
para que Cloud Composer calcule este valor automáticamente. - Si usas un valor personalizado para
worker_concurrency
, establécelo en un valor más bajo. Puedes usar el valor calculado automáticamente como punto de partida. - Como alternativa, puedes aumentar la cantidad de memoria disponible para los trabajadores 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 realizar la actualización.
Activación de DAG a través de redes privadas con Cloud Run Functions
Cloud Composer no admite el activador de DAGs con Cloud Run Functions a través de redes privadas con el uso del conector de VPC.
Recomendación: Usa Cloud Run Functions para publicar mensajes en Pub/Sub. Estos eventos pueden activar sensores de Pub/Sub para activar DAG de Airflow o implementar un enfoque basado en operadores diferibles.
Carpetas vacías en el programador y los trabajadores
Cloud Composer no quita de forma activa las carpetas vacías de los trabajadores y programadores de Airflow. Estas entidades se pueden crear como resultado del proceso de sincronización del bucket del entorno cuando estas carpetas existían en el bucket y, finalmente, se quitaron.
Recomendación: Ajusta tus DAG para que estén preparados para omitir esas carpetas vacías.
Estas entidades se quitan de los almacenamientos locales de los programadores y trabajadores de Airflow cuando se reinician estos componentes (por ejemplo, como resultado de operaciones de reducción de escala o mantenimiento en el clúster de tu entorno).
Compatibilidad con Kerberos
Cloud Composer no admite la configuración de Kerberos de Airflow.
Compatibilidad con las clases de procesamiento en Cloud Composer 2 y Cloud Composer 3
Cloud Composer 3 y Cloud Composer 2 solo admiten la clase de procesamiento de uso general. Esto significa que no es posible ejecutar Pods que soliciten otras clases de procesamiento (como Balanced o Scale-Out).
La clase de uso general permite ejecutar Pods que solicitan hasta 110 GB de memoria y hasta 30 CPU (como se describe en Solicitudes máximas de la clase de procesamiento).
Si deseas usar una arquitectura basada en ARM o necesitas más CPU y memoria, debes usar una clase de procesamiento diferente, 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 un clúster diferente que admita la clase de procesamiento seleccionada. Si ejecutas Pods personalizados que requieren una clase de procesamiento diferente, también deben ejecutarse en un clúster que no sea de Cloud Composer.
Asistencia para los operadores de Google Campaign Manager 360
Los operadores de Google Campaign Manager en versiones de Cloud Composer anteriores a la 2.1.13 se basan en la API de Campaign Manager 360 v3.5, que está obsoleta y cuya fecha de baja es el 1 de mayo de 2023.
Si usas operadores de Google Campaign Manager, actualiza tu entorno a la versión 2.1.13 o posterior de Cloud Composer.
Asistencia para los 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 de Display & Video 360 v1.1, que está obsoleta y cuya fecha de baja es el 27 de abril de 2023.
Si usas operadores de Google Display & Video 360, actualiza tu entorno a la versión 2.1.13 o posterior de Cloud Composer. Además, es posible que debas cambiar tus DAG porque algunos de los operadores de Google Display & Video 360 están obsoletos y se reemplazaron por otros nuevos.
- Se dio de baja
GoogleDisplayVideo360CreateReportOperator
. En su lugar, usaGoogleDisplayVideo360CreateQueryOperator
. Este operador devuelvequery_id
en lugar dereport_id
. - Se dio de baja
GoogleDisplayVideo360RunReportOperator
. 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 verificar si un informe está listo, usa el nuevo sensor
GoogleDisplayVideo360RunQuerySensor
que utiliza los parámetrosquery_id
yreport_id
. El sensorGoogleDisplayVideo360ReportSensor
en desuso solo requeríareport_id
. GoogleDisplayVideo360DownloadReportV2Operator
ahora requiere los parámetrosquery_id
yreport_id
.- En
GoogleDisplayVideo360DeleteReportOperator
, no hay cambios que puedan afectar tus DAG.
Restricciones del nombre del rango secundario
CVE-2023-29247 (la página de detalles de la instancia de tarea en la IU es vulnerable a un XSS almacenado)
La IU de Airflow en las versiones de Airflow de la 2.0.x a la 2.5.x es vulnerable a la CVE-2023-29247.
Si usas una versión de Cloud Composer anterior a la 2.4.2 y sospechas que tu entorno podría ser vulnerable al exploit, lee la siguiente descripción y las posibles soluciones.
En Cloud Composer, el acceso a la IU de Airflow está protegido con IAM y control de acceso a la IU de Airflow.
Esto significa que, para aprovechar la vulnerabilidad de la IU 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 IAM en tu proyecto, incluidos los roles de Cloud Composer asignados a usuarios individuales. Asegúrate de que solo los usuarios aprobados puedan acceder a la IU de Airflow.
Verifica los roles asignados a los usuarios a través del mecanismo de control de acceso a la IU de Airflow (este es un mecanismo independiente que proporciona un acceso más detallado a la IU de Airflow). Asegúrate de que solo los usuarios aprobados puedan acceder a la IU de Airflow y de que todos los usuarios nuevos se registren con el rol adecuado.
Considera la posibilidad de aplicar medidas de seguridad adicionales con los Controles del servicio de VPC.
El DAG de supervisión de Airflow del entorno de Cloud Composer 2 no se vuelve a crear después de la eliminación
El DAG de supervisión de Airflow no se vuelve a crear automáticamente si el usuario lo borra o lo mueve del bucket en entornos con composer-2.1.4-airflow-2.4.3.
Solución:
- Esto se solucionó en versiones posteriores, como composer-2.4.2-airflow-2.5.3. El enfoque sugerido es actualizar tu entorno a una versión más reciente.
- Una solución alternativa temporal o alternativa a la actualización del entorno sería copiar el DAG de 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 ajusta para adaptarse a los datos almacenados por las operaciones de Cloud SQL cuando la base de datos de Airflow crece.
No es posible reducir el tamaño del disco de Cloud SQL.
Como solución alternativa, si deseas usar el tamaño de disco más pequeño de Cloud SQL, puedes volver a crear entornos de Cloud Composer con instantáneas.
La métrica de uso del disco de la base de datos no se reduce después de quitar registros de Cloud SQL
Las bases de datos relacionales, como Postgres o MySQL, no quitan físicamente las filas cuando se borran o actualizan. En su lugar, las marca como "tuplas inactivas" para mantener la coherencia de los datos y evitar el bloqueo de transacciones simultáneas.
Tanto MySQL como Postgres implementan mecanismos para recuperar espacio después de que se borran registros.
Si bien es posible forzar a la base de datos a recuperar el espacio de disco no utilizado, esta es una operación que consume muchos recursos y, además, bloquea la base de datos, lo que hace que Cloud Composer no esté disponible. Por lo tanto, se recomienda usar los mecanismos de compilación para recuperar el espacio no utilizado.
Acceso bloqueado: error de autorización
Si este problema afecta a un usuario, el diálogo Acceso bloqueado: Error de autorización contiene el mensaje Error 400: admin_policy_enforced
.
Si la opción Controles de API > Apps de terceros no configuradas > No permitir que los usuarios accedan a ninguna app de terceros está habilitada en Google Workspace y la app de Apache Airflow en Cloud Composer no está permitida de forma explícita, los usuarios no podrán acceder a la IU de Airflow, a menos que permitan la aplicación de forma explícita.
Para permitir el acceso, sigue los pasos que se indican en Permite el acceso a la IU de Airflow en Google Workspace.
Bucle de acceso al acceder a la IU de Airflow
Este problema puede deberse a los siguientes motivos:
Si se usan vinculaciones de acceso adaptado al contexto de Chrome Enterprise Premium con niveles de acceso que dependen de atributos del dispositivo y no se exime la app de Apache Airflow en Cloud Composer, no se podrá acceder a la IU de Airflow debido a un bucle de acceso. Para permitir el acceso, sigue los pasos que se indican en Cómo permitir el acceso a la IU de Airflow en las vinculaciones de acceso adaptado al contexto.
Si se configuran reglas de entrada en un perímetro de Controles del servicio de VPC que protege el proyecto, y la regla de entrada que permite el acceso al servicio de Cloud Composer usa el tipo de identidad
ANY_SERVICE_ACCOUNT
oANY_USER_ACCOUNT
, los usuarios no podrán acceder a la IU de Airflow y terminarán en un bucle de acceso. Para obtener más información sobre cómo abordar esta situación, consulta Permite el acceso a la IU de Airflow en las reglas de entrada de los Controles del servicio de VPC.
Las instancias de tareas que se completaron correctamente en el pasado se marcan como FAILED
En algunas circunstancias y situaciones excepcionales, las instancias de tareas de Airflow que se completaron correctamente en el pasado se pueden marcar como FAILED
.
Si esto sucede, suele deberse a una operación de actualización o actualización del entorno, o bien al mantenimiento de GKE.
Nota: El problema en sí no indica ningún inconveniente en el entorno y no causa ninguna falla real en la ejecución de la tarea.
El problema se solucionó en la versión 2.6.5 o posterior de Cloud Composer.
Los componentes de Airflow tienen problemas para 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 hacer que los componentes de Airflow no funcionen de manera óptima. Por ejemplo, es posible que se reinicie el programador de Airflow, que se deban volver a intentar las tareas de Airflow o que el tiempo de inicio de las tareas sea más largo.
Síntomas:
En los registros de los componentes de Airflow (como los programadores, los trabajadores o el servidor web de Airflow), aparecen los siguientes errores:
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
Solution:
(Recomendado) Actualiza tu entorno a una versión posterior de Cloud Composer. Este problema se corrigió a partir de la versión 2.11.0 de Cloud Composer.
Como solución temporal, puedes configurar la siguiente variable de entorno:
GCE_METADATA_TIMEOUT=30
. Asegúrate de quitar este parámetro de configuración cuando esté todo listo para 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 está diseñado para ser un componente principalmente de solo lectura, y Cloud Composer no sincroniza la carpeta data/
con este componente.
A veces, es posible que desees compartir archivos comunes entre todos los componentes de Airflow, incluido el servidor web de Airflow.
Solution:
Envuelve los archivos que se compartirán con el servidor web en un módulo de PyPI y, luego, instálalo como un paquete de PyPI normal. Después de instalar el módulo de PYPI en el entorno, los archivos se agregan a las imágenes de los componentes de Airflow y están disponibles para ellos.
Agrega archivos a la carpeta
plugins/
. Esta carpeta se sincroniza con el servidor web de Airflow.
Diagramas no continuos de los tiempos de análisis del DAG y del tamaño de la bolsa del DAG en la supervisión
Los diagramas de los tiempos de análisis de DAG no continuos y del tamaño de la bolsa de DAG en el panel de supervisión indican problemas con los tiempos de análisis de DAG largos (más de 5 minutos).

Solución: Te recomendamos que el tiempo total de análisis del DAG sea inferior a 5 minutos. Para reducir el tiempo de análisis del DAG, sigue los lineamientos para escribir DAGs.
Faltan registros de componentes de Cloud Composer en Cloud Logging
Hay un problema en el componente del entorno responsable 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 para un componente de Airflow. El mismo registro sigue disponible a nivel del componente de Kubernetes.
Frecuencia del problema: Muy poco frecuente, esporádico
Causa:
Comportamiento incorrecto del componente de Cloud Composer responsable de subir registros a Cloud Logging.
Soluciones:
Actualiza tu entorno a la versión 2.10.0 o posterior de Cloud Composer.
En versiones anteriores de Cloud Composer, la solución temporal cuando te encuentras con esta situación es iniciar una operación de Cloud Composer que reinicie los componentes para los que falta el registro.
No se admite el cambio del clúster del entorno a la edición de 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.
A partir de diciembre de 2024, el servicio de 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 probaron con GKE Enterprise Edition, y tienen un modelo de facturación diferente.
En el segundo trimestre de 2025, se realizará más comunicación relacionada con la edición GKE Standard en comparación con la edición Enterprise.
Los componentes de Airflow tienen problemas para comunicarse con otras partes de la configuración de Cloud Composer.
En algunos casos, debido a una resolución de DNS fallida, los componentes de Airflow pueden experimentar problemas cuando se comunican con otros componentes de Cloud Composer o con extremos 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.
Soluciones posibles:
Actualiza a Cloud Composer 2.9.11 o
Establece la siguiente variable de entorno:
GCE_METADATA_HOST=169.254.169.254
.
El entorno está en estado ERROR después de que se borró o desactivó la cuenta de facturación del proyecto, o se inhabilitó la API de Cloud Composer
Los entornos de Cloud Composer afectados por estos problemas no se pueden recuperar:
- Después de que se borró o desactivó la cuenta de facturación del proyecto, incluso si se vinculó otra cuenta más tarde
- Después de que la API de Cloud Composer se inhabilitó en el proyecto, incluso si se habilitó más tarde
Para solucionar el problema, puedes hacer lo siguiente:
Aún puedes acceder a los datos almacenados en los buckets de tu entorno, pero ya no se podrán usar los entornos. Puedes crear un nuevo entorno de Cloud Composer y, luego, transferir tus DAG y datos.
Si deseas realizar alguna de las operaciones que hacen que tus entornos no se puedan recuperar, asegúrate de crear una copia de seguridad de tus datos, por ejemplo, creando una instantánea del entorno. De esta manera, puedes crear otro entorno y transferir sus datos cargando esta instantánea.
Advertencias sobre el presupuesto de interrupción de Pods para clústeres de entornos
Puedes ver las siguientes advertencias en la IU de GKE para 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. Trabajamos para evitar que se generen estas advertencias.
Soluciones posibles:
- Ignora estas advertencias hasta que se solucione el problema.
No se puede quitar el valor de un campo en 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 lo intentes, el sistema volverá a la configuración guardada anteriormente.
Soluciones posibles:
Si bien la versión 2.10.4 de Apache Airflow incluye una corrección permanente, existe una solución alternativa temporal para los usuarios de versiones anteriores. Esto implica borrar la conexión y, luego, volver a crearla, específicamente dejando los campos obligatorios vacíos. La interfaz de línea de comandos es el método recomendado para borrar la conexión:
gcloud composer environments run ENVIRONMENT_NAME \
--location LOCATION \
connections delete -- \
CONNECTION_ID
Después de borrar la conexión, vuelve a crearla con la IU de Airflow y asegúrate de que los campos que deseas dejar vacíos queden en blanco. También puedes crear la conexión ejecutando el comando connections add
de la CLI de Airflow con Google Cloud CLI.
No se recopilan los registros de las tareas de Airflow si [core]execute_tasks_new_python_interpreter se establece en True.
Cloud Composer no recopila registros de las tareas de Airflow si la opción de configuración de Airflow [core]execute_tasks_new_python_interpreter
está establecida en True
.
Solución posible:
- Quita la anulación de esta opción de configuración o establece su valor en
False
.
¿Qué sigue?
- Solución de problemas de creación de entornos
- Soluciona problemas de los DAG
- Solución de problemas del programador de Airflow