Airflow administrado (gen. 3) | Airflow administrado (gen. 2) | Airflow administrado (gen. 1 heredada)
En esta página, se enumeran los problemas conocidos de Managed Airflow. Para obtener información sobre las correcciones de problemas, consulta las notas de la versió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.
La vulnerabilidad de Apache Log4j 2 (CVE-2021-44228) no debería afectar a Managed Airflow
En respuesta a la vulnerabilidad de Apache Log4j 2 (CVE-2021-44228), Managed Airflow realizó una investigación detallada y creemos que no es vulnerable a este exploit.
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.
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 para Airflow administrado [gen. 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 en Airflow administrado (gen. 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 usas 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.tmpoGCS 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.
Al colocar 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.
Carpetas vacías en el programador y los trabajadores
Airflow administrado no quita de forma activa las carpetas vacías de los trabajadores y programadores de Airflow. Es posible que estas entidades se creen 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 la escala o de mantenimiento en el clúster de tu entorno).
Compatibilidad con Kerberos
Airflow administrado no admite la configuración de Kerberos de Airflow.
Compatibilidad con clases de procesamiento en Managed Airflow (2ª gen.) y Managed Airflow (3ª gen.)
Managed Airflow (3ª gen.) y Managed Airflow (2ª gen.) 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 Managed Airflow (Gen 3) ni Managed Airflow (Gen 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 de Airflow no administrado.
No es posible reducir el almacenamiento de Cloud SQL
Airflow administrado 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 escala 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 deseas usar el tamaño de disco más pequeño de Cloud SQL, puedes volver a crear entornos de Airflow administrado 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 en disco no utilizado, esta es una operación que consume muchos recursos y que, además, bloquea la base de datos, lo que hace que Managed Airflow 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 Managed Airflow 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 Cómo permitir 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 contextual de Chrome Enterprise Premium con niveles de acceso que dependen de atributos del dispositivo y no se exime a la app de Apache Airflow en Managed Airflow, 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 Managed Airflow usa el tipo de identidad
ANY_SERVICE_ACCOUNToANY_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.
La carpeta /data no está disponible en el servidor web de Airflow
En Airflow administrado (gen. 2) y Airflow administrado (gen. 3), el servidor web de Airflow está diseñado para ser un componente principalmente de solo lectura, y Airflow administrado 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.
Solución:
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 de tiempos de análisis de DAG no continuos y tamaño de la bolsa de 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 prolongados (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.
Los registros de tareas aparecen con retrasos
Síntoma:
- En Managed Airflow (gen. 3), los registros de tareas de Airflow no aparecen de inmediato y se retrasan unos minutos.
- Es posible que encuentres mensajes
Logs not found for Cloud Logging filteren los registros de Airflow.
Causa:
Si tu entorno ejecuta una gran cantidad de tareas al mismo tiempo, es posible que los registros de tareas se retrasen porque el tamaño de la infraestructura del entorno no es suficiente para procesar todos los registros con la suficiente rapidez.
Soluciones:
- Considera aumentar el tamaño de la infraestructura del entorno para mejorar el rendimiento.
- Distribuye las ejecuciones de DAG a lo largo del tiempo para que las tareas no se ejecuten al mismo tiempo.
Se incrementaron los tiempos de inicio de KubernetesPodOperator y KubernetesExecutor
Los Pods creados con KubernetesPodOperator y las tareas ejecutadas con KubernetesExecutor experimentan tiempos de inicio más largos. El equipo de Managed Airflow está trabajando en una solución y anunciará cuando se resuelva el problema.
Soluciones alternativas:
- Inicia Pods con más CPU.
- Si es posible, optimiza las imágenes (menos capas, tamaño más pequeño).
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 Managed Airflow
Los entornos de Airflow administrado 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 Managed Airflow 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 Airflow administrado y, luego, transferir tus DAGs 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.
No se recopilan los registros de las tareas de Airflow si [core]execute_tasks_new_python_interpreter se establece en True.
Managed Airflow 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.
Se produjo un error al quitar la conexión de red cuando se borró un entorno
Si se borran varios entornos que comparten el mismo adjunto de red al mismo tiempo, algunas operaciones de borrado fallan con un error.
Síntomas:
Se genera el siguiente error:
Got error while removing Network Attachment: <error code>
El código de error informado puede ser Bad request: <resource> is not ready o Precondition failed: Invalid fingerprint.
Posibles soluciones:
Borra los entornos que usan el mismo adjunto de red uno por uno.
Inhabilita la conexión a una red de VPC para tus entornos antes de borrarlos. Recomendamos esta solución alternativa para el borrado automático del entorno.
¿Qué sigue?
- Solución de problemas de creación de entornos
- Soluciona problemas de los DAG
- Solución de problemas del programador de Airflow