Problemi noti

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

Questa pagina elenca i problemi noti di Cloud Composer. Per informazioni sulle correzioni dei problemi, consulta le note di rilascio.

Alcuni problemi interessano le versioni precedenti e possono essere risolti con l'upgrade dell'ambiente.

Gli intervalli di indirizzi non RFC 1918 sono supportati parzialmente per i pod e i servizi

Cloud Composer dipende da GKE per fornire il supporto per gli indirizzi non RFC 1918 per i pod e i servizi. In Cloud Composer è 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 Compute Engine nel cluster dell'ambiente. Come soluzione alternativa, puoi applicare le etichette manualmente.

Impossibile creare ambienti Cloud Composer con i vincoli delle norme dell'organizzazione/compute.disableSerialPortLogging applicati

La creazione dell'ambiente Cloud Composer non riesce se il criterio dell'organizzazione constraints/compute.disableSerialPortLogging viene applicato al progetto di destinazione.

Diagnosi

Per stabilire se il problema ti riguarda, segui questa procedura:

Vai al menu GKE nella console Google Cloud. Visita il menu GKE

Quindi, seleziona il cluster appena creato. Verifica se è presente il 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:

  1. Disattiva il criterio dell'organizzazione nel progetto in cui verrà creato l'ambiente Cloud Composer.

    Un criterio dell'organizzazione può sempre essere disattivato a livello di progetto anche se è abilitato nelle risorse di primo livello (organizzazione o cartella). Per ulteriori dettagli, consulta la pagina Personalizzazione dei criteri per i vincoli booleani.

  2. Utilizzare i filtri di esclusione

    L'utilizzo di un filtro di esclusione per i log della porta seriale consente di ottenere lo stesso risultato della disattivazione del criterio dell'organizzazione, poiché in Logging saranno presenti i log della console seriale. Per ulteriori dettagli, consulta la pagina Filtri di esclusione.

Utilizzo di Deployment Manager per gestire le Google Cloud risorse protette dai Controlli di servizio VPC

Le versioni 2.0.x di Cloud Composer 1 e Cloud Composer 2 utilizzano Deployment Manager per creare i componenti degli ambienti Cloud Composer.

A dicembre 2020 potresti aver ricevuto informazioni che ti comunicano che potresti dover eseguire un'ulteriore configurazione di Controlli di servizio VPC per poter utilizzare Deployment Manager per gestire le risorse protette da Controlli di servizio VPC.

Ci teniamo a chiarire che non è richiesta alcuna azione da parte tua se utilizzi Cloud Composer e non utilizzi Deployment Manager direttamente per gestire le risorse Google Cloud menzionate nell'annuncio di Deployment Manager.

Deployment Manager mostra informazioni su una funzionalità non supportata

Nella scheda Deployment Manager potresti visualizzare 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.

Impossibile eliminare un ambiente dopo l'eliminazione del relativo cluster

Questo problema si applica alle versioni 2.0.x di Cloud Composer 1 e Cloud Composer 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:

  1. Nella console Google Cloud, vai alla pagina Deployment Manager.

    Vai a Deployment Manager

  2. Trova tutti i deployment contrassegnati con etichette:

    • goog-composer-environment:<environment-name>
    • goog-composer-location:<environment-location>.

    Dovresti vedere due implementazioni contrassegnate con le etichette descritte:

    • Un deployment denominato <environment-location>-<environment-name-prefix>-<hash>-sd
    • Un deployment denominato addons-<uuid>
  3. Elimina manualmente le risorse ancora elencate in questi due deployment ed esistenti nel progetto (ad esempio, argomenti e sottoscrizioni Pub/Sub). Ecco come fare:

    1. Seleziona i deployment.

    2. Fai clic su Elimina.

    3. Seleziona l'opzione Elimina 2 deployment e tutte le risorse create, come VM, bilanciatori del carico e dischi e fai clic su Elimina tutto.

    L'operazione di eliminazione non riesce, ma le risorse rimanenti vengono eliminate.

  4. Elimina i deployment utilizzando una delle seguenti opzioni:

    • Nella console Google Cloud, seleziona di nuovo entrambi i deployment. Fai clic su Elimina, poi seleziona l'opzione Elimina 2 deployment, ma mantieni le risorse create.

    • 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
      
  5. Elimina l'ambiente Cloud Composer.

Avvisi relativi a voci duplicate dell'attività "echo" appartenente al DAG "echo-airflow_monitoring"

Nei log di Airflow potresti visualizzare 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 sull'elaborazione delle attività e dei DAG di Airflow.

Stiamo lavorando per migliorare il servizio Cloud Composer 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 in cui sono attivati i Controlli di servizio VPC, l'account cloud-airflow-prod@system.gserviceaccount.com richiede 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 TCP 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 o l'upgrade dell'ambiente Cloud Composer non riesce quando il criterio compute.vmExternalIpAccess è disattivato

Questo problema si applica agli ambienti Cloud Composer 1 e Cloud Composer 2.

I cluster GKE di proprietà di Cloud Composer configurati in modalità IP pubblico richiedono 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 ulteriori informazioni su questo criterio dell'organizzazione, consulta Vincoli delle policy dell'organizzazione.

La prima esecuzione di un file DAG caricato presenta diverse attività non riuscite

Quando carichi un file DAG, a volte le prime attività del primo DAG eseguito non vanno a buon fine con l'errore Unable to read remote log.... Questo problema si verifica perché il file DAG è sincronizzato tra il bucket, i worker e gli scheduler di Airflow del tuo ambiente. Se lo scheduler riceve il file DAG e lo pianifica per l'esecuzione da parte di un worker e se il worker non ha ancora il file DAG, l'esecuzione dell'attività non va a buon fine.

Per mitigare il problema, gli ambienti con Airflow 2 sono configurati per eseguire per impostazione predefinita due nuovi tentativi per un'attività non riuscita. Se un'attività non va a buon fine, viene riprovata due volte con intervalli di 5 minuti.

Annunci relativi alla rimozione del supporto per le API beta deprecate dalle versioni di GKE

Cloud Composer gestisce i cluster GKE di proprietà di Cloud Composer. A meno che tu non utilizzi esplicitamente queste API nei DAG e nel codice, puoi ignorare gli annunci relativi al ritiro delle API GKE. Cloud Composer si occupa di eventuali migrazioni, se necessario.

Cloud Composer non dovrebbe essere interessato dalla vulnerabilità di Apache Log4j 2 (CVE-2021-44228)

In risposta alla vulnerabilità di 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 di accesso al bucket Cloud Storage dell'ambiente

Cloud Composer utilizza gcsfuse per accedere alla cartella /data nel bucket dell'ambiente e per salvare i log delle attività di Airflow nella directory /logs (se attivata). Se gcsfuse è sovraccaricato o il bucket dell'ambiente non è disponibile, potresti riscontrare errori di istanze di attività Airflow e vedere 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 viene creato un ambiente utilizzando Cloud Composer 2.8.0 o versioni successive.
  • Esegui l'upgrade a Cloud Composer 2.8.0 o versioni successive.
  • Riduci [celery]worker_concurrency e aumenta il numero di worker Airflow.
  • Riduci la quantità di log prodotti nel codice del DAG.
  • Segui i consigli e le best practice per l'implementazione dei DAG e abilita i tentativi di esecuzione di nuovo delle attività.

A volte l'interfaccia utente di Airflow potrebbe non ricaricare un plug-in dopo averlo modificato

Se un plug-in è costituito 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 caricato di nuovo. In questo caso, riavvia il server web di Airflow del tuo ambiente.

Il cluster dell'ambiente ha workload nello stato Non pianificabile

Questo problema noto si applica solo a Cloud Composer 2.

In Cloud Composer 2, dopo la creazione di un ambiente, diversi carichi di lavoro nel cluster dell'ambiente rimangono nello stato Non pianificabile.

Quando un ambiente viene scalato verso l'alto, vengono creati nuovi pod worker e Kubernetes tenta di eseguirli. Se non sono disponibili risorse gratuite per eseguirli, i pod di lavoro vengono contrassegnati come Non pianificabili.

In questa situazione, il gestore della scalabilità automatica dei cluster aggiunge altri nodi, il che richiede un paio di minuti. Fino a quel momento, i pod rimangono nello stato Non pianificabile e non eseguono alcuna attività.

I carichi di lavoro DaemonSet non pianificabili denominati composer-gcsfuse e composer-fluentd che non sono in grado di avviarsi sui nodi in cui non sono presenti i componenti di Airflow non influiscono sul tuo ambiente.

Se il problema persiste per molto tempo (oltre 1 ora), puoi controllare i log di Cluster Autoscaler. Puoi trovarli in Logs Viewer 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 all'interfaccia utente 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 transitorio. In questo caso, prova ad accedere all'interfaccia utente di Airflow più tardi. Puoi anche riavviare il server web Airflow.

  • (Solo Cloud Composer 3) Problema di connettività. Se l'interfaccia utente di Airflow non è più disponibile e vengono generati errori di timeout o 504, assicurati che il tuo ambiente possa accedere a *.composer.googleusercontent.com.

  • (Solo Cloud Composer 2) Problema di connettività. Se l'interfaccia utente di Airflow non è più disponibile e vengono generati errori di timeout o 504, assicurati che il tuo ambiente possa accedere a *.composer.cloud.google.com. Se utilizzi Accesso privato Google e invii traffico tramite IP virtuali private.googleapis.com o Controlli di servizio VPC e invii traffico tramite IP virtuali restricted.googleapis.com, assicurati che Cloud DNS sia configurato anche per i nomi di dominio *.composer.cloud.google.com.

  • Server web Airflow non risponde. Se l'errore 504 persiste, ma riesci comunque ad accedere all'interfaccia utente di Airflow in determinati momenti, il server web di Airflow potrebbe non rispondere perché è sovraccaricato. Prova a aumentare i parametri di scalabilità e prestazioni del server web.

Errore 502 durante l'accesso all'interfaccia utente di Airflow

L'errore 502 Internal server exception indica che l'interfaccia utente di Airflow non può gestire le richieste in arrivo. Questo errore può avere diverse cause:

  • Problema di comunicazione transitorio. Prova ad accedere all'interfaccia utente di Airflow in un secondo momento.

  • Impossibile avviare il server web. Per iniziare, il server web richiede prima di sincronizzare i file di configurazione. Controlla i log del server web per verificare la presenza di voci simili a: GCS sync exited with 1: gcloud storage cp gs://<bucket-name>/airflow.cfg /home/airflow/gcs/airflow.cfg.tmp o GCS 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 menzionati nei messaggi di errore sono ancora presenti nel bucket dell'ambiente.

    In caso di rimozione accidentale (ad esempio perché è stata configurata una norma di conservazione), puoi ripristinarle:

    1. Imposta una nuova variabile di ambiente nel tuo ambiente. Puoi utilizzare qualsiasi nome e valore della variabile.

    2. Esegui l'override di un'opzione di configurazione di Airflow. Puoi utilizzare un'opzione di configurazione di Airflow non esistente.

Il passaggio del mouse sopra l'istanza dell'attività nella visualizzazione ad albero genera un TypeError non rilevato

In Airflow 2, a volte la visualizzazione ad albero nell'interfaccia utente di Airflow potrebbe non funzionare correttamente se viene utilizzato un fuso orario diverso da quello predefinito. Come soluzione alternativa a questo problema, configura il fuso orario in modo esplicito nell'interfaccia utente di Airflow.

L'interfaccia utente di Airflow in Airflow 2.2.3 o versioni precedenti è vulnerabile a CVE-2021-45229

Come indicato in CVE-2021-45229, la schermata "Attiva DAG con configurazione" era soggetta 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:

  • Nell'ambiente Cloud Composer 2, tutti i carichi di lavoro del cluster dei worker Airflow sono nello stato CrashLoopBackOff e non eseguono attività. Puoi anche visualizzare gli avvisi OOMKilling generati se il problema ti riguarda.

  • Questo problema può impedire gli upgrade dell'ambiente.

Causa:

  • Se utilizzi un valore personalizzato per l'opzione di configurazione di Airflow [celery]worker_concurrency e le impostazioni di memoria personalizzate per i worker di 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 Cloud Composer 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 del tuo ambiente a una versione successiva a causa di questo problema, applica una delle soluzioni proposte prima di eseguire l'upgrade.

Attivazione dei DAG tramite reti private utilizzando le funzioni Cloud Run

L'attivazione di DAG con funzioni Cloud Run tramite reti private con l'utilizzo di VPC Connector non è supportata da Cloud Composer.

Consiglio: utilizza le funzioni Cloud Run per pubblicare messaggi su Pub/Sub. Questi eventi possono attivare i sensori Pub/Sub per attivare i DAG di Airflow o implementare un approccio basato su operatori differibili.

Cartelle vuote in Scheduler e Workers

Cloud Composer non rimuove attivamente le cartelle vuote dai worker e dagli scheduler di Airflow. Queste entità potrebbero essere state create a seguito della procedura di sincronizzazione del bucket dell'ambiente quando queste cartelle esistevano nel bucket e sono state eventualmente rimosse.

Consiglio: modifica i DAG in modo che siano pronti a saltare queste directory vuote.

Queste entità vengono eventualmente rimosse dagli spazi di archiviazione locali degli pianificatori e dei worker di Airflow quando questi componenti vengono riavviati (ad esempio a seguito di operazioni di ridimensionamento o manutenzione nel cluster dell'ambiente).

Supporto di Kerberos

Cloud Composer non supporta la configurazione Kerberos di Airflow.

Supporto per le classi di calcolo in Cloud Composer 2 e Cloud Composer 3

Cloud Composer 3 e Cloud Composer 2 supportano solo la classe di calcolo general purpose. Ciò significa che non è possibile eseguire pod che richiedono altre classi di calcolo (ad esempio Equilibrato o Scalabilità orizzontale).

La classe general purpose consente di eseguire pod che richiedono fino a 110 GB di memoria e fino a 30 CPU (come descritto in Richieste massime della classe di calcolo.

Se vuoi utilizzare un'architettura basata su ARM o hai bisogno di più CPU e memoria, devi utilizzare una classe di calcolo diversa, che non è supportata nei cluster Cloud Composer 3 e Cloud Composer 2.

Consiglio: utilizza GKEStartPodOperator per eseguire i pod Kubernetes su un altro cluster che supporta la classe di calcolo selezionata. Se esegui pod personalizzati che richiedono una classe di calcolo diversa, devono essere eseguiti anche su un cluster non Cloud Composer.

Supporto per gli operatori di Google Campaign Manager 360

Gli operatori Google Campaign Manager nelle versioni di Cloud Composer precedenti alla 2.1.13 si basano sull'API Campaign Manager 360 v3.5, che è deprecata e la cui data di ritiro è il 1° maggio 2023.

Se utilizzi gli operatori di Google Campaign Manager, esegui l'upgrade dell'ambiente alla versione 2.1.13 o successiva di Cloud Composer.

Supporto per gli operatori di Google Display & Video 360

Gli operatori Google Display & Video 360 nelle versioni di Cloud Composer precedenti alla 2.1.13 si basano sull'API Display & Video 360 v1.1, ritirata 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 successiva di Cloud Composer. Inoltre, potrebbe essere necessario modificare i DAG perché alcuni degli operatori di Google Display & Video 360 sono stati ritirati e sostituiti da nuovi.

  • GoogleDisplayVideo360CreateReportOperator è stato deprecato. Utilizza invece GoogleDisplayVideo360CreateQueryOperator. Questo operatore restituisce query_id anziché report_id.
  • GoogleDisplayVideo360RunReportOperator è stato deprecato. Utilizza invece GoogleDisplayVideo360RunQueryOperator. Questo operatore restituisce query_id e report_id anziché solo report_id e richiede query_id anziché report_id come parametro.
  • Per verificare se un report è pronto, utilizza il nuovo sensore GoogleDisplayVideo360RunQuerySensor che utilizza i parametri query_id e report_id. Il sensore GoogleDisplayVideo360ReportSensor dismesso richiedeva solo report_id.
  • GoogleDisplayVideo360DownloadReportV2Operator ora richiede sia i parametri query_id che report_id.
  • In GoogleDisplayVideo360DeleteReportOperator non sono presenti modifiche che possono influire sui tuoi DAG.

Restrizioni relative al nome dell'intervallo secondario

CVE-2023-29247 (la pagina dei dettagli dell'istanza dell'attività nell'interfaccia utente è vulnerabile a un XSS memorizzato)

L'interfaccia utente di Airflow nelle versioni da 2.0.x a 2.5.x è vulnerabile a CVE-2023-29247.

Se utilizzi una versione precedente a 2.4.2 di Cloud Composer e sospetti che il tuo ambiente possa essere vulnerabile all'exploit, consulta la descrizione seguente e le possibili soluzioni.

In Cloud Composer, l'accesso all'interfaccia utente di Airflow è protetto con IAM e il controllo dell'accesso all'interfaccia utente di Airflow.

Ciò significa che, per sfruttare la vulnerabilità dell'interfaccia utente di Airflow, gli attaccanti devono prima ottenere l'accesso al tuo progetto, nonché alle autorizzazioni e ai ruoli IAM necessari.

Soluzione:

  • Verifica le autorizzazioni e i ruoli IAM nel progetto, inclusi i ruoli Cloud Composer 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 dell'accesso 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.

  • Valuta la possibilità di applicare ulteriori misure di rafforzamento con i Controlli di servizio VPC.

Il DAG di monitoraggio di Airflow dell'ambiente Cloud Composer 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 negli 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.
  • Una soluzione alternativa o temporanea per l'upgrade di un 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

Cloud Composer utilizza Cloud SQL per eseguire il database Airflow. Nel tempo, lo spazio di archiviazione del disco per l'istanza Cloud SQL potrebbe aumentare perché il disco viene scalato in base ai dati archiviati dalle operazioni Cloud SQL quando il database Airflow cresce.

Non è possibile ridurre le dimensioni del disco Cloud SQL.

Come soluzione alternativa, se vuoi utilizzare la dimensione del disco Cloud SQL più piccola, puoi ricreare gli ambienti Cloud Composer con gli snapshot.

La metrica Utilizzo del disco del 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 vengono eliminate o aggiornate. Le contrassegna come "tuple non attive" per mantenere la coerenza dei dati ed evitare di bloccare le transazioni concorrenti.

Sia MySQL che Postgres implementano meccanismi di recupero dello spazio dopo l'eliminazione delle 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 inoltre il database rendendo Cloud Composer non disponibile. Pertanto, è consigliabile fare affidamento sui meccanismi di compilazione 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 Cloud Composer 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, svolgi i passaggi descritti in Consentire l'accesso all'interfaccia utente di Airflow in Google Workspace.

Loop di accesso quando si accede all'interfaccia utente di Airflow

Questo problema potrebbe essere dovuto alle seguenti cause:

Istanze di attività riuscite in passato contrassegnate come NON RIUSSITE

In alcuni casi e in rari scenari, le istanze di attività Airflow andate a buon fine in passato possono essere contrassegnate come FAILED.

In genere, questo evento viene 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 Cloud Composer versione 2.6.5 o successive.

I componenti Airflow hanno problemi di comunicazione con altre parti della configurazione di Cloud Composer

In casi molto rari, la lentezza della comunicazione con il server di metadati di Compute Engine potrebbe causare il malfunzionamento dei componenti di Airflow. Ad esempio, lo scheduler di Airflow potrebbe essere riavviato, le attività di Airflow potrebbero dover essere ripetute o il tempo di avvio delle attività potrebbe essere più lungo.

Sintomi:

Nei log dei componenti di Airflow (ad esempio gli scheduler, i worker o il server web di Airflow) vengono visualizzati i seguenti errori:

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 e Cloud Composer 3, il server web Airflow è pensato per essere un componente principalmente di sola lettura e Cloud Composer non sincronizza la cartella data/ con questo componente.

A volte, potresti voler condividere file comuni tra tutti i componenti di 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.

  • Aggiungi file alla cartella plugins/. Questa cartella viene sincronizzata con il server web Airflow.

Tempi di analisi dei DAG non continui e diagrammi delle dimensioni dei bag DAG nel monitoraggio

I tempi di analisi DAG non continui e i diagrammi delle dimensioni dei bag DAG nella dashboard di monitoraggio indicano problemi con tempi di analisi DAG lunghi (più di 5 minuti).

Tempi di analisi dei DAG di Airflow e grafici delle dimensioni dei bag DAG che mostrano una serie di intervalli non continui
Figura 1. Grafici dei tempi di analisi dei DAG non continui e delle dimensioni dei bag DAG (fai clic per ingrandire)

Soluzione: consigliamo di mantenere il tempo di analisi totale del DAG inferiore a 5 minuti. Per ridurre il tempo di analisi del DAG, segui le linee guida per la scrittura del DAG.

I log dei componenti di Cloud Composer non sono presenti in Cloud Logging

Si è verificato un problema nel componente dell'ambiente responsabile del caricamento i log dei componenti Airflow in Cloud Logging. A volte questo bug porta a una situazione in cui il log a livello di Cloud Composer potrebbe mancare per un componente Airflow. Lo stesso log è ancora disponibile a livello di componente Kubernetes.

Ricorrenza del problema: molto raro, sporadico

Causa:

Comportamento errato del componente Cloud Composer responsabile del caricamento dei log in Cloud Logging.

Soluzioni:

  • Esegui l'upgrade dell'ambiente alla versione 2.10.0 o successiva di Cloud Composer.

  • Nelle versioni precedenti di Cloud Composer, la soluzione temporanea quando si verifica questa situazione è avviare un'operazione Cloud Composer che riavvia i componenti per i quali manca il log.

Il passaggio del cluster dell'ambiente alla versione GKE Enterprise non è supportato

Questa nota si applica a Cloud Composer 1 e Cloud Composer 2.

Il cluster GKE dell'ambiente Cloud Composer viene creato all'interno di GKE Standard Edition.

A partire da dicembre 2024, il servizio Cloud Composer non supporta la creazione di ambienti Cloud Composer con cluster nella versione Enterprise.

Gli ambienti Cloud Composer 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.

I componenti Airflow riscontrano problemi di comunicazione con altre parti della configurazione di Cloud Composer

In alcuni casi, a causa di una risoluzione DNS non riuscita, i componenti di Airflow potrebbero riscontrare problemi di comunicazione con altri componenti di Cloud Composer o endpoint di servizio esterni all'ambiente Cloud Composer.

Sintomi:

Nei log dei componenti di Airflow (ad esempio gli schedulatori, i worker o il server web di 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 Cloud Composer 2.9.11 o

  • Imposta la seguente variabile di ambiente: GCE_METADATA_HOST=169.254.169.254.

L'ambiente è in stato ERROR dopo che l'account di fatturazione del progetto è stato eliminato o disattivato oppure l'API Cloud Composer è stata disattivata

Gli ambienti Cloud Composer interessati da questi problemi non sono recuperabili:

  • Dopo che l'account di fatturazione del progetto è stato eliminato o disattivato, anche se successivamente è stato collegato un altro account.
  • Dopo che l'API Cloud Composer è stata disattivata nel progetto, anche se è stata abilitata in un secondo momento.

Per risolvere il problema:

  • Puoi comunque accedere ai dati archiviati nei bucket del tuo ambiente, ma gli ambienti stessi non sono più utilizzabili. Puoi creare un nuovo ambiente Cloud Composer e poi trasferire i DAG e i dati.

  • Se vuoi eseguire una delle operazioni che rendono i tuoi 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 trasferirne i dati caricando questo snapshot.

Avvisi sul budget di interruzione dei pod per i cluster di ambienti

Nell'interfaccia utente di GKE puoi vedere i seguenti avvisi per i cluster dell'ambiente Cloud Composer:

GKE can't perform maintenance because the Pod Disruption Budget allows
for 0 Pod evictions. Update the Pod Disruption Budget.
A StatefulSet is configured with a Pod Disruption Budget but without readiness
probes, so the Pod Disruption Budget isn't as effective in gauging application
readiness. Add one or more readiness probes.

Non è possibile eliminare questi avvisi. Stiamo lavorando per impedire la generazione di questi avvertimenti.

Possibili soluzioni:

  • Ignora questi avvisi finché il problema non viene risolto.

Passaggi successivi