Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Questa pagina fornisce informazioni per la risoluzione dei problemi che potresti riscontrare durante l'aggiornamento o l'upgrade degli ambienti Cloud Composer.
Per informazioni sulla risoluzione dei problemi relativi alla creazione di ambienti, vedi Risoluzione dei problemi di creazione dell'ambiente.
Quando gli ambienti Cloud Composer vengono aggiornati, la maggior parte dei problemi si verifica per i seguenti motivi:
- Problemi relativi alle autorizzazioni del service account
- Problemi di dipendenza PyPI
- Dimensioni del database Airflow
Autorizzazioni insufficienti per aggiornare o eseguire l'upgrade di un ambiente
Se Cloud Composer non riesce ad aggiornare o eseguire l'upgrade di un ambiente a causa di autorizzazioni insufficienti, viene visualizzato il seguente messaggio di errore:
ERROR: (gcloud.composer.environments.update) PERMISSION_DENIED: The caller does not have permission
Soluzione: assegna i ruoli sia al tuo account sia al account di servizio del tuo ambiente come descritto in Controllo dell'accesso.
Il account di servizio dell'ambiente dispone di autorizzazioni insufficienti
Quando crei un ambiente Cloud Composer, specifichi un service account che esegue la maggior parte delle operazioni dell'ambiente. Se questo account di servizio non dispone di autorizzazioni sufficienti per l'operazione richiesta, Cloud Composer restituisce un errore:
UPDATE operation on this environment failed 3 minutes ago with the
following error message:
Composer Backend timed out. Currently running tasks are [stage:
CP_COMPOSER_AGENT_RUNNING
description: "No agent response published."
response_timestamp {
seconds: 1618203503
nanos: 291000000
}
].
Soluzione: assegna ruoli al tuo Account Google e al account di servizio del tuo ambiente come descritto in Controllo dell'accesso.
Le dimensioni del database Airflow sono troppo grandi per eseguire l'operazione
Un'operazione di upgrade potrebbe non riuscire perché le dimensioni del database Airflow sono troppo grandi per il completamento delle operazioni di upgrade.
Se le dimensioni del database Airflow sono superiori a 16 GB, Cloud Composer restituisce il seguente errore:
Airflow database uses more than 16 GB. Please clean the database before upgrading.
Soluzione: esegui la pulizia del database Airflow, come descritto in Pulizia del database Airflow.
L'upgrade a una nuova versione di Cloud Composer non riesce a causa di conflitti tra pacchetti PyPI
Quando esegui l'upgrade di un ambiente con pacchetti PyPI personalizzati installati, potresti riscontrare errori relativi a conflitti tra pacchetti PyPI. Ciò potrebbe accadere perché la nuova immagine di Cloud Composer contiene versioni successive dei pacchetti preinstallati. Ciò può causare conflitti di dipendenza con i pacchetti PyPI installati nell'ambiente.
Soluzione:
- Per informazioni dettagliate sui conflitti tra pacchetti, esegui un controllo dell'upgrade.
- Allenta i vincoli di versione per i pacchetti PyPI personalizzati installati. Ad esempio,
invece di specificare una versione come
==1.0.1
, specifica>=1.0.1
. - Per saperne di più su come modificare i requisiti di versione per risolvere le dipendenze in conflitto, consulta la documentazione di pip.
Non è possibile eseguire l'upgrade di un ambiente a una versione ancora supportata
Gli ambienti Cloud Composer possono essere aggiornati solo a diverse versioni precedenti e più recenti.
I limiti di versione per la creazione di nuovi ambienti e l'upgrade di quelli esistenti sono diversi. La versione di Cloud Composer che scegli quando crei un nuovo ambiente potrebbe non essere disponibile durante l'upgrade degli ambienti esistenti.
Puoi eseguire l'operazione di upgrade utilizzando Google Cloud CLI, l'API o Terraform. Nella console Google Cloud sono disponibili solo le versioni più recenti come opzioni di upgrade.
L'ambiente non è integro (controllo di attività non riuscito)
È possibile eseguire l'upgrade di un ambiente solo se il suo stato è segnalato come integro.
Una delle cause più comuni dello stato non integro è quando i componenti dell'ambiente si avvicinano ai limiti delle risorse configurati e funzionano costantemente al carico massimo. Poiché alcuni componenti dell'ambiente non possono segnalare il proprio stato, il DAG del controllo di attività segnala lo stato dell'ambiente come non integro.
Per risolvere il problema, ti consigliamo di aumentare i limiti delle risorse. Sebbene ti consigliamo di evitare che il tuo ambiente si avvicini ai limiti in qualsiasi momento, puoi farlo anche solo per il periodo in cui viene eseguito l'upgrade dell'ambiente.
La mancanza di connettività al DNS può causare problemi durante l'esecuzione di upgrade o aggiornamenti
Questi problemi di connettività potrebbero comportare voci di log come questa:
WARNING - Compute Engine Metadata server unavailable attempt 1 of 5. Reason: [Errno -3] Temporary failure in name resolution Error
Di solito significa che non esiste una route per il DNS, quindi assicurati che il nome DNS metadata.google.internal possa essere risolto nell'indirizzo IP all'interno delle reti di cluster, pod e servizi. Controlla se l'accesso privato Google è attivato nel VPC (nel progetto host o di servizio) in cui è stato creato l'ambiente.
La CPU dell'attivatore supera il limite di 1 vCPU
Le versioni 2.4.4 e successive di Cloud Composer introducono una strategia di allocazione delle risorse del trigger diversa per migliorare lo scaling delle prestazioni. Se si verifica un errore relativo alla CPU del trigger durante l'esecuzione di un aggiornamento dell'ambiente, significa che i trigger attuali sono configurati per utilizzare più di 1 vCPU per trigger.
Soluzione:
- Regola l'allocazione delle risorse del triggerer per rispettare il limite di 1 vCPU.
- Se prevedi problemi con i DAG che utilizzano operatori differibili, ti consigliamo di aumentare anche il numero di trigger.
Esaminare gli avvisi di migrazione non riuscita
Quando esegui l'upgrade di Airflow a una versione successiva, a volte vengono applicati nuovi vincoli al database Airflow. Se questi vincoli non possono essere applicati, Airflow crea nuove tabelle per archiviare le righe per le quali non è stato possibile applicare i vincoli. L'interfaccia utente di Airflow mostra un messaggio di avviso finché le tabelle di dati spostate non vengono rinominate o eliminate.
Soluzione:
Puoi utilizzare i seguenti due DAG per esaminare i dati spostati e rinominare le tabelle.
L'list_moved_tables_after_upgrade_dag
DAG elenca le righe spostate da
ogni tabella in cui non è stato possibile applicare i vincoli. Esamina i dati e decidi
se vuoi conservarli. Per conservarlo, devi correggere manualmente i dati nel database Airflow. Ad esempio, aggiungendo di nuovo le righe con i dati corretti.
Se non hai bisogno dei dati o se li hai già corretti, puoi eseguire il
DAG rename_moved_tables_after_upgrade_dag
. Questo DAG rinomina le tabelle spostate.
Le tabelle e i relativi dati non vengono eliminati, quindi puoi esaminarli in un secondo momento.
L'operazione sull'ambiente rimane nello stato di errore a tempo indeterminato
Gli ambienti Cloud Composer 2 si basano su argomenti e abbonamenti Pub/Sub per comunicare con le risorse che si trovano nel progetto tenant del tuo ambiente durante le operazioni sull'ambiente.
Se l'API Pub/Sub è disabilitata nel tuo progetto o se gli argomenti o gli abbonamenti dell'ambiente vengono eliminati, un'operazione sull'ambiente potrebbe non riuscire e rimanere nello stato di errore a tempo indeterminato. Un ambiente di questo tipo diventa irrimediabilmente danneggiato.
Passaggi successivi
- Aggiornamento degli ambienti
- Upgrade degli ambienti
- Risoluzione dei problemi di creazione dell'ambiente