Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Questa pagina elenca i problemi noti di Cloud Composer. Alcune correzioni per questi di problemi sono in corso e saranno disponibili versioni future.
Alcuni problemi interessano 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
Cloud Composer si affida a GKE per fornire il supporto per gli indirizzi non RFC 1918 per pod e servizi. Al momento, solo i seguenti l'elenco di intervalli non RFC 1918 è supportato in 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 UI di Airflow non mostra i log delle attività quando la serializzazione dei DAG è attiva in Composer 1.10.2 e Composer 1.10.3
Abilitazione della serie DAG negli ambienti utilizzando le versioni 1.10.2 e 1.10.3 di Composer impedisce la visualizzazione dei log nel il server web di Airflow. Per risolvere il problema, esegui l'upgrade alla versione 1.10.4 (o successiva).
Errore intermittente delle attività durante la pianificazione in Cloud Composer
Il problema viene rilevato in uno scheduler di Airflow per l'istanza dell'attività durante l'esecuzione dell'attività. Tuttavia, i log non spiegano la causa dell'errore delle attività e il worker di Airflow e lo scheduler di Airflow sembravano relativamente integro.
Il messaggio di errore su Airflow Scheduler può essere il seguente errore:
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?
Oppure potrebbe esserci un errore nel worker di Airflow simile al seguente errore:
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).
Per garantire la robustezza contro questi errori derivanti da un problema di lunga data in Airflow, ti consigliamo vivamente di implementare in modo proattivo strategie di ripetizione appropriate a livello di attività e DAG. Incorporando queste misure, il sistema può mitigare efficacemente l’impatto di questi errori, migliorando così l’affidabilità e la resilienza complessive del flusso di lavoro.
Workload Identity di GKE non è supportato
Questo problema riguarda solo gli ambienti Cloud Composer 1. Cloud Composer 2 di Google Cloud utilizzano Workload Identity.
Non puoi attivare Workload Identity per
cluster di ambiente Cloud Composer. Di conseguenza, potresti notare
WORKLOAD_IDENTITY_DISABLED
risultato in Security Command Center.
Le etichette di ambiente aggiunte durante un aggiornamento non vengono propagate completamente
Le etichette dell'ambiente aggiornate non vengono applicate alle VM di Compute Engine. Come soluzione alternativa, queste etichette possono essere applicate manualmente.
Upgrade di GKE nel contesto del problema CVE-2020-14386
Stiamo lavorando per risolvere il problema CVE-2020-14386 vulnerabilità per tutti gli ambienti Cloud Composer. Nell'ambito della risolvere il problema, tutti i cluster GKE di Cloud Composer esistenti verranno aggiornati una nuova versione.
I clienti che decidono di risolvere immediatamente la vulnerabilità possono eseguire l'upgrade Composer GKE Cluster seguendo queste istruzioni con le seguenti considerazioni:
Passaggio 1: Se esegui una versione di Cloud Composer precedente alla 1.7.2, esegui l'upgrade a una versione più recente di Cloud Composer. Se hai già la versione 1.7.2 o successiva, vai al punto successivo.
Passaggio 2: Esegui l'upgrade del cluster GKE (master e nodi) alla versione più recente della patch 1.15, che contiene la correzione per questa vulnerabilità.
I log delle attività di Airflow non sono disponibili nel server web Airflow dopo l'upgrade da Airflow 1.9.0 ad Airflow 1.10.x
Airflow 1.10.x ha introdotto modifiche incompatibili con le versioni precedenti alla denominazione per i file di log. Le informazioni sulla zona vengono ora aggiunte ai nomi log per Attività Airflow.
Airflow 1.9.0 archivia e prevede che i nomi dei log siano nel formato seguente:
BUCKET/logs/DAG/2020-03-30T10:29:06/1.log
Airflow 1.10.x archivia e prevede che i nomi dei log siano nel formato seguente:
BUCKET/logs/DAG/2020-03-30T10:29:06+00:00/1.log
Di conseguenza, se esegui l'upgrade da Airflow 1.9.0 ad Airflow 1.10.x
e leggere il log per un'attività eseguita con Airflow 1.9.0,
il server web Airflow mostrerà il seguente messaggio di errore:
Unable to read remote log from BUCKET/logs/DAG/2020-03-30T10:29:06+00:00/1.log
Soluzione: rinomina i log generati da Airflow 1.9.0 in
del bucket Cloud Storage utilizzando il formato:
BUCKET/logs/DAG/2020-03-30T10:29:06+00:00/1.log
Impossibile creare ambienti Cloud Composer con il criterio dell'organizzazione constraints/compute.disableSerialPortLogging applicato
La creazione dell'ambiente Cloud Composer non riuscirà se
constraints/compute.disableSerialPortLogging
è applicato in modo forzato al target
progetto.
Diagnosi
Per determinare se hai riscontrato questo problema, segui questa procedura:
Vai al menu GKE in nella console Google Cloud. Vai al menu GKE
Quindi, seleziona il cluster che hai 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:
Constraint constraints/compute.disableSerialPortLogging violated for
project <target project number>.
Soluzioni:
Disabilita il criterio dell'organizzazione sul progetto in cui verrà creato l'ambiente Cloud Composer.
Un criterio dell'organizzazione può sempre essere disabilitato a livello di progetto anche se l'elemento padre per le risorse (organizzazione o cartella) in cui è abilitato. Consulta le Per ulteriori dettagli, consulta la pagina Personalizzazione dei criteri per i vincoli booleani.
Utilizzare i filtri di esclusione
Utilizzo di un filtro di esclusione per i log delle porte seriali. ha lo stesso obiettivo della disattivazione del criterio dell'organizzazione, in quanto ci saranno i log della console seriale in Logging. Per maggiori dettagli, consulta la pagina relativa ai filtri di esclusione .
Utilizzo di Deployment Manager per gestire le risorse Google Cloud protette dai Controlli di servizio VPC
Composer utilizza Deployment Manager per creare componenti degli ambienti Cloud Composer.
A dicembre 2020, potresti aver ricevuto informazioni che ti potrebbero servire per eseguire configurazione aggiuntiva dei Controlli di servizio VPC per poter utilizzare Deployment Manager e gestire le risorse protette dai Controlli di servizio VPC.
Vorremmo chiarire che non è necessario alcun intervento da parte tua. se utilizzi Composer e non usi direttamente Deployment Manager per gestire le risorse Google Cloud menzionate nel annuncio.
Impossibile eliminare un ambiente dopo aver eliminato il relativo cluster GKE
Se elimini il cluster dell'ambiente prima di quello stesso, tenta di eliminare il tuo ambiente generando il seguente errore:
Got error "" during CP_DEPLOYMENT_DELETING [Rerunning Task. ]
Per eliminare un ambiente quando il relativo cluster GKE è già stato eliminato:
Apri la pagina Deployment Manager nella console Google Cloud.
Trova tutti i deployment contrassegnati con le etichette:
goog-composer-environment:<environment-name>
goog-composer-location:<environment-location>
.
Dovresti vedere 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 che sono ancora elencate in questi due deployment ed esistono nel progetto (ad esempio, argomenti Pub/Sub e abbonamenti). Ecco come fare:
Seleziona i deployment.
Fai clic su Elimina.
Seleziona la casella di controllo Elimina 2 deployment e tutte le risorse che hanno creato, come VM, bilanciatori del carico e dischi fai clic su Elimina tutto.
L'operazione di eliminazione non riesce, ma le risorse rimaste vengono eliminate.
Elimina i deployment utilizzando una delle seguenti opzioni:
Nella console Google Cloud, seleziona di nuovo entrambi i deployment. Fai clic su Elimina, poi seleziona Elimina due deployment, ma mantieni le risorse che hanno creato.
Esegui un comando gcloud per eliminare i deployment con il criterio
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
Deployment Manager mostra informazioni su una funzionalità non supportata
Nella scheda Deployment Manager potresti vedere 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 Cloud Composer, puoi ignorare questo avviso.
Avvisi sulle voci duplicate di "echo" attività appartenente a "echo-airflow_monitoring" DAG
Nei log di Airflow potresti vedere la seguente voce:
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 su Airflow Elaborazione di DAG e attività.
Stiamo lavorando per migliorare il servizio Cloud Composer per rimuovere questi avvisi dai log di Airflow.
La creazione dell'ambiente non riesce nei progetti con API Identity-Aware Proxy aggiunte al perimetro Controlli di servizio VPC
Nei progetti con Controlli di servizio VPC abilitati,
l'account cloud-airflow-prod@system.gserviceaccount.com
richiede un'esplicita
nel tuo perimetro di sicurezza per creare ambienti.
Per creare ambienti, puoi utilizzare una delle seguenti soluzioni:
Non aggiungere l'API Cloud Identity-Aware Proxy e API TCP di Identity-Aware Proxy al perimetro di sicurezza.
Aggiungi l'account di servizio
cloud-airflow-prod@system.gserviceaccount.com
come membro del tuo perimetro di sicurezza utilizzando la seguente configurazione nel file delle condizioni YAML:- members: - serviceAccount:cloud-airflow-prod@system.gserviceaccount.com
La creazione dell'ambiente Cloud Composer 1 non va a buon fine quando il criterio compute.requireOsLogin
è abilitato
Se il criterio compute.requireOsLogin
è impostato su true
nel progetto:
Le operazioni di creazione dell'ambiente Cloud Composer 1 v1 non vanno a buon fine.
Per creare ambienti Cloud Composer 1, disabilita questo criterio nelle progetto.
Per ulteriori informazioni su questo criterio dell'organizzazione, consulta Vincoli dei criteri dell'organizzazione.
La creazione o l'upgrade dell'ambiente Cloud Composer non riesce quando compute.vmExternalIpAccess
è disabilitato
Cluster GKE di proprietà di Cloud Composer configurati in
la modalità IP pubblico richiede
una connettività esterna per le VM. Per questo motivo,
il criterio compute.vmExternalIpAccess
non può vietare la creazione di VM
con indirizzi IP esterni. Per ulteriori informazioni su questo criterio dell'organizzazione, vedi
Vincoli dei criteri dell'organizzazione.
La creazione dell'ambiente Cloud Composer non riesce quando il criterio compute.vmCanIpForward
è disabilitato
Gli ambienti Cloud Composer 1 creati in modalità non nativa VPC (utilizzando IP alias) richiedono questo criterio per consentire la creazione di VM con l'opzione "IP forwarding" abilitata funzionalità. Per ulteriori informazioni su questo criterio dell'organizzazione, vedi Vincoli dei criteri dell'organizzazione.
La prima esecuzione di DAG di un file DAG caricato contiene diverse attività non riuscite
Quando carichi un file DAG, a volte le prime attività del primo DAG
l'esecuzione non riesce e restituisce l'errore Unable to read remote log...
. Questo
si verifica perché il file DAG è sincronizzato tra
del bucket dell'ambiente, i worker Airflow e gli scheduler di Airflow del tuo
completamente gestito di Google Cloud. Queste sincronizzazioni vengono eseguite in modo indipendente. Se lo scheduler
ottiene il file DAG e ne pianifica l'esecuzione da parte di un worker, e se
il worker non dispone ancora del file DAG, quindi l'esecuzione dell'attività non riesce.
Come soluzione alternativa, gli ambienti Airflow 2 in Cloud Composer 1.17.0-preview.9 e versioni successive versioni sono configurato per eseguire due nuovi tentativi per un'attività non riuscita per impostazione predefinita. Se un'attività non riesce, viene ripetuto due volte a intervalli di 5 minuti.
Per utilizzare la soluzione alternativa per questo problema in Airflow 1,
override
l'opzione di configurazione Airflow core-default_task_retries
e impostala su un
numero maggiore o uguale a 2
.
L'attività non riesce e restituisce il messaggio "OSError: [Errno 5] Input/output error" in Airflow 1.10.15 o versioni precedenti
A causa di un bug nelle versioni Airflow 1, le attività vengono inserite nella coda Redis due volte alcuni rari casi.
A volte può portare a una race condition nel file di log e
dell'attività non riuscita. Tasks non riesce e OSError: [Errno 5] Input/output error
in
Cloud Logging e
Task is in the 'running' state which is not a valid state for execution.
nel log dei tentativi di attività.
Questo bug è stato risolto in Airflow 2. Se riscontri questo problema in Airflow 1
in un'attività di lunga durata,
aumenta il valore
del flusso d'aria [celery_broker_transport_options]visibility_timeout
(il valore predefinito è 604800
per Composer 1.17.0,
21600
per gli ambienti precedenti). Per le attività brevi, valuta la possibilità di aggiungere
nuovi tentativi per eseguire le attività interessate o per eseguire la migrazione dell'ambiente
Airflow 2.
Operatori Dataproc/Dataflow non riusciti con Negsignal.SIGSEGV
Si tratta di un problema intermittente della libreria grcpio
, quando utilizzata da un Celery
worker. Questo problema riguarda Airflow 1.10.14 e versioni successive.
La soluzione alternativa consiste nel cambiare la strategia di polling grpcio
di
aggiungendo la seguente variabile di ambiente
al tuo ambiente: GRPC_POLL_STRATEGY=epoll1
. Questa soluzione alternativa è già
applicata in Cloud Composer 1.17.1 e versioni successive.
Annunci sulla rimozione del supporto per le API beta deprecate dalle versioni GKE
Cloud Composer gestisce le risorse sottostanti di proprietà di Cloud Composer cluster GKE. A meno che tu non utilizzi esplicitamente queste API nei tuoi per i DAG e il tuo codice, puoi ignorare gli annunci su GKE Ritiri delle API. Cloud Composer si occupa di tutte le migrazioni, necessaria.
Upgrade di GKE nel contesto del problema di sicurezza CVE-2021-25741
Per tutti i cluster GKE di Cloud Composer esistenti verrà eseguito l'upgrade automatico a versioni GKE più recenti con una correzione per i problemi descritti in CVE-2021-25741.
Se vuoi risolvere immediatamente questa vulnerabilità, esegui l'upgrade il cluster GKE del tuo ambiente seguendo le istruzioni per l'upgrade di un cluster,
Se hai un ambiente Cloud Composer 1 e una versione GKE 1.18.x o versioni precedenti, quindi esegui l'upgrade a 1.18.20-gke.4501.
Se hai un ambiente Cloud Composer 1 e una versione GKE 1.19.x, quindi eseguire l'upgrade a 1.19.14-gke.301.
Se hai un ambiente Cloud Composer 2 e una versione GKE 1.21.x ed eseguire l'upgrade a 1.21.4-gke.301.
Cloud Composer non deve essere interessato dalla vulnerabilità Apache Log4j 2 (CVE-2021-44228)
In risposta alla vulnerabilità Apache Log4j 2 (CVE-2021-44228), Cloud Composer ha condotto un'indagine dettagliata e riteniamo che Cloud Composer non sia vulnerabile a questo exploit.
I worker o gli scheduler di Airflow potrebbero riscontrare problemi durante l'accesso al bucket Cloud Storage dell'ambiente
Cloud Composer utilizza gcsfuse per accedere alla cartella /data
in
del bucket dell'ambiente e salvare i log delle attività Airflow nella directory /logs
(se
attivata). Se gcsfuse è sovraccarico o se il bucket dell'ambiente non è disponibile,
potresti riscontrare errori delle istanze delle attività Airflow e vedere
Transport endpoint is not connected
errori nei log di Airflow.
Soluzioni:
- Disattiva salvando i log nel bucket dell'ambiente. Questa opzione è già disabilitata per impostazione predefinita se viene creato un ambiente utilizzando Cloud Composer 2.8.0 o versioni successive.
- Esegui l'upgrade a Cloud Composer 2.8.0 o versione successiva.
- Riduci
[celery]worker_concurrency
e aumenta invece il numero di worker di Airflow. - Riduci la quantità di log prodotti nel codice del DAG.
- Segui consigli e best practice per implementare i DAG e abilitare i nuovi tentativi delle attività.
Una volta modificato, la UI di Airflow potrebbe non ricaricare un plug-in
Se un plug-in è costituito da molti file che importano altri moduli, il La UI di Airflow potrebbe non essere in grado di riconoscere il fatto che un plug-in dovrebbe essere viene ricaricato. In questo caso, è necessario attivare un riavvio del server web Airflow. Puoi farlo aggiungendo una variabile di ambiente o tramite installazione o la disinstallazione delle dipendenze PYPI. Puoi anche riavviare il server web Airflow.
Problemi intermittenti durante la comunicazione con il database di metadati Airflow
Questo problema noto si applica solo a Cloud Composer 1.
Alcuni ambienti Cloud Composer 1 meno recenti (1.16.3 o versioni precedenti) creati in precedenza Il 12 agosto 2021 potrebbero verificarsi problemi temporanei relativi alla comunicazione dei metadati Airflow.
Se riscontri questo problema, nei log delle attività di Airflow vedrai il seguente messaggio di errore:
"Can't connect to MySQL server on 'airflow-sqlproxy-service.default.svc.cluster.local' (104)"
Il team di Cloud Composer lavora per risolvere questo problema. Nel frattempo, Se ritieni di essere stato interessato da questo problema, puoi procedere come segue per eliminarlo:
- Nella console Google Cloud, vai alla pagina Configurazione dell'ambiente. degli ambienti Cloud Composer colpiti.
- Segui il link per visualizzare i dettagli del cluster per spostarti. al cluster GKE sottostante dell'ambiente.
Vai alla scheda Nodi e fai clic sul default-pool visibile nella sezione Pool di nodi.
Fai clic su Modifica nella parte superiore della pagina.
Cambia il tipo di immagine in Container-Optimized OS con containerd e salva la configurazione come mostrato di seguito.
.Una volta inviata la modifica, il pool di nodi default-pool verrà riconfigurato per usare containerd come runtime del container. Alcune delle tue attività Airflow potrebbero non riuscire durante la riconfigurazione del pool di nodi. Se per queste attività sono stati configurati altri tentativi, verrà eseguito nuovamente da Airflow al termine dell'operazione sul pool di nodi.
Il cluster dell'ambiente ha carichi di lavoro in stato non pianificabile
Questo problema noto si applica solo a Cloud Composer 2.
In Cloud Composer 2, dopo la creazione di un ambiente, vengono eseguiti diversi carichi di lavoro rimangono nello stato Non pianificabile.
Quando un ambiente fa lo scale up, vengono creati nuovi pod worker e Kubernetes prova a eseguirli. Se non sono disponibili risorse gratuite per eseguirle, i pod worker sono contrassegnati come Non pianificabile.
In questo caso, il gestore della scalabilità automatica del cluster aggiunge altri nodi, il che richiede un paio di minuti. Finché non lo fa, i pod rimangono nello stato Non pianificabile e non eseguono alcuna attività.
Carichi di lavoro DaemonSet non pianificabili denominati composer-gcsfuse
e composer-fluentd
che non sono
in grado di avviarsi su nodi in cui non sono presenti componenti Airflow non influiscono sul tuo ambiente.
Se il problema persiste per molto tempo (più di 1 ora), puoi controllare Cluster Log del gestore della scalabilità automatica. 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 del cluster: espandi qualsiasi noDecisionStatus per vedere il motivo per cui non è possibile fare lo scale up o lo scale down del cluster.
Errore 504 durante l'accesso alla UI di Airflow
Puoi visualizzare l'errore 504 Gateway Timeout
quando accedi alla UI di Airflow. Le cause di questo errore possono essere diverse:
- Problema di comunicazione temporaneo. In questo caso, prova ad accedere alla UI di Airflow in un secondo momento. Puoi anche riavvia il server web Airflow.
- (Solo Cloud Composer 2) Problema di connettività. Se la UI di Airflow è permanente
non disponibile e vengono generati errori di timeout o 504, accertati che i tuoi
può accedere a
*.composer.cloud.google.com
. Se utilizzi Accesso privato Google e invio del trafficoprivate.googleapis.com
IP virtuali o Controlli di servizio VPC e invierai il traffico surestricted.googleapis.com
IP virtuali, assicurati che se Cloud DNS è configurato anche*.composer.cloud.google.com
nomi di dominio. - Il server web Airflow non risponde. Se viene visualizzato l'errore 504 persiste, ma puoi comunque accedere alla UI di Airflow in determinati momenti il server web Airflow potrebbe non rispondere perché viene sovraccaricato. Tentativo di aumenta la scalabilità e i parametri di rendimento del server web.
Errore 502 durante l'accesso alla UI di Airflow
L'errore 502 Internal server exception
indica che la UI di Airflow non può
per gestire le richieste in entrata. Le cause di questo errore possono essere diverse:
Problema di comunicazione temporaneo. Prova ad accedere alla UI di Airflow in un secondo momento.
Impossibile avviare il server web. Per iniziare, il server web richiede di configurazione dei pod da sincronizzare per primi. Controlla i log del server web per voci di log simili 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
. Se visualizzi questi errori, controlla se i file sono menzionati nei messaggi di errore sono ancora presenti nel bucket dell'ambiente.In caso di rimozione accidentale (ad esempio, perché una fidelizzazione è stato configurato), puoi ripristinarli:
Imposta una nuova variabile di ambiente nel tuo ambiente. Puoi utilizzare utilizza qualsiasi nome e valore di variabile.
Esegui l'override di un'opzione di configurazione Airflow. Puoi usare un modello inesistente Opzione di configurazione Airflow.
Il passaggio del mouse sopra l'istanza dell'attività nella visualizzazione ad albero genera un errore TypeError non rilevato
In Airflow 2, la visualizzazione ad albero nella UI di Airflow a volte potrebbe non funzionare correttamente quando si utilizza un fuso orario non predefinito. Come soluzione alternativa a questo problema, problema, configurare il fuso orario in modo esplicito nella UI 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,
"Attiva il DAG con configurazione" schermo era suscettibile ad attacchi XSS
tramite l'argomento di query origin
.
Consiglio: esegui l'upgrade alla versione più recente di Cloud Composer che supporta Airflow 2.2.5.
I worker richiedono più memoria rispetto alle versioni precedenti di Airflow
Sintomi:
Nel tuo ambiente Cloud Composer 2, tutti i carichi di lavoro del cluster I worker di Airflow sono in stato
CrashLoopBackOff
e non vengono eseguiti attività di machine learning. Puoi anche vedereOOMKilling
avviso che viene generato interessati da questo problema.Questo problema può impedire gli upgrade dell'ambiente.
Causa:
- Se utilizzi un valore personalizzato per
[celery]worker_concurrency
Airflow e le impostazioni di memoria personalizzate per i worker di Airflow, questo problema potrebbe verificarsi quando il consumo di risorse si avvicina al limite. - I requisiti di memoria dei worker di Airflow in Airflow 2.6.3 con Python 3.11 sono del 10% rispetto ai worker nelle versioni precedenti.
- I requisiti di memoria dei worker di Airflow in Airflow 2.3 e versioni successive sono pari al 30% superiore rispetto ai worker in Airflow 2.2 o Airflow 2.1.
Soluzioni:
- Rimuovi l'override per
worker_concurrency
, in modo che Cloud Composer calcola automaticamente questo valore. - Se utilizzi un valore personalizzato per
worker_concurrency
, impostalo su un valore più basso. Puoi utilizzare lo valore calcolato automaticamente come punto di partenza. - In alternativa, puoi aumentare la quantità di memoria disponibile per Airflow worker.
- Se non riesci a eseguire l'upgrade dell'ambiente a una versione successiva per questo motivo questo problema, applica una delle soluzioni proposte prima di eseguire l'upgrade.
Attivazione di DAG tramite reti private utilizzando Cloud Functions
Attivazione dei DAG con Cloud Functions tramite reti private con l'utilizzo Il connettore VPC non è supportato da Cloud Composer.
Suggerimento: utilizza Cloud Functions per pubblicare messaggi su Pub/Sub. Questi eventi possono azionare i sensori Pub/Sub per attivare i DAG Airflow o implementare un approccio basato su operatori decriptabili.
Problema con i comandi di gcloud Composer nella versione 410.0.0
Nella versione 410.0.0 di gcloud, i seguenti comandi di Cloud Composer:
gcloud composer environments run
gcloud composer environments list-packages
restituiscono un codice di errore diverso da zero e visualizzano questo messaggio di errore:
(ERROR: gcloud crashed (TypeError): 'NoneType' object is not callable)
Questo comportamento si verifica in aggiunta al normale output prodotto dalla gcloud e non ne influenza la funzionalità.
Se questo problema non influisce sulle tue operazioni, puoi continuare a utilizzare la versione 410.0.0 e ignorare il messaggio di errore errato. Se devi utilizzare la versione 410.0.0 e utilizzi il comando gcloud in modo programmatico, implementa una logica aggiuntiva per ignorare il codice di errore diverso da zero e le informazioni sullo stacktrace di errori nell'output. Puoi anche consultare la sezione Soluzione per conoscere altre soluzioni alternative.
Soluzione:
- Evita di eseguire l'upgrade alla versione 410.0.0. Utilizza la versione 409.0.0 o precedente.
- Se hai già eseguito l'upgrade, esegui il downgrade a una versione precedente (ad esempio 409.0.0). Per ulteriori informazioni, consulta la sezione Utilizzo degli archivi con controllo delle versioni.
Cartelle vuote in Scheduler e Worker
Cloud Composer non rimuove attivamente le cartelle vuote da Airflow worker e scheduler. Queste entità possono essere create come risultato dell'ambiente processo di sincronizzazione dei bucket quando queste cartelle esistevano nel bucket e alla fine sono stati rimossi.
Consiglio: modifica i DAG in modo che siano pronti a saltare questi spazi vuoti cartelle.
Queste entità vengono infine rimosse dagli archivi locali degli scheduler di Airflow e worker quando questi componenti vengono riavviati (ad esempio, a seguito della scalabilità operazioni di manutenzione o inattività nel cluster Cloud Composer).
Supporto per Kerberos
Cloud Composer non supporta ancora la configurazione Kerberos di Airflow.
Supporto per le classi di calcolo in Cloud Composer 2
Cloud Composer 2 supporta solo contenuti per uso generico classe di computing. Significa che l'esecuzione di pod che richiedono altre classi di calcolo (come Bilanciata o Scale out) non è possibile.
La classe uso generico consente l'esecuzione di pod che richiedono fino a 110 GB di e fino a 30 CPU (come descritto in Richieste di classe Compute Max.
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 di Cloud Composer 2.
Consiglio: usa GKEStartPodOperator
per eseguire i pod Kubernetes su
a un cluster diverso che supporti la classe di computing selezionata. Se
che richiedono una classe di computing diversa, poi devono eseguire
su un cluster non Cloud Composer 2.
Supporto per gli operatori di Google Campaign Manager 360
Operatori di Google Campaign Manager in Cloud Composer nelle versioni precedenti alla versione 2.1.13 si basano sull'API Campaign Manager 360 3.5 ritirata e la sua data di ritiro è il 1° maggio 2023.
Se utilizzi gli operatori di Google Campaign Manager, esegui l'upgrade dell'ambiente a Cloud Composer versione 2.1.13 o successive.
Supporto per gli operatori Google Display & Video 360
Operatori di Google Display & Video 360 nelle versioni di Cloud Composer precedenti alla versione 2.1.13 si basano sull'API Display & Video 360 v1.1, ritirato e la data di ritiro è il 27 aprile 2023.
Se utilizzi gli operatori di Google Display & Video 360, esegui l'upgrade dell'ambiente a Cloud Composer versione 2.1.13 o successive. Inoltre, potresti dover modificare i DAG perché alcune gli operatori di Google Display & Video 360 sono stati ritirati e sostituiti con di nuovi.
GoogleDisplayVideo360CreateReportOperator
è deprecato. Invece, usaGoogleDisplayVideo360CreateQueryOperator
. Questo operatore restituiscequery_id
anzichéreport_id
.GoogleDisplayVideo360RunReportOperator
è deprecato. Invece, usaGoogleDisplayVideo360RunQueryOperator
. Questo operatore restituiscequery_id
ereport_id
anziché soloreport_id
e richiedequery_id
anzichéreport_id
come parametro.- Per verificare se un report è pronto, utilizza la nuova
GoogleDisplayVideo360RunQuerySensor
che utilizzaquery_id
e Parametrireport_id
. L'elementoGoogleDisplayVideo360ReportSensor
deprecato sensore richiesto soloreport_id
. GoogleDisplayVideo360DownloadReportV2Operator
ora richiedequery_id
ereport_id
.- In
GoogleDisplayVideo360DeleteReportOperator
non ci sono modifiche possono influire sui DAG.
Limitazioni relative ai nomi degli intervalli secondari
CVE-2023-29247 (la pagina dei dettagli dell'istanza dell'attività nell'interfaccia utente è vulnerabile a un XSS archiviato)
La UI di Airflow nelle versioni da 2.0.x a 2.5.x è vulnerabile a CVE-2023-29247.
Se usi una versione precedente di Cloud Composer rispetto alla 2.4.2 e sospetta che il tuo ambiente sia vulnerabile all'exploit, leggi la seguente descrizione e le possibili soluzioni.
In Cloud Composer, l'accesso alla UI di Airflow viene protetta con IAM e Controllo dell'accesso all'UI di Airflow.
Ciò significa che per sfruttare la vulnerabilità dell'UI di Airflow, i malintenzionati devi prima accedere al tuo progetto insieme ai Autorizzazioni e ruoli IAM.
Soluzione:
Verifica le autorizzazioni e i ruoli IAM nel progetto, inclusi Ruoli di Cloud Composer assegnati a singoli utenti. Assicurati che solo gli utenti approvati possano accedere alla UI di Airflow.
Verifica i ruoli assegnati agli utenti tramite Controllo dell'accesso all'UI di Airflow (meccanismo separato che fornisce un accesso più granulare alla UI di Airflow). Assicurati che solo gli utenti approvati possano accedere UI di Airflow e che tutti i nuovi utenti siano registrati con un ruolo appropriato.
Valuta il rafforzamento aggiuntivo con Controlli di servizio VPC.
Il DAG di monitoraggio del flusso di aria dell'ambiente Cloud Composer 2 Composer non viene ricreato dopo l'eliminazione
Il DAG di monitoraggio del flusso di aria non viene ricreato automaticamente se eliminato dall'utente o spostato dal bucket in ambienti Composer 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 è quello di eseguire l'upgrade dell'ambiente a una versione più recente.
- Una soluzione alternativa o temporanea a un upgrade dell'ambiente sarebbe copiare il DAG airflow_monitoring da un altro ambiente con la stessa versione.
Le operazioni di upgrade potrebbero non riuscire se Sentry è abilitato
L'operazione di upgrade per un ambiente Cloud Composer potrebbe non riuscire
se hai configurato Sentry nel tuo ambiente e hai impostato [sentry]sentry_on
su true
.
Soluzione:
- Disattiva Sentry nel tuo ambiente, esegui l'upgrade e configura Di nuovo Sentry.
Non è possibile ridurre lo spazio di archiviazione di Cloud SQL
Cloud Composer utilizza Cloud SQL per eseguire il database Airflow. Sopra di tempo, lo spazio di archiviazione su disco per l'istanza Cloud SQL potrebbe aumentare perché viene fatto lo scale up 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 Cloud SQL.
Come soluzione alternativa, se vuoi utilizzare il disco Cloud SQL più piccolo di grandi dimensioni, puoi ricreare ambienti Cloud Composer con gli snapshot.
La metrica di utilizzo del disco di database non si riduce dopo la rimozione dei record da Cloud SQL
I database relazionali, come Postgres o MySQL, non rimuovono fisicamente le righe quando eliminati o aggiornati. Le contrassegna invece come "tuple morte" mantenere la coerenza dei dati ed evitare di bloccare le transazioni simultanee.
Sia MySQL che Postgres implementano meccanismi per recuperare spazio dopo l'eliminazione record.
Sebbene sia possibile forzare il database a recuperare spazio su disco inutilizzato, è un'operazione che richiede molte risorse, che blocca inoltre la creazione del database Cloud Composer non disponibile. Di conseguenza, ti consigliamo di fare affidamento per costruire meccanismi 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 le
Error 400: admin_policy_enforced
messaggio.
Se la casella di controllo Controlli API > App di terze parti non configurate > L'opzione Non consentire agli utenti di accedere alle app di terze parti è abilitati in Google Workspace e Apache Airflow in L'app Cloud Composer non è consentita esplicitamente, gli utenti non possono accedono alla UI di Airflow a meno che non lo consentano esplicitamente all'applicazione.
Per consentire l'accesso, segui i passaggi indicati in Consenti l'accesso alla UI di Airflow in Google Workspace.
Istanze di attività riuscite in passato contrassegnate come NON riuscite
In alcune circostanze e scenari rari, le istanze di attività Airflow riuscite
nel passato possono essere contrassegnate come FAILED
.
Se accade, di solito è stato attivato da un aggiornamento dell'ambiente o dall'operazione di upgrade o dalla manutenzione di GKE.
Nota:il problema in sé non indica alcun problema nell'ambiente e non causa errori effettivi nell'esecuzione dell'attività.
Il problema è stato risolto in Cloud Composer 2.6.5 o versioni successive.
I componenti di Airflow hanno problemi durante la comunicazione con altre parti della configurazione di Cloud Composer
In rarissimi casi, la lentezza della comunicazione con Compute Engine Il server di metadati potrebbe impedire il funzionamento ottimale dei componenti Airflow. Ad esempio, lo scheduler di Airflow potrebbe essere riavviato, le attività di Airflow potrebbero dover o il tempo di avvio dell'attività potrebbe essere più lungo.
Sintomi:
I seguenti errori vengono visualizzati nei componenti Airflow come Airflow scheduler, worker o server 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
Soluzione:
Imposta la seguente variabile di ambiente: GCE_METADATA_TIMEOUT=30
.
La cartella /data non è disponibile nel server web Airflow
In Cloud Composer 2, il server web Airflow è pensato per essere principalmente di sola lettura
e Cloud Composer non sincronizza la cartella data/
a questo componente.
A volte potresti voler condividere file comuni tra tutti i servizi Airflow tra cui il server web Airflow.
Soluzione:
Aggrega i file da condividere con il server web in un modulo PYPI e installarlo come un normale pacchetto PYPI. Dopo aver installato il modulo PYPI nell'ambiente, i file vengono aggiunti alle immagini di Airflow componenti e sono a loro disposizione.
Aggiungi file alla cartella
plugins/
. Questa cartella è sincronizzata con il server web Airflow.
Tempi di analisi dei DAG non continui e diagrammi delle dimensioni dei bag DAG nel monitoraggio
Tempi di analisi dei DAG non continui e diagrammi delle dimensioni dei bag dei DAG nel monitoraggio indicano problemi con lunghi tempi di analisi dei DAG (più di 5 minuti).
.Soluzione: Consigliamo di mantenere il tempo totale di analisi dei DAG al di sotto di 5 minuti. ridurre il DAG tempo di analisi, segui le linee guida per la scrittura dei DAG.
Passaggi successivi
- Risolvere i problemi di creazione dell'ambiente
- Risoluzione dei problemi dei DAG
- Risoluzione dei problemi dello scheduler Airflow