Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
En esta página, se enumeran los problemas conocidos de Cloud Composer. Algunas correcciones para estos problemas están en curso y estarán disponibles en versiones futuras.
Algunos problemas afectan a versiones anteriores y se pueden solucionar si actualizas el 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 ofrecer asistencia. que no son RFC 1918 para Pods y Services. Actualmente, solo los siguientes lista de rangos que no son RFC 1918 es compatible con Cloud Composer:
- 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
La IU de Airflow no muestra los registros de tareas cuando la serialización de DAG está activada en Composer 1.10.2 y Composer 1.10.3
Habilitar la serialización de DAG en entornos mediante las versiones 1.10.2 y 1.10.3 evita que los registros se muestren en el servidor web de Airflow. Actualiza a la versión 1.0.4 (o posterior) para solucionar este problema.
Error intermitente de tareas durante la programación en Cloud Composer
El problema se observa en Airflow Scheduler para la instancia de la tarea durante la ejecución de la tarea. Sin embargo, los registros no explican la causa de la falla de la tarea y Airflow Worker y Airflow Scheduler se veían relativamente en buen estado.
Es posible que el mensaje de error en Airflow Scheduler sea similar al siguiente:
Executor reports task instance <TaskInstance: xx.xxxx scheduled__2022-04-21T06:00:00+00:00 [queued]> finished (failed) although the task says its queued. (Info: None) Was the task killed externally?
O bien, puede haber un error en los trabajadores de Airflow similar al siguiente error:
Log file is not found: gs://$BUCKET_NAME/logs/$DAG_NAME/$TASK_NAME/2023-01-25T05:01:17.044759+00:00/1.log.
The task might not have been executed or worker executing it might have finished abnormally (e.g. was evicted).
Para garantizar la solidez contra esos errores derivados de un problema antiguo en Airflow, se recomienda implementar de forma proactiva estrategias de reintento adecuadas a nivel de la tarea y del DAG. Con la incorporación de estas medidas, el sistema puede mitigar eficazmente el impacto de estos errores, lo que mejora la confiabilidad y resiliencia generales del flujo de trabajo.
No se admite Workload Identity de GKE
Este problema solo se aplica a los entornos de Cloud Composer 1. Cloud Composer 2 entornos usan Workload Identity.
No puedes activar Workload Identity para
Clústeres del entorno de Cloud Composer. Como resultado, es posible que veas
WORKLOAD_IDENTITY_DISABLED
hallazgo en Security Command Center.
Las etiquetas de entorno que se agregan durante una actualización no se propagan por completo
Las etiquetas de entorno actualizadas no se aplican a las VMs de Compute Engine. Como solución alternativa, esas etiquetas se pueden aplicar de forma manual.
Actualizaciones de GKE en el contexto del problema CVE-2020-14386
Estamos trabajando para abordar las CVE-2020-14386 una vulnerabilidad para todos los entornos de Cloud Composer. Como parte del todos los clústeres de GKE existentes de Cloud Composer se actualizarán una versión más reciente.
Los clientes que decidan abordar la vulnerabilidad de inmediato pueden actualizar Clúster de GKE de Composer siguiendo estas instrucciones con las siguientes consideraciones:
Paso 1: Si ejecutas una versión de Cloud Composer anterior a 1.7.2, deberás actualizar a una versión más reciente de Cloud Composer. Si ya cuentas con la versión 1.7.2 o superior, ve al siguiente punto.
Paso 2. Actualiza el clúster de GKE (instancia principal y nodos) a la última versión del parche 1.15 que contiene la corrección para esta vulnerabilidad.
Los registros de tareas de Airflow no están disponibles en el servidor web de Airflow después de actualizar de Airflow 1.9.0 a Airflow 1.10.x.
Airflow 1.10.x introdujo cambios incompatibles con versiones anteriores en la denominación para archivos de registro. Se agrega la información de zona a los nombres de registro de de Airflow de Google Cloud.
Airflow 1.9.0 almacena y espera que los nombres de registro tengan el siguiente formato: BUCKET/logs/DAG/2020-03-30T10:29:06/1.log
. Airflow 1.10.x almacena y espera que los nombres de registro tengan el siguiente formato: BUCKET/logs/DAG/2020-03-30T10:29:06+00:00/1.log
Como resultado, si actualizas de Airflow 1.9.0 a Airflow 1.10.x y deseas leer el registro de una tarea ejecutada con Airflow 1.9.0, el servidor web de Airflow mostrará el siguiente mensaje de error: Unable to read remote log from BUCKET/logs/DAG/2020-03-30T10:29:06+00:00/1.log
Solución alternativa: Cambia el nombre de los registros que generó Airflow 1.9.0 en el depósito de Cloud Storage con el siguiente formato: BUCKET/logs/DAG/2020-03-30T10:29:06+00:00/1.log
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 fallará si 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 Consola de Google Cloud 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 de Deployment Manager para administrar recursos de Google Cloud protegidos por Controles del servicio de VPC
Composer usa 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 es necesario que realices ninguna acción de tu parte. si estás usando Composer y no usas Deployment Manager directamente para administrar los recursos de Google Cloud que se mencionan en el anuncio.
No se puede borrar un entorno después de que se borra su clúster de GKE
Si borras el clúster 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 de GKE ya fue borrado, sigue estos pasos:
Abre la página Deployment Manager en la consola de Google Cloud.
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
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.
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 las APIs de Identity-Aware Proxy agregadas al perímetro de los Controles del servicio de VPC
En los proyectos que tienen habilitados los Controles del servicio de VPC,
la cuenta de cloud-airflow-prod@system.gserviceaccount.com
requiere que se indique
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 API de Identity-Aware Proxy TCP al perímetro de seguridad.
Agrega la cuenta de servicio
cloud-airflow-prod@system.gserviceaccount.com
como miembro del perímetro de seguridad mediante la siguiente configuración en el archivo de condiciones YAML:- members: - serviceAccount:cloud-airflow-prod@system.gserviceaccount.com
La creación del entorno de Cloud Composer 1 falla cuando se habilita la política compute.requireOsLogin
Si estableces la política compute.requireOsLogin
como true
en tu proyecto,
Las operaciones de creación del entorno de Cloud Composer 1 v1 fallan.
Para crear entornos de Cloud Composer 1, inhabilita esta política en tu en un proyecto final.
Para obtener más información sobre esta política de la organización, consulta Restricciones de la política de la organización.
La creación o actualización del entorno de Cloud Composer falla cuando se inhabilita compute.vmExternalIpAccess
.
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 las restricciones de las políticas de la organización.
La creación del entorno de Cloud Composer falla cuando la política compute.vmCanIpForward
está inhabilitada.
Los entornos de Cloud Composer 1 creados en el modo que no es nativo de la VPC (con alias de IP) requieren esta política para permitir la creación de VM con la función habilitada de “reenvío de IP”. Para obtener más información sobre esta política de la organización, consulta las 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. Estas sincronizaciones se realizan de forma independiente. 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.
Como solución alternativa, los entornos de Airflow 2 en Cloud Composer 1.17.0-preview.9 y versiones posteriores 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.
Para usar la solución alternativa a este problema en Airflow 1, haz lo siguiente:anula core-default_task_retries
Airflow: Opción de configuración y configúrala en un número mayor o igual que 2
.
La tarea falla debido al error “Error de SO: [Errno 5] Error de entrada/salida” en las versiones 1.10.15 o anteriores de Airflow
Un error en las versiones de Airflow 1 hace que las tareas se coloquen en la cola de Redis dos veces en casos excepcionales.
A veces, puede generar una condición de carrera en el archivo de registro y una falla posterior de la tarea. Las tareas fallan con OSError: [Errno 5] Input/output error
en Cloud Logging y Task is in the 'running' state which is not a valid state for execution.
en el registro de intentos de la tarea.
Este error se corrige en Airflow 2. Si encuentras este problema en Airflow 1 en una tarea de larga duración, aumenta el valor de la opción de configuración de Airflow [celery_broker_transport_options]visibility_timeout
(el valor predeterminado). es 604800
para Composer 1.17.0, 21600
para entornos anteriores). Para tareas de corta duración, considera agregar reintentos adicionales a las tareas afectadas o migrar tu entorno a Airflow 2.
Los operadores de Dataproc/Dataflow fallan debido al error Negsignal.SIGSEGV
Este es un problema intermitente de la biblioteca grcpio
, cuando se usa desde un trabajador de Celery. Este problema afecta a Airflow 1.10.14 y versiones posteriores.
La solución alternativa es cambiar la estrategia de sondeo grpcio
y agregar la siguiente variable de entorno a tu entorno: GRPC_POLL_STRATEGY=epoll1
. Esta solución alternativa ya se aplicó en Cloud Composer 1.17.1 y versiones posteriores.
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.
Actualizaciones de GKE en el contexto del problema de seguridad CVE-2021-25741
Todos los clústeres de GKE existentes de Cloud Composer se actualizarán automáticamente a versiones más recientes de GKE con una solución para los problemas descritos en CVE-2021-25741.
Si deseas abordar esta vulnerabilidad de inmediato, actualiza el clúster de GKE de tu entorno mediante las instrucciones para actualizar un clúster.
Si tienes un entorno de Cloud Composer 1 y una versión de GKE 1.18.x o anterior, actualiza a la versión 1.18.20-gke.4501.
Si tienes un entorno de Cloud Composer 1 y una versión de GKE 1.19.x, actualiza a 1.19.14-gke.301.
Si tienes un entorno de Cloud Composer 2 y una versión de GKE 1.21.x, actualiza a 1.21.4-gke.301.
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), haz lo siguiente: Cloud Composer realizó una investigación detallada y creemos que Cloud Composer no es vulnerable a este exploit.
Los programadores o trabajadores de Airflow pueden experimentar problemas cuando acceden al bucket de Cloud Storage del entorno
Cloud Composer usa gcsfuse para acceder a la carpeta /data
en el
a través del bucket de un entorno de
entorno y para guardar registros de tareas de Airflow en el directorio /logs
(si
habilitado). Si gcsfuse está sobrecargado o el bucket del entorno no está disponible,
Es posible que experimentes fallas en la instancia de la tarea de Airflow y veas
Hay Transport endpoint is not connected
de errores en los registros de Airflow.
Soluciones:
- Inhabilitar 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 aumentar la cantidad de trabajadores de Airflow. - Reduce la cantidad de registros producidos en el código del DAG.
- Sigue las recomendaciones y prácticas recomendadas para con la implementación de DAG y habilitar reintentos de tareas.
En ocasiones, es posible que la IU de Airflow no vuelva a cargar un complemento una vez que se cambie.
Si un complemento consta de muchos archivos que importan otros módulos, el complemento Es posible que la IU de Airflow no pueda reconocer el hecho de que un complemento debe y se volvió a cargar. En ese caso, es necesario activar un reinicio del servidor web de Airflow. Puedes hacerlo agregando una variable de entorno o a través de la instalación o desinstalación de dependencias de PYPI. También puedes reiniciar el servidor web de Airflow.
Problemas intermitentes durante la comunicación con la base de datos de metadatos de Airflow
Este problema conocido solo se aplica a Cloud Composer 1.
Algunos entornos más antiguos de Cloud Composer 1 (1.16.3 o anteriores) creados antes 12 de agosto de 2021 podría experimentar problemas transitorios relacionados con la comunicación con bases de datos de metadatos de Airflow.
Si experimentas este problema, en los registros de tareas de Airflow verás el siguiente mensaje de error:
"Can't connect to MySQL server on 'airflow-sqlproxy-service.default.svc.cluster.local' (104)"
El equipo de Cloud Composer trabaja para resolver este problema. Mientras tanto, Si crees que este problema te afectó mucho, puedes hacer lo siguiente: para eliminarlo:
- En la consola de Google Cloud, ve a la página Configuración del entorno. de los entornos afectados de Cloud Composer.
- Sigue el vínculo Ver detalles del clúster para navegar. al clúster de GKE subyacente del entorno.
Navega a la pestaña Nodos y haz clic en el grupo predeterminado visible en la sección Grupos de nodos.
.
Figura 1: default-pool en la lista de grupos de nodos (haz clic para ampliar) Haz clic en Editar, en la parte superior de la página.
Cambia el tipo de imagen a Container-Optimized OS con containerd y guarda la configuración. como se muestra a continuación.
.
Figura 2: Cambia el tipo de imagen del grupo de nodos de Docker a containerd (haz clic para ampliar) Una vez que se envíe el cambio, se reconfigurará el grupo de nodos default-pool use containerd como entorno de ejecución del contenedor. Es posible que fallen algunas de tus tareas de Airflow mientras se reconfigura el grupo de nodos. Si esas tareas tienen configurados reintentos, Airflow volverá a ejecutarlo una vez que se complete la operación en el grupo de nodos.
El clúster del entorno tiene cargas de trabajo en estado No programable
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 del clúster permanezcan en el estado No programable.
Cuando un entorno escala verticalmente, se crean nuevos Pods trabajadores y Kubernetes intenta ejecutarlos. Si no hay recursos libres disponibles para ejecutarlos, los Pods trabajadores se marcan como No programable.
En esta situación, el escalador automático del clúster agrega más nodos, lo cual tarda un par de minutos. Hasta que esté listo, los Pods permanecen en el estado No programable y no ejecutan ninguna tarea.
Cargas de trabajo de DaemonSet no programables llamadas composer-gcsfuse
y composer-fluentd
que no son
en nodos en los que los componentes de Airflow no están presentes no afectan tu entorno.
Si el problema persiste durante mucho tiempo (más de 1 hora), puedes verificar las opciones Registros del escalador automático. Las puedes encontrar 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 toma el escalador automático del clúster: expandir cualquiera noDecisionStatus para ver el motivo por el que no se puede escalar verticalmente el clúster.
Error 504 cuando se accede a la IU de Airflow
Puedes recibir el error 504 Gateway Timeout
cuando accedas a la IU de Airflow. Este error puede tener varias causas:
- Problema de comunicación transitorio. En este caso, intenta acceder a la IU de Airflow más adelante. También puedes reinicia el servidor web de Airflow.
- Problema de conectividad (solo Cloud Composer 2) Si la IU de Airflow es permanente
no disponible y se generan el tiempo de espera o los errores 504, asegúrate de que tu
entorno puede acceder a
*.composer.cloud.google.com
. Si usas Acceso privado a Google y enviar tráfico a través deprivate.googleapis.com
IP virtuales o Controles del servicio de VPC y enviar tráfico a través derestricted.googleapis.com
IP virtuales, asegúrate de que tu Cloud DNS también se configura para*.composer.cloud.google.com
nombres de dominio. - El servidor web de Airflow no responde. Si aparece el error 504, persiste, pero aún puedes acceder a la IU de Airflow en ciertos momentos y, luego, es posible que el servidor web de Airflow no responda porque está sobrecargado. Intenta para aumentar la escala y los parámetros de rendimiento. del servidor web.
Error 502 cuando se accede a la IU de Airflow
El error 502 Internal server exception
indica que la IU de Airflow no puede
entregar las solicitudes entrantes. Este error puede tener varias causas:
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 archivos de configuración que se sincronicen primero. Verificar los registros del servidor web para 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 se mencionan en los mensajes de error todavía están presentes en el bucket del entorno.En caso de su eliminación accidental (por ejemplo, porque una retención se configuró la política), puedes restablecerlos:
Configura una nueva variable de entorno en tu entorno. Puedes usar usar cualquier nombre y valor de variable.
Anular una opción de configuración de Airflow Puedes usar una regla Opción de configuración de Airflow.
Cuando se coloca el cursor sobre la instancia de tarea en la vista de árbol, se genera un TypeError no detectado.
En Airflow 2, es posible que, a veces, no funcione la vista de árbol de la IU de Airflow. de forma correcta cuando se usa una zona horaria no predeterminada. Como solución alternativa, problema, configura la zona horaria de manera explícita en la IU de Airflow.
La IU de Airflow en Airflow 2.2.3 o versiones anteriores es vulnerable a CVE-2021-45229
Como se indica en CVE-2021-45229,
“Activa el DAG con la configuración” pantalla era susceptible 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 compatible con 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 de clústeres del entorno de Los trabajadores de Airflow tienen el estado
CrashLoopBackOff
y no se ejecutan tareas. También puedes ver las advertencias deOOMKilling
que se generan si afectados por este problema.Este problema puede impedir las actualizaciones del entorno.
Causa:
- Si usas un valor personalizado para
[celery]worker_concurrency
Airflow configuración de la memoria y de la memoria personalizada para los trabajadores de Airflow, puede experimentar este problema cuando el consumo de recursos se acerca al límite. - Los requisitos de memoria del trabajador de Airflow en Airflow 2.6.3 con Python 3.11 son del 10% 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 del 30% es más alta en comparación con los trabajadores en Airflow 2.2 o Airflow 2.1.
Soluciones:
- Quita la anulación para
worker_concurrency
para que Cloud Composer calcula este valor automáticamente. - Si usas un valor personalizado para
worker_concurrency
, establécelo en un valor más bajo. Puedes usar la valor calculado automáticamente como punto de partida. - Como alternativa, puedes aumentar la cantidad de memoria disponible para Airflow trabajadores.
- Si no puedes actualizar tu entorno a una versión posterior debido a esto problema, aplique una de las soluciones propuestas antes de realizar la actualización.
Activación de DAG a través de redes privadas con Cloud Functions
Activar DAG con Cloud Functions a través de redes privadas con el uso de El conector de VPC no es compatible con Cloud Composer.
Recomendación: Usa Cloud 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.
Problema con los comandos del compositor de gcloud en la versión 410.0.0.
En el archivo 410.0.0 de gcloud, los siguientes comandos de Cloud Composer:
gcloud composer environments run
gcloud composer environments list-packages
devolverá un código de error distinto de cero y mostrará este mensaje de error:
(ERROR: gcloud crashed (TypeError): 'NoneType' object is not callable)
Este comportamiento se produce además de los resultados normales que produce el de gcloud y no afecta su funcionalidad.
Si este problema no afecta tus operaciones, puedes seguir usando la versión 410.0.0 e ignorar el mensaje de error incorrecto. Si necesitas usar la versión 410.0.0 y utilizas el comando de gcloud de manera programática, implementa una lógica adicional para ignorar el código de error que no sea cero y la información sobre el seguimiento de pila del error en el resultado. También puedes consultar la sección Solución para ver otras soluciones.
Solución
- Abstente de actualizar a la versión 410.0.0. Usa la versión 409.0.0 o una anterior.
- Si ya realizaste la actualización, cambia a una versión anterior (por ejemplo, 409.0.0). Para obtener más información, consulta Usa archivos con versión.
Carpetas vacías en Scheduler y Workers
Cloud Composer no quita de forma activa las carpetas vacías de Airflow. trabajadores y programadores. Estas entidades podrían crearse como resultado del entorno proceso de sincronización de buckets cuando estas carpetas existían en el bucket y, con el tiempo, fueron eliminados.
Recomendación: Ajusta tus DAG de modo que estén preparados para omitir tales tareas individuales.
Con el tiempo, estas entidades se quitan de los almacenamientos locales de los programadores de Airflow. y trabajadores cuando se reinician estos componentes (p.ej., como resultado del escalamiento) operaciones de inactividad o mantenimiento en el clúster de Cloud Composer).
Compatibilidad con Kerberos
Cloud Composer aún no es compatible con la configuración de Kerberos de Airflow.
Compatibilidad con clases de procesamiento en Cloud Composer 2
Cloud Composer 2 solo es compatible con funciones de uso general compute class. Significa que los Pods en ejecución que solicitan otras clases de procesamiento (como Balanced o Scale-Out) no disponible.
La clase de uso general permite Pods en ejecución que solicitan hasta 110 GB de de memoria y hasta 30 CPU (como se describe en Solicitudes de Clase Max de Compute.
Si quieres usar una arquitectura basada en ARM o necesitas más CPU y memoria, debes usar una clase de procesamiento diferente, que no se admite en clústeres de 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
ejecutan Pods personalizados que requieren una clase de procesamiento diferente, entonces también deben ejecutarse
en un clúster que no sea de Cloud Composer 2.
Compatibilidad con los operadores de Google Campaign Manager 360
Operadores de Google Campaign Manager en versiones anteriores de Cloud Composer que la 2.1.13 se basan en la API de Campaign Manager 360 v3.5 que dejó de estar disponible y su fecha de desactivación es el 1 de mayo de 2023.
Si usa operadores de Google Campaign Manager, actualice su entorno Cloud Composer 2.1.13 o una versión posterior.
Compatibilidad con los operadores de Google Display & Video 360
Operadores de Google Display & Video 360 en las versiones de Cloud Composer anteriores a la 2.1.13 se basan en la API de Display & Video 360 v1.1 que es obsoleto y su fecha de desactivación es el 27 de abril de 2023.
Si usas operadores de Google Display & Video 360, actualiza tu entorno Cloud Composer 2.1.13 o una versión posterior. Además, es posible que debas cambiar tus DAG los operadores de Google Display & Video 360 dejaron de estar disponibles y se reemplazaron por nuevos.
GoogleDisplayVideo360CreateReportOperator
dejó de estar disponible. En cambio, usaGoogleDisplayVideo360CreateQueryOperator
. Este operador muestraquery_id
en lugar dereport_id
.GoogleDisplayVideo360RunReportOperator
dejó de estar disponible. En cambio, usaGoogleDisplayVideo360RunQueryOperator
. Este operador muestraquery_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
GoogleDisplayVideo360RunQuerySensor
que usaquery_id
y Parámetrosreport_id
.GoogleDisplayVideo360ReportSensor
, que dejó de estar disponible sensor solo requierereport_id
. GoogleDisplayVideo360DownloadReportV2Operator
ahora requierequery_id
yreport_id
.- En
GoogleDisplayVideo360DeleteReportOperator
, no hay cambios pueden afectar tus DAG.
Restricciones de nombres de rangos secundarios
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 2.0.x a 2.5.x es vulnerable a CVE-2023-29247
Si usas una versión anterior a la 2.4.2 de Cloud Composer sospechas de 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 es protegida con la IAM y el control de acceso a la IU de Airflow.
Esto significa que, para explotar la vulnerabilidad de la IU de Airflow, los atacantes que necesites obtener acceso a tu proyecto junto con permisos y roles de IAM.
Solución:
Verifica los permisos y roles de IAM en tu proyecto, como Funciones de Cloud Composer asignadas 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 de Control de acceso a la IU de Airflow de acceso (se trata de un mecanismo separado que proporciona un acceso más detallado) a la IU de Airflow). Asegúrate de que solo los usuarios aprobados puedan acceder. IU de Airflow y de que todos los usuarios nuevos se registren con el rol adecuado.
Considera un endurecimiento adicional con los Controles del servicio de VPC.
El DAG de supervisión de flujo de aire del entorno de Cloud Composer 2 Composer no se vuelve a crear después de su eliminación.
El DAG de supervisión de Airflow no se vuelve a crear automáticamente si el usuario lo borra o se lo mueve desde el bucket en entornos de Composer con composer-2.1.4-airflow-2.4.3.
Solución:
- Este problema se corrigió 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 o temporal para la actualización de un entorno sería copiar el DAG de airflow_monitoring de otro entorno con la misma versión.
Las operaciones de actualización pueden fallar si Sentry está habilitado
Es posible que falle la operación de actualización de un entorno de Cloud Composer
si configuraste Sentry en tu entorno y estableciste [sentry]sentry_on
se establece en true
.
Solución:
- Desactiva Sentry en tu entorno, realiza la actualización y configúralo Vuelve a Sentry.
No es posible reducir el almacenamiento de Cloud SQL
Cloud Composer usa Cloud SQL para ejecutar la base de datos de Airflow. Más del tiempo, el almacenamiento en disco para la instancia de Cloud SQL podría aumentar se escala verticalmente para adaptarse a los datos almacenados por las operaciones de Cloud SQL cuando La base de datos de Airflow crece.
No es posible reducir la escala verticalmente del tamaño del disco de Cloud SQL.
Como solución alternativa, si quieres usar el 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 filas de manera física cuando se borran o se actualizan. sino que las marca como "tuplas muertas". para mantener y evitar el bloqueo de transacciones simultáneas.
MySQL y Postgres implementan mecanismos de recuperación de espacio después de borrarlos registros.
Si bien es posible forzar a la base de datos a recuperar espacio en disco que no se usa, es una operación que requiere muchos recursos y que además bloquea la base de datos, lo que hace Cloud Composer no está disponible. Por lo tanto, te recomendamos que te bases en el mecanismos de construcción para recuperar el espacio no utilizado.
Acceso bloqueado: error de autorización
Si este problema afecta a un usuario, el
El cuadro de diálogo Acceso bloqueado: Error de autorización contiene la
Error 400: admin_policy_enforced
mensaje.
Si aparece el ícono Controles de la API > Apps de terceros no configuradas > La opción No permitir que los usuarios accedan a apps de terceros es habilitar en Google Workspace y Apache Airflow en La app de Cloud Composer no se permite explícitamente, los usuarios no pueden acceder a la IU de Airflow, a menos que permitan explícitamente la aplicación.
Para permitir el acceso, sigue los pasos que se indican en Permite el acceso a la IU de Airflow en Google Workspace.
Las instancias de tareas que se completaron con éxito en el pasado se marcaron como CON ERRORES
En algunas circunstancias y situaciones poco comunes, las instancias de tareas de Airflow que tuvieron éxito
en el pasado se pueden marcar como FAILED
.
Si ocurre, por lo general, se activó a partir de una actualización del entorno o una operación de actualización o el mantenimiento de GKE.
Nota: El problema en sí no indica ningún problema ambiental. no provoca 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 cuando se comunican con otras partes de la configuración de Cloud Composer.
En casos muy poco frecuentes, la lentitud de la comunicación con Compute Engine El servidor de metadatos podría provocar que los componentes de Airflow no funcionen de manera óptima. Por ejemplo, si se reinicia el programador de Airflow, las tareas de Airflow pueden necesitar o el tiempo de inicio de la tarea podría ser mayor.
Síntomas:
Los siguientes errores aparecen en los componentes de Airflow registros (como Airflow programadores, trabajadores o el servidor web):
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:
Configura la siguiente variable de entorno: GCE_METADATA_TIMEOUT=30
.
La carpeta /data no está disponible en el servidor web de Airflow.
En Cloud Composer 2, el servidor web de Airflow está diseñado para ser mayormente de solo lectura
y Cloud Composer no sincroniza la carpeta data/
.
a este componente.
Es posible que, a veces, quieras compartir archivos comunes entre todos los Airflow de Google Cloud, incluido el servidor web de Airflow.
Solution:
Une los archivos que se compartirán con el servidor web en un módulo de PYPI. instálalo como paquete PYPI normal. Después de instalar el módulo de PYPI en el entorno, los archivos se agregan a las imágenes de Airflow componentes y están disponibles para ellos.
Agrega archivos a la carpeta
plugins/
. Esta carpeta está sincronizada con el servidor web de Airflow.
Tiempos de análisis de DAG no continuos y diagramas de tamaño de la bolsa del DAG en la supervisión
Tiempos de análisis de DAG no continuos y diagramas de tamaño de la bolsa del DAG en la supervisión panel indican problemas con tiempos de análisis de DAG prolongados (más de 5 minutos).
![Tiempos de análisis y tamaño de los paquetes del DAG de Airflow que muestran una serie de intervalos no continuos](https://cloud.google.com/static/composer/docs/images/composer-non-continuous-dag-parse-times.png?authuser=2&hl=es-419)
Solución: Recomendamos que el tiempo total de análisis del DAG sea inferior a 5 minutos. Para reducir el DAG tiempo de análisis, sigue los lineamientos de escritura de DAG.
¿Qué sigue?
- Solución de problemas de creación de entornos
- Soluciona problemas de los DAG
- Solución de problemas del programador de Airflow