Managed Airflow (3ª gen.) | Managed Airflow (2ª gen.) | Managed Airflow (legacy, 1ª gen.)
In questa pagina sono elencati i problemi noti di Managed Airflow. Per informazioni sulle correzioni dei problemi, consulta le note di rilascio.
Alcuni problemi riguardano le versioni precedenti e possono essere risolti eseguendo l'upgrade dell'ambiente.
Gli intervalli di indirizzi non RFC 1918 sono parzialmente supportati per pod e servizi
Managed Airflow si basa su GKE per fornire il supporto per gli indirizzi non RFC 1918 per pod e servizi. In Managed Airflow è supportato solo il seguente elenco di intervalli non 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
Le etichette dell'ambiente aggiunte durante un aggiornamento non vengono propagate completamente
Quando aggiorni le etichette dell'ambiente, queste non vengono applicate alle VM di Compute Engine nel cluster dell'ambiente. Per risolvere il problema, puoi applicare le etichette manualmente.
Impossibile creare ambienti Managed Airflow con il vincolo delle policy dell'organizzazione constraints/compute.disableSerialPortLogging applicato
La creazione dell'ambiente Managed Airflow non riesce se la policy dell'organizzazione constraints/compute.disableSerialPortLogging viene applicata al progetto di destinazione.
Diagnosi
Per determinare se questo problema ti riguarda, segui questa procedura:
Vai al menu GKE nella consoleGoogle Cloud . Visita il menu GKE
Quindi, seleziona il cluster appena creato. Verifica la presenza del seguente errore:
Not all instances running in IGM after 123.45s.
Expect <number of desired instances in IGM>. Current errors:
[CONDITION_NOT_MET]: Instance '<generated instance name>' creation failed:
Constraint constraints/compute.disableSerialPortLogging violated for
project <target project number>.
Soluzioni:
Disattiva la policy dell'organizzazione nel progetto in cui verrà creato l'ambiente Managed Airflow.
Una policy dell'organizzazione può essere sempre disabilitata a livello di progetto, anche se è abilitata nelle risorse principali (organizzazione o cartella). Per maggiori dettagli, consulta la pagina Personalizzazione delle policy per i vincoli booleani.
Utilizza i filtri di esclusione
L'utilizzo di un filtro di esclusione per i log della porta seriale raggiunge lo stesso obiettivo della disattivazione della policy dell'organizzazione, poiché in Logging saranno presenti i log della console seriale. Per maggiori dettagli, consulta la pagina Filtri di esclusione.
Utilizzo di Deployment Manager per gestire le risorse Google Cloud protette dai Controlli di servizio VPC
Le versioni 2.0.x di Managed Airflow (Legacy Gen 1) e Managed Airflow (Gen 2) utilizzano Deployment Manager per creare componenti degli ambienti Managed Airflow.
A dicembre 2020, potresti aver ricevuto informazioni sulla necessità di eseguire una configurazione aggiuntiva dei Controlli di servizio VPC per poter utilizzare Deployment Manager per gestire le risorse protette dai Controlli di servizio VPC.
Vogliamo chiarire che non è richiesta alcuna azione da parte tua se utilizzi Managed Airflow e non utilizzi Deployment Manager direttamente per gestire le risorse Google Cloud menzionate nell'annuncio di Deployment Manager.
Deployment Manager visualizza informazioni su una funzionalità non supportata
Nella scheda Deployment Manager potrebbe essere visualizzato il seguente avviso:
The deployment uses actions, which are an unsupported feature. We recommend
that you avoid using actions.
Per i deployment di Deployment Manager di proprietà di Managed Airflow, puoi ignorare questo avviso.
Impossibile eliminare un ambiente dopo l'eliminazione del relativo cluster
Questo problema riguarda le versioni 2.0.x di Managed Airflow (Legacy Gen 1) e Managed Airflow (Gen 2).
Se elimini il cluster GKE dell'ambiente prima dell'ambiente stesso, i tentativi di eliminazione dell'ambiente generano il seguente errore:
Got error "" during CP_DEPLOYMENT_DELETING [Rerunning Task. ]
Per eliminare un ambiente quando il relativo cluster è già stato eliminato:
Nella console Google Cloud , vai alla pagina Deployment Manager.
Trova tutti i deployment contrassegnati con etichette:
goog-composer-environment:<environment-name>goog-composer-location:<environment-location>.
Dovresti visualizzare due deployment contrassegnati con le etichette descritte:
- Un deployment denominato
<environment-location>-<environment-name-prefix>-<hash>-sd - Un deployment denominato
addons-<uuid>
Elimina manualmente le risorse ancora elencate in questi due deployment ed esistenti nel progetto (ad esempio, argomenti e sottoscrizioni Pub/Sub). Ecco come fare:
Seleziona i deployment.
Fai clic su Elimina.
Seleziona l'opzione Elimina 2 deployment e tutte le risorse create, ad esempio VM, bilanciatori del carico e dischi e fai clic su Elimina tutto.
L'operazione di eliminazione non va a buon fine, ma le risorse rimanenti vengono eliminate.
Elimina i deployment utilizzando una di queste opzioni:
Nella console Google Cloud , seleziona di nuovo entrambi i deployment. Fai clic su Elimina, quindi seleziona l'opzione Elimina 2 deployment, ma conserva le risorse create da questi.
Esegui un comando gcloud per eliminare i deployment con la policy
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
Avvisi relativi a voci duplicate dell'attività "echo" appartenente al DAG "echo-airflow_monitoring"
Potresti visualizzare la seguente voce nei log di 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'")
Puoi ignorare queste voci di log, perché questo errore non influisce sull'elaborazione dei DAG e delle attività di Airflow.
Stiamo lavorando per migliorare il servizio Managed Airflow in modo da rimuovere questi avvisi dai log di Airflow.
La creazione dell'ambiente non riesce nei progetti con API Identity-Aware Proxy aggiunte al perimetro dei Controlli di servizio VPC
Nei progetti con i Controlli di servizio VPC abilitati, l'account cloud-airflow-prod@ richiede l'accesso esplicito nel perimetro di sicurezza per creare ambienti.
Per creare ambienti, puoi utilizzare una delle seguenti soluzioni:
Non aggiungere l'API Cloud Identity-Aware Proxy e l'API Identity-Aware Proxy TCP al perimetro di sicurezza.
Aggiungi il account di servizio
cloud-airflow-prod@come membro del perimetro di sicurezza utilizzando la seguente configurazione nel file delle condizioni YAML:- members: - serviceAccount:cloud-airflow-prod@
La creazione o l'upgrade dell'ambiente Managed Airflow non va a buon fine quando la policy compute.vmExternalIpAccess è disabilitata
Questo problema riguarda gli ambienti Managed Airflow (Legacy Gen 1) e Managed Airflow (Gen 2).
I cluster GKE di proprietà di Managed Airflow configurati in modalità IP pubblico richiedono la connettività esterna per le loro VM. Per questo motivo, la policy compute.vmExternalIpAccess non può vietare la creazione di VM con indirizzi IP esterni. Per saperne di più su questa policy dell'organizzazione, consulta Vincoli delle policy dell'organizzazione.
La prima esecuzione del DAG per un file DAG caricato presenta diverse attività non riuscite
Quando carichi un file DAG, a volte le prime attività della prima esecuzione del DAG non vanno a buon fine e viene visualizzato l'errore Unable to read remote log.... Questo problema si verifica perché il file DAG viene sincronizzato tra il bucket dell'ambiente, i worker Airflow e gli scheduler Airflow dell'ambiente. Se lo scheduler riceve il file DAG e ne pianifica l'esecuzione da parte di un worker, ma quest'ultimo non ha ancora il file DAG, l'esecuzione dell'attività non va a buon fine.
Per mitigare questo problema, gli ambienti con Airflow 2 sono configurati per eseguire due nuovi tentativi per un'attività non riuscita per impostazione predefinita. Se un'attività non va a buon fine, viene ripetuta due volte a intervalli di 5 minuti.
Annunci relativi alla rimozione del supporto per le API beta deprecate dalle versioni di GKE
Managed Airflow gestisce i cluster GKE di proprietà di Managed Airflow sottostanti. A meno che tu non utilizzi esplicitamente queste API nei tuoi DAG e nel tuo codice, puoi ignorare gli annunci relativi alle deprecazioni delle API GKE. Managed Airflow si occupa di eventuali migrazioni, se necessario.
Managed Airflow non dovrebbe essere interessato dalla vulnerabilità di Apache Log4j 2 (CVE-2021-44228)
In risposta alla vulnerabilità Apache Log4j 2 (CVE-2021-44228), Managed Airflow ha condotto un'indagine dettagliata e riteniamo che Managed Airflow non sia vulnerabile a questo exploit.
I worker o gli scheduler Airflow potrebbero riscontrare problemi durante l'accesso al bucket Cloud Storage dell'ambiente
Managed Airflow utilizza gcsfuse per accedere alla cartella /data nel bucket dell'ambiente e per salvare i log delle attività Airflow nella directory /logs (se abilitata). Se gcsfuse è sovraccarico o il bucket dell'ambiente non è disponibile,
potresti riscontrare errori delle istanze delle attività Airflow e visualizzare
errori Transport endpoint is not connected nei log di Airflow.
Soluzioni:
- Disattiva il salvataggio dei log nel bucket dell'ambiente. Questa opzione è già disattivata per impostazione predefinita se un ambiente viene creato utilizzando Managed Airflow 2.8.0 o versioni successive.
- Esegui l'upgrade a Managed Airflow 2.8.0 o versioni successive.
- Riduci
[celery]worker_concurrencye aumenta invece il numero di worker Airflow. - Riduci la quantità di log generati nel codice del DAG.
- Segui i consigli e le best practice per l'implementazione dei DAG e attiva i nuovi tentativi delle attività.
A volte l'interfaccia utente di Airflow potrebbe non ricaricare un plug-in dopo che è stato modificato
Se un plug-in è composto da molti file che importano altri moduli, l'interfaccia utente di Airflow potrebbe non essere in grado di riconoscere che un plug-in deve essere ricaricato. In questo caso, riavvia il server web Airflow del tuo ambiente.
Il cluster dell'ambiente contiene workload in stato Non pianificabile
Questo problema noto si applica solo a Managed Airflow (Gen 2).
In Managed Airflow (Gen 2), dopo la creazione di un ambiente, diversi workload nel cluster dell'ambiente rimangono nello stato Non pianificabile.
Quando un ambiente fa lo scale up, vengono creati nuovi pod worker e Kubernetes tenta di eseguirli. Se non sono disponibili risorse libere per eseguirli, i pod worker vengono contrassegnati come non pianificabili.
In questo caso, il gestore della scalabilità automatica dei cluster aggiunge altri nodi, il che richiede un paio di minuti. Fino a quando non viene eseguito, i pod rimangono nello stato Non pianificabile e non eseguono alcuna attività.
I workload DaemonSet non pianificabili denominati composer-gcsfuse e composer-fluentd che non possono essere avviati sui nodi in cui non sono presenti i componenti Airflow non influiscono sul tuo ambiente.
Se il problema persiste per molto tempo (oltre un'ora), puoi controllare i log del gestore della scalabilità automatica dei cluster. Puoi trovarli nel visualizzatore log con il seguente filtro:
resource.type="k8s_cluster"
logName="projects/<project-name>/logs/container.googleapis.com%2Fcluster-autoscaler-visibility"
resource.labels.cluster_name="<cluster-name>"
Contiene informazioni sulle decisioni prese dal gestore della scalabilità automatica dei cluster: espandi qualsiasi noDecisionStatus per vedere il motivo per cui non è possibile eseguire lo scale up o lo scale down del cluster.
Errore 504 durante l'accesso alla UI di Airflow
Puoi ricevere l'errore 504 Gateway Timeout quando accedi all'interfaccia utente di Airflow. Questo errore può avere diverse cause:
Problema di comunicazione temporaneo. In questo caso, prova ad accedere all'interfaccia utente di Airflow in un secondo momento. Puoi anche riavviare il server web Airflow.
(Solo Managed Airflow (Gen 3)) Problema di connettività. Se la UI di Airflow non è disponibile in modo permanente e vengono generati errori di timeout o 504, assicurati che il tuo ambiente possa accedere a
*.composer.googleusercontent.com.(Solo Managed Airflow (2ª gen.)) Problema di connettività. Se la UI di Airflow non è disponibile in modo permanente e vengono generati errori di timeout o 504, assicurati che il tuo ambiente possa accedere a
*.composer.cloud.google.com. Se utilizzi l'accesso privato Google e invii traffico su IP virtualiprivate.googleapis.como Controlli di servizio VPC e invii traffico su IP virtualirestricted.googleapis.com, assicurati che Cloud DNS sia configurato anche per i nomi di dominio*.composer.cloud.google.com.Server web Airflow non reattivo. Se l'errore 504 persiste, ma riesci comunque ad accedere all'interfaccia utente di Airflow in determinati momenti, è possibile che il server web Airflow non risponda perché è sovraccarico. Prova ad aumentare i parametri di scalabilità e prestazioni del server web.
Errore 502 durante l'accesso alla UI di Airflow
L'errore 502 Internal server exception indica che l'interfaccia utente di Airflow non può gestire le richieste in entrata. Questo errore può avere diverse cause:
Problema di comunicazione temporaneo. Prova ad accedere all'interfaccia utente di Airflow più tardi.
Impossibile avviare il server web. Per l'avvio, il server web richiede prima la sincronizzazione dei file di configurazione. Controlla i log del server web per individuare voci di log simili 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. Se trovi questi messaggi di errore, controlla se i file menzionati nei messaggi di errore sono ancora presenti nel bucket dell'ambiente.In caso di rimozione accidentale (ad esempio, perché è stata configurata una policy di conservazione), puoi ripristinarli:
Imposta una nuova variabile di ambiente nel tuo ambiente. Puoi utilizzare qualsiasi nome e valore di variabile.
Esegui l'override di un'opzione di configurazione di Airflow. Puoi utilizzare un'opzione di configurazione di Airflow non esistente.
Errore 500 durante l'accesso alla UI di Airflow dopo l'override di [webserver]analytics_tool
Negli ambienti con Airflow 2, se esegui l'override dell'opzione di configurazione di Airflow [webserver]analytics_tool per instradare i dati anonimi sull'utilizzo dell'interfaccia utente di Airflow a un servizio di analisi (come Google Analytics, Segment, MetaRouter o Matomo), l'accesso all'interfaccia utente di Airflow dopo l'aggiornamento dell'ambiente potrebbe restituire una risposta (500) Internal Server Error, con uno dei seguenti errori nei log del server web Airflow:
airflow.exceptions.AirflowConfigException: section/key [webserver/analytics_id] not found in config
airflow.exceptions.AirflowConfigException: section/key [webserver/analytics_url] not found in config
Quando [webserver]analytics_tool è impostato in Airflow 2, il server web Airflow richiede che anche le opzioni di analisi complementari nella sezione [webserver] siano definite durante il rendering della UI di Airflow.
In Airflow 3, le opzioni di configurazione [webserver]analytics_tool, [webserver]analytics_id e [webserver]analytics_url sono state rimosse.
Soluzioni:
- Rimuovi l'override per l'opzione di configurazione di Airflow
[webserver]analytics_tooloppure - Specifica tutte le opzioni di configurazione di Airflow richieste insieme:
[webserver]analytics_tool[webserver]analytics_id[webserver]analytics_url(obbligatorio in Airflow 2.9 e versioni successive, anche se lo strumento di analisi non utilizza un URL personalizzato)
Il passaggio del mouse sopra l'istanza dell'attività nella visualizzazione ad albero genera un TypeError non rilevato
In Airflow 2, la visualizzazione ad albero nell'interfaccia utente di Airflow potrebbe non funzionare correttamente se viene utilizzato un fuso orario non predefinito. Per risolvere questo problema, configura esplicitamente il fuso orario nell'interfaccia utente di Airflow.
La UI di Airflow in Airflow 2.2.3 o versioni precedenti è vulnerabile a CVE-2021-45229
Come indicato in CVE-2021-45229,
la schermata "Trigger DAG with config" era soggetta ad attacchi XSS
tramite l'argomento di query origin.
Suggerimento: esegui l'upgrade alla versione più recente di Managed Airflow che supporta Airflow 2.2.5.
I worker richiedono più memoria rispetto alle versioni precedenti di Airflow
Sintomi:
Nell'ambiente Managed Airflow (Gen 2), tutti i workload del cluster dell'ambiente dei worker Airflow sono nello stato
CrashLoopBackOffe non eseguono attività. Puoi anche visualizzare gli avvisi diOOMKillinggenerati se il problema ti riguarda.Questo problema può impedire l'upgrade dell'ambiente.
Causa:
- Se utilizzi un valore personalizzato per l'opzione di configurazione di Airflow
[celery]worker_concurrencye impostazioni di memoria personalizzate per i worker Airflow, potresti riscontrare questo problema quando il consumo di risorse si avvicina al limite. - I requisiti di memoria dei worker Airflow in Airflow 2.6.3 con Python 3.11 sono superiori del 10% rispetto ai worker delle versioni precedenti.
- I requisiti di memoria dei worker Airflow in Airflow 2.3 e versioni successive sono superiori del 30% rispetto ai worker in Airflow 2.2 o Airflow 2.1.
Soluzioni:
- Rimuovi l'override per
worker_concurrency, in modo che Managed Airflow calcoli automaticamente questo valore. - Se utilizzi un valore personalizzato per
worker_concurrency, impostalo su un valore inferiore. Puoi utilizzare il valore calcolato automaticamente come punto di partenza. - In alternativa, puoi aumentare la quantità di memoria disponibile per i worker Airflow.
- Se non riesci a eseguire l'upgrade dell'ambiente a una versione successiva a causa di questo problema, applica una delle soluzioni proposte prima di eseguire l'upgrade.
Attivazione di DAG tramite reti private utilizzando Cloud Run Functions
L'attivazione dei DAG con Cloud Run Functions tramite reti private con l'utilizzo del connettore VPC non è supportata da Managed Airflow.
Suggerimento: utilizza Cloud Run Functions per pubblicare messaggi su Pub/Sub. Questi eventi possono attivare i sensori Pub/Sub per attivare i DAG Airflow o implementare un approccio basato su operatori differibili.
Cartelle vuote in Scheduler e Worker
Managed Airflow non rimuove attivamente le cartelle vuote dai worker e dagli scheduler di Airflow. Queste entità potrebbero essere create come risultato del processo di sincronizzazione del bucket dell'ambiente quando queste cartelle esistevano nel bucket e sono state rimosse.
Suggerimento: modifica i DAG in modo che siano pronti a saltare queste cartelle vuote.
Queste entità vengono infine rimosse dagli spazi di archiviazione locali degli scheduler e dei worker Airflow quando questi componenti vengono riavviati (ad esempio, in seguito a operazioni di scale down o manutenzione nel cluster dell'ambiente).
Supporto per Kerberos
Managed Airflow non supporta la configurazione di Airflow Kerberos.
Supporto delle classi di computing in Managed Airflow (Gen 2) e Managed Airflow (Gen 3)
Managed Airflow (Gen 3) e Managed Airflow (Gen 2) supportano solo la classe di computing per uso generico. Ciò significa che non è possibile eseguire pod che richiedono altre classi di computing (come Balanced o Scale-Out).
La classe per uso generico consente di eseguire pod che richiedono fino a 110 GB di memoria e fino a 30 CPU (come descritto in Richieste massime per la classe di computing.
Se vuoi utilizzare un'architettura basata su ARM o hai bisogno di più CPU e memoria, devi utilizzare una classe di computing diversa, che non è supportata nei cluster Managed Airflow (Gen 3) e Managed Airflow (Gen 2).
Suggerimento: utilizza GKEStartPodOperator per eseguire i pod Kubernetes su un cluster diverso che supporti la classe di computing selezionata. Se esegui pod personalizzati che richiedono una classe di computing diversa, anche questi devono essere eseguiti su un cluster Managed Airflow non gestito.
Assistenza per gli operatori di Google Campaign Manager 360
Gli operatori di Google Campaign Manager nelle versioni di Managed Airflow precedenti alla 2.1.13 si basano sull'API Campaign Manager 360 v3.5, che è deprecata e verrà ritirata il 1° maggio 2023.
Se utilizzi gli operatori di Google Campaign Manager, esegui l'upgrade dell'ambiente alla versione 2.1.13 o successive di Managed Airflow.
Assistenza per gli operatori di Google Display & Video 360
Gli operatori Google Display & Video 360 nelle versioni di Managed Airflow precedenti alla 2.1.13 si basano sull'API Display & Video 360 v1.1, che è deprecata e la cui data di ritiro è il 27 aprile 2023.
Se utilizzi gli operatori Google Display & Video 360, esegui l'upgrade dell'ambiente alla versione 2.1.13 o successive di Managed Airflow. Inoltre, potresti dover modificare i tuoi DAG perché alcuni operatori di Google Display & Video 360 sono stati ritirati e sostituiti con nuovi operatori.
GoogleDisplayVideo360CreateReportOperatorè ora deprecato. Utilizza inveceGoogleDisplayVideo360CreateQueryOperator. Questo operatore restituiscequery_idanzichéreport_id.GoogleDisplayVideo360RunReportOperatorè ora deprecato. Utilizza inveceGoogleDisplayVideo360RunQueryOperator. Questo operatore restituiscequery_idereport_idanziché soloreport_ide richiedequery_idanzichéreport_idcome parametro.- Per verificare se un report è pronto, utilizza il nuovo sensore
GoogleDisplayVideo360RunQuerySensorche utilizza i parametriquery_idereport_id. Il sensoreGoogleDisplayVideo360ReportSensordeprecato richiedeva soloreport_id. GoogleDisplayVideo360DownloadReportV2Operatorora richiede i parametriquery_idereport_id.- In
GoogleDisplayVideo360DeleteReportOperatornon sono presenti modifiche che possono influire sui tuoi DAG.
Limitazioni relative ai nomi degli intervalli secondari
CVE-2023-29247 (la pagina dei dettagli dell'istanza delle attività nell'interfaccia utente è vulnerabile a un XSS archiviato)
La UI di Airflow nelle versioni di Airflow dalla 2.0.x alla 2.5.x è vulnerabile a CVE-2023-29247.
Se utilizzi una versione di Managed Airflow precedente alla 2.4.2 e sospetti che il tuo ambiente possa essere vulnerabile all'exploit, leggi la descrizione e le possibili soluzioni di seguito.
In Managed Airflow, l'accesso alla UI di Airflow è protetto con IAM e il controllo degli accessi alla UI di Airflow.
Ciò significa che, per sfruttare la vulnerabilità della UI di Airflow, gli utenti malintenzionati devono prima ottenere l'accesso al tuo progetto, insieme alle autorizzazioni e ai ruoli IAM necessari.
Soluzione:
Verifica le autorizzazioni e i ruoli IAM nel tuo progetto, inclusi i ruoli Managed Service for Apache Airflow assegnati ai singoli utenti. Assicurati che solo gli utenti approvati possano accedere all'interfaccia utente di Airflow.
Verifica i ruoli assegnati agli utenti tramite il meccanismo di controllo degli accessi all'interfaccia utente di Airflow (si tratta di un meccanismo separato che fornisce un accesso più granulare all'interfaccia utente di Airflow). Assicurati che solo gli utenti approvati possano accedere all'interfaccia utente di Airflow e che tutti i nuovi utenti siano registrati con un ruolo appropriato.
Prendi in considerazione un ulteriore rafforzamento con i Controlli di servizio VPC.
Il DAG di monitoraggio di Airflow dell'ambiente Composer Managed Airflow (Gen 2) non viene ricreato dopo l'eliminazione
Il DAG di monitoraggio di Airflow non viene ricreato automaticamente se viene eliminato dall'utente o spostato dal bucket in ambienti con composer-2.1.4-airflow-2.4.3.
Soluzione:
- Questo problema è stato risolto nelle versioni successive, come composer-2.4.2-airflow-2.5.3. L'approccio suggerito è eseguire l'upgrade dell'ambiente a una versione più recente.
- Un'alternativa o una soluzione temporanea all'upgrade dell'ambiente consiste nel copiare il DAG airflow_monitoring da un altro ambiente con la stessa versione.
Non è possibile ridurre lo spazio di archiviazione di Cloud SQL
Managed Airflow utilizza Cloud SQL per eseguire il database Airflow. Nel tempo, lo spazio di archiviazione su disco per l'istanza Cloud SQL potrebbe aumentare perché il disco viene scalato per adattarsi ai dati archiviati dalle operazioni di Cloud SQL quando il database Airflow cresce.
Non è possibile fare lo scale down delle dimensioni del disco di Cloud SQL.
Come soluzione alternativa, se vuoi utilizzare le dimensioni più piccole del disco di Cloud SQL, puoi ricreare gli ambienti Managed Airflow con gli snapshot.
La metrica Utilizzo disco del database non diminuisce dopo la rimozione dei record da Cloud SQL
I database relazionali, come Postgres o MySQL, non rimuovono fisicamente le righe quando vengono eliminate o aggiornate. Invece, le contrassegna come "tuple inattive" per mantenere la coerenza dei dati ed evitare di bloccare le transazioni simultanee.
Sia MySQL che Postgres implementano meccanismi di recupero dello spazio dopo l'eliminazione dei record.
Sebbene sia possibile forzare il database a recuperare lo spazio su disco inutilizzato, si tratta di un'operazione che richiede molte risorse e che blocca anche il database, rendendo Managed Airflow non disponibile. Pertanto, ti consigliamo di fare affidamento sui meccanismi di creazione per recuperare lo spazio inutilizzato.
Accesso bloccato: errore di autorizzazione
Se questo problema riguarda un utente, la finestra di dialogo Accesso bloccato: errore di autorizzazione contiene il messaggio Error 400: admin_policy_enforced.
Se l'opzione Controlli API > App di terze parti non configurate > Non consentire agli utenti di accedere alle app di terze parti è attivata in Google Workspace e l'app Apache Airflow in Managed Airflow non è consentita esplicitamente, gli utenti non possono accedere all'interfaccia utente di Airflow, a meno che non consentano esplicitamente l'applicazione.
Per consentire l'accesso, segui i passaggi descritti in Consenti l'accesso all'interfaccia utente di Airflow in Google Workspace.
Loop di accesso durante l'accesso alla UI di Airflow
Questo problema potrebbe essere dovuto alle seguenti cause:
Se le associazioni di accesso sensibile al contesto di Chrome Enterprise Premium vengono utilizzate con livelli di accesso che si basano sugli attributi del dispositivo e l'app Apache Airflow in Managed Airflow non è esentata, non è possibile accedere alla UI di Airflow a causa di un loop di accesso. Per consentire l'accesso, segui i passaggi descritti in Consenti l'accesso all'interfaccia utente di Airflow nelle associazioni di accesso sensibile al contesto.
Se le regole in entrata sono configurate in un perimetro dei Controlli di servizio VPC che protegge il progetto e la regola in entrata che consente l'accesso al servizio Managed Airflow utilizza il tipo di identità
ANY_SERVICE_ACCOUNToANY_USER_ACCOUNT, gli utenti non possono accedere all'interfaccia utente di Airflow, finendo in un loop di accesso. Per saperne di più su come gestire questo scenario, consulta Consenti l'accesso all'interfaccia utente di Airflow nelle regole in entrata dei Controlli di servizio VPC.
Istanze di attività riuscite in passato contrassegnate come NON RIUSCITE
In alcune circostanze e scenari rari, le istanze di attività Airflow che hanno avuto esito positivo in passato possono essere contrassegnate come FAILED.
Se ciò accade, di solito è stato attivato da un'operazione di aggiornamento o upgrade dell'ambiente o dalla manutenzione di GKE.
Nota: il problema in sé non indica alcun problema nell'ambiente e non causa errori effettivi nell'esecuzione delle attività.
Il problema è stato risolto in Managed Airflow versione 2.6.5 o successive.
I componenti Airflow hanno problemi di comunicazione con altre parti della configurazione di Managed Airflow
Questo problema riguarda solo le versioni 2.10.2 e precedenti di Managed Airflow (2ª gen.).
In casi molto rari, la lentezza della comunicazione con il server dei metadati di Compute Engine potrebbe impedire il funzionamento ottimale dei componenti di Airflow. Ad esempio, lo scheduler di Airflow potrebbe essere riavviato, le attività di Airflow potrebbero dover essere riprovate o il tempo di avvio delle attività potrebbe essere più lungo.
Sintomi:
I seguenti errori vengono visualizzati nei log dei componenti di Airflow (ad esempio scheduler, worker o server web 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
Soluzione:
- Esegui l'upgrade dell'ambiente a una versione successiva di Managed Airflow. Questo problema è stato risolto a partire dalla versione 2.11.0 di Managed Airflow.
La cartella /data non è disponibile nel server web Airflow
In Managed Airflow (Gen 2) e Managed Airflow (Gen 3), il server web Airflow è un componente di sola lettura e Managed Airflow non sincronizza la cartella data/ con questo componente.
A volte, potresti voler condividere file comuni tra tutti i componenti Airflow, incluso il server web Airflow.
Soluzione:
Inserisci i file da condividere con il server web in un modulo PYPI e installalo come un normale pacchetto PYPI. Dopo aver installato il modulo PyPI nell'ambiente, i file vengono aggiunti alle immagini dei componenti Airflow e sono disponibili per questi ultimi.
Aggiungi file alla cartella
plugins/. Questa cartella è sincronizzata con il server web Airflow.
Diagrammi non continui dei tempi di analisi dei DAG e delle dimensioni del DAG bag nel monitoraggio
I diagrammi non continui dei tempi di analisi dei DAG e delle dimensioni del DAG bag nella dashboard di monitoraggio indicano problemi con tempi di analisi dei DAG lunghi (più di 5 minuti).
Soluzione: ti consigliamo di mantenere il tempo totale di analisi del DAG al di sotto dei 5 minuti. Per ridurre il tempo di analisi del DAG, segui le linee guida per la scrittura dei DAG.
I log dei componenti di Managed Airflow non sono presenti in Cloud Logging
Si è verificato un problema nel componente dell'ambiente responsabile del caricamento dei log dei componenti Airflow su Cloud Logging. Questo bug a volte porta a una situazione in cui il log a livello di Managed Airflow potrebbe non essere presente per un componente Airflow. Lo stesso log è ancora disponibile a livello di componente Kubernetes.
Frequenza del problema: molto rara, sporadica
Causa:
Comportamento errato del componente Managed Airflow responsabile del caricamento dei log su Cloud Logging.
Soluzioni:
Esegui l'upgrade dell'ambiente a Managed Airflow 2.10.0 o versioni successive.
Nelle versioni precedenti di Managed Airflow, la soluzione temporanea quando si verifica questa situazione è avviare un'operazione di Managed Airflow che riavvii i componenti per i quali manca il log.
Il passaggio del cluster dell'ambiente a GKE Enterprise Edition non è supportato
Questa nota si applica a Managed Airflow 1 e Managed Airflow 2.
Il cluster GKE dell'ambiente Managed Airflow viene creato all'interno di GKE Standard Edition.
A partire da dicembre 2024, il servizio Managed Airflow non supporta la creazione di ambienti Managed Airflow con cluster in Enterprise Edition.
Gli ambienti Managed Airflow non sono stati testati con GKE Enterprise Edition e hanno un modello di fatturazione diverso.
Ulteriori comunicazioni relative alla versione GKE Standard rispetto alla versione Enterprise verranno fornite nel secondo trimestre del 2025.
Componenti Airflow che riscontrano problemi durante la comunicazione con altre parti della configurazione di Managed Airflow
In alcuni casi, a causa di una risoluzione DNS non riuscita, i componenti Airflow potrebbero riscontrare problemi durante la comunicazione con altri componenti Managed Airflow o endpoint di servizio esterni all'ambiente Managed Airflow.
Sintomi:
Nei log dei componenti di Airflow (ad esempio scheduler, worker o server web Airflow) potrebbero essere visualizzati i seguenti errori:
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.
Possibili soluzioni:
Esegui l'upgrade a Managed Airflow 2.9.11 o
Imposta la seguente variabile di ambiente:
GCE_METADATA_HOST=169.254.169.254.
L'ambiente è nello stato di errore dopo l'eliminazione o la disattivazione dell'account di fatturazione del progetto o la disattivazione dell'API Cloud Composer
Gli ambienti Managed Airflow interessati da questi problemi non sono recuperabili:
- Dopo l'eliminazione o la disattivazione dell'account di fatturazione del progetto, anche se in un secondo momento è stato collegato un altro account.
- Dopo che l'API Cloud Composer è stata disabilitata nel progetto, anche se è stata abilitata in un secondo momento.
Per risolvere il problema, puoi procedere nel seguente modo:
Puoi comunque accedere ai dati archiviati nei bucket dell'ambiente, ma gli ambienti stessi non sono più utilizzabili. Puoi creare un nuovo ambiente Managed Airflow e poi trasferire i DAG e i dati.
Se vuoi eseguire una delle operazioni che rendono gli ambienti non recuperabili, assicurati di eseguire il backup dei dati, ad esempio creando uno snapshot di un ambiente. In questo modo, puoi creare un altro ambiente e trasferire i relativi dati caricando questo snapshot.
Avvisi sul budget di interruzione dei pod per i cluster di ambiente
Nella UI di GKE puoi visualizzare i seguenti avvisi per i cluster di ambiente Managed Airflow:
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.
Non è possibile eliminare questi avvisi. Stiamo lavorando per evitare che questi avvisi vengano generati.
Possibili soluzioni:
- Ignora questi avvisi finché il problema non viene risolto.
Impossibile rimuovere un valore di campo in una connessione Airflow
Causa:
L'interfaccia utente di Apache Airflow presenta una limitazione per cui non è possibile aggiornare i campi di connessione con valori vuoti. Se provi a farlo, il sistema ripristina le impostazioni salvate in precedenza.
Possibili soluzioni:
Sebbene Apache Airflow versione 2.10.4 includa una correzione permanente, esiste una soluzione temporanea per gli utenti delle versioni precedenti. Ciò comporta l'eliminazione della connessione e la sua ricreazione, lasciando vuoti i campi obbligatori. L'interfaccia a riga di comando è l'approccio consigliato per eliminare la connessione:
gcloud composer environments run ENVIRONMENT_NAME \
--location LOCATION \
connections delete -- \
CONNECTION_ID
Dopo aver eliminato la connessione, ricreala utilizzando la UI di Airflow, assicurandoti che i campi che intendi lasciare vuoti siano effettivamente vuoti. Puoi anche creare la connessione eseguendo il comando connections add dell'interfaccia a riga di comando di Airflow con Google Cloud CLI.
I log per le attività Airflow non vengono raccolti se [core]execute_tasks_new_python_interpreter è impostato su True
Managed Airflow non raccoglie i log per le attività Airflow se l'opzione di configurazione Airflow [core]execute_tasks_new_python_interpreter è impostata su True.
Possibile soluzione:
- Rimuovi l'override per questa opzione di configurazione o imposta il relativo valore su
False.
Punti dati mancanti nelle metriche, ValueError: Cannot determine path without bucket name
Gli ambienti con versioni di Managed Airflow (2ª gen.) 2.16.0 e 2.16.1 potrebbero riscontrare un problema noto relativo alla generazione di report sulle metriche. Puoi osservare alcuni punti dati saltati nelle metriche del report e visualizzare messaggi di errore relativi ai riavvii dei pod airflow-monitoring nei log dell'ambiente.
Esempio di messaggio di errore:
ValueError: Cannot determine path without bucket name error.
Questo problema non influisce sulla funzionalità dell'ambiente. L'ambiente è ancora operativo e le informazioni sullo stato di salute e sul monitoraggio dell'ambiente vengono segnalate correttamente. Puoi ignorare i messaggi di errore.
Prestazioni dell'ambiente ridotte in diverse versioni del pacchetto google-api-core
Le versioni del pacchetto preinstallato google-api-core dalla 2.28.0 alla 2.30.2 potrebbero causare un peggioramento delle prestazioni dell'ambiente, il che può comportare tempi più lunghi per l'esecuzione di un'attività e per lo spostamento di un'attività dallo stato in coda allo stato in esecuzione.
Build di Managed Airflow (3ª gen.) interessate:
- Da composer-3-airflow-3.1.7-build.0 a composer-3-airflow-3.1.7-build.5
- Da composer-3-airflow-3.1.0-build.5 a composer-3-airflow-3.1.0-build.10
- composer-3-airflow-2.11.1-build.0
- Da composer-3-airflow-2.10.5-build.22 a composer-3-airflow-2.10.5-build.33
- Da composer-3-airflow-2.9.3-build.42 a composer-3-airflow-2.9.3-build.53
Build di Managed Airflow (2ª gen.) interessate:
- composer-2.16.10-airflow-2.11.1
- Da composer-2.16.0-airflow-2.10.5 a composer-2.16.10-airflow-2.10.5
- Da composer-2.16.0-airflow-2.9.3 a composer-2.16.10-airflow-2.9.3
Ti consigliamo di eseguire l'upgrade del tuo ambiente alle seguenti versioni, che contengono una versione del pacchetto in cui il problema è stato risolto o non è presente:
- composer-3-airflow-3.1.7-build.7 e versioni successive
- composer-3-airflow-2.11.1-build.3 e versioni successive
- composer-3-airflow-2.10.5-build.36 e versioni successive
- composer-3-airflow-2.9.3-build.54 (contiene 2.27.0)
- composer-2.17.0-airflow-2.11.1 e versioni successive
- composer-2.17.0-airflow-2.10.5 e versioni successive
- composer-2.16.11-airflow-2.11.1 (contiene 2.27.0)
- composer-2.16.11-airflow-2.10.5 (contiene 2.27.0)
- composer-2.16.11-airflow-2.9.3 (contiene 2.27.0)
Come soluzione alternativa, puoi installare manualmente una versione successiva del pacchetto google-api-core in un ambiente interessato specificando >=2.30.3 come versione richiesta.