Risoluzione dei problemi di creazione dell'ambiente

Managed Airflow (terza generazione) | Managed Airflow (seconda generazione) | Managed Airflow (prima generazione legacy)

Questa pagina fornisce informazioni per la risoluzione dei problemi che potresti riscontrare durante la creazione di ambienti Managed Airflow.

Per informazioni sulla risoluzione dei problemi relativi all'aggiornamento e all'upgrade degli ambienti, consulta Risoluzione dei problemi relativi agli upgrade e agli aggiornamenti degli ambienti.

Quando vengono creati ambienti Managed Airflow, la maggior parte dei problemi si verifica per i seguenti motivi:

  • Problemi di autorizzazione del service account.

  • Informazioni errate su firewall, DNS o routing.

  • Problemi relativi alla rete. Ad esempio, configurazione VPC non valida, conflitti di indirizzi IP o intervalli IP di rete troppo ristretti.

  • Problemi relativi alla quota.

  • Policy dell'organizzazione non compatibili.

Autorizzazioni insufficienti per creare un ambiente

Se Managed Airflow non riesce a creare un ambiente perché il tuo account non dispone di autorizzazioni sufficienti, genera i seguenti messaggi di errore:

ERROR: (gcloud.composer.environments.create) PERMISSION_DENIED: The caller
does not have permission

o

ERROR: (gcloud.composer.environments.create) PERMISSION_DENIED: User not
authorized to act as service account <service-account-name>.
The user must be granted iam.serviceAccounts.actAs permission, included in
Owner, Editor, Service Account User role. See https://cloud.google.com/iam/docs
/understanding-service-accounts for additional details.

Soluzione: assegna i ruoli sia al tuo account sia al account di servizio del tuo ambiente come descritto in Controllo degli accessi.

  • In Airflow gestito (seconda generazione), assicurati che al account di servizio Cloud Composer Service Agent (service-PROJECT_NUMBER@cloudcomposer-accounts.iam.gserviceaccount.com) sia assegnato il ruolo Cloud Composer v2 API Service Agent Extension.

  • Assicurati che a Google APIs Service Agent (PROJECT_NUMBER@cloudservices.gserviceaccount.com) sia assegnato il ruolo Editor.

  • Nella configurazione VPC condiviso, segui le istruzioni Configurare il VPC condiviso.

Il account di servizio dell'ambiente non dispone di autorizzazioni sufficienti

Quando crei un ambiente Airflow gestito, devi specificare un service account che esegue i nodi del cluster GKE dell'ambiente. Se questo account di servizio non dispone di autorizzazioni sufficienti per l'operazione richiesta, Managed Airflow genera il seguente errore:

Errors in: [Web server]; Error messages:
  Creation of airflow web server version failed. This may be an intermittent
  issue of the App Engine service. You may retry the operation later.
{"ResourceType":"appengine.v1.version","ResourceErrorCode":"504","ResourceError
Message":"Your deployment has failed to become healthy in the allotted time
and therefore was rolled back. If you believe this was an error, try adjusting
the 'app_start_timeout_sec' setting in the 'readiness_check' section."}

Soluzione: assegna i ruoli sia al tuo account sia al account di servizio del tuo ambiente come descritto in Controllo degli accessi.

Avvisi relativi ai ruoli IAM mancanti nei service account

Quando la creazione di un ambiente non riesce, Managed Airflow genera il seguente messaggio di avviso dopo che si è verificato un errore: The issue may be caused by missing IAM roles in the following Service Accounts ....

Questo messaggio di avviso evidenzia le possibili cause dell'errore. Managed Airflow verifica la presenza dei ruoli richiesti nei service account del tuo progetto e, se questi ruoli non sono presenti, genera questo messaggio di avviso.

Soluzione: verifica che i service account menzionati nel messaggio di avviso abbiano i ruoli richiesti. Per saperne di più su ruoli e autorizzazioni in Managed Airflow, consulta Controllo degli accessi.

In alcuni casi, puoi ignorare questo avviso. Managed Airflow non controlla le singole autorizzazioni assegnate ai ruoli. Ad esempio, se utilizzi ruoli IAM personalizzati, è possibile che il account di servizio menzionato nel messaggio di avviso disponga già di tutte le autorizzazioni richieste. In questo caso, puoi ignorare questo avviso.

Una rete VPC selezionata per l'ambiente non esiste

Quando crei un ambiente Airflow gestito, puoi specificare una rete VPC e una subnet. Se non specifichi una rete VPC, il servizio Managed Airflow seleziona la rete VPC default e la subnet default per la regione e la zona dell'ambiente.

Se la rete VPC e la subnet specificate non esistono, Managed Airflow genera il seguente errore:

Errors in: [GKE cluster]; Error messages:
        {"ResourceType":"gcp-types/container-v1:projects.locations.clusters","R
        esourceErrorCode":"400","ResourceErrorMessage":{"code":400,"message":"P
        roject \"<your composer project>\" has no network named \"non-existing-
        vpc\".","status":"INVALID_ARGUMENT","statusMessage":"Bad
        Request","requestPath":"https://container.googleapis.com/
        v1/projects/<your composer
        project>/locations/<zone>/clusters","httpMethod":"POST"}}

Soluzione:

  • In Managed Airflow (seconda generazione), puoi creare ambienti che utilizzano Private Service Connect anziché le reti VPC.
  • Prima di creare un ambiente, assicurati che la rete VPC e la subnet per il nuovo ambiente esistano.

Configurazione di rete errata

Le creazioni di ambienti Managed Service for Apache Airflow richiedono una configurazione di rete o DNS corretta. Segui queste istruzioni per configurare la connettività alle API e ai servizi Google:

Se configuri gli ambienti Managed Service for Apache Airflow in modalità VPC condiviso, allora segui anche le istruzioni relative al VPC condiviso.

Un ambiente Managed Service for Apache Airflow utilizza una subnet per i nodi del cluster e intervalli IP per pod e servizi. Per garantire la comunicazione con questi e altri intervalli IP, segui queste istruzioni per configurare le regole firewall:

Puoi anche controllare le voci di log nelle categorie di configurazione selezionate GCE Networking e Subnetwork in Cloud Logging per verificare se sono stati segnalati errori durante la creazione dell'ambiente: Cloud Logging

Problemi di quota riscontrati durante la creazione di ambienti in reti su larga scala

Quando crei ambienti Managed Service for Apache Airflow in reti su larga scala, potresti riscontrare le seguenti limitazioni di quota:

  • È stato raggiunto il numero massimo di peering VPC per una singola rete VPC.
  • È stato raggiunto il numero massimo di intervalli IP di subnet primarie e secondarie.
  • È stato raggiunto il numero massimo di regole di forwarding nel gruppo di peering per il bilanciamento del carico TCP/UDP interno.

Soluzione:

Policy dell'organizzazione non compatibili

Le seguenti policy devono essere configurate in modo appropriato per consentire la creazione degli ambienti Managed Airflow.

Policy dell'organizzazione Managed Airflow (terza generazione) Managed Airflow (seconda generazione) Managed Airflow (Legacy Gen 1)
compute.disableSerialPortLogging È consentito qualsiasi valore Deve essere disattivato Disattivato per le versioni precedenti alla 1.13.0; in caso contrario, qualsiasi valore
compute.requireOsLogin È consentito qualsiasi valore È consentito qualsiasi valore Deve essere disattivato
compute.vmCanIpForward È consentito qualsiasi valore È consentito qualsiasi valore Deve essere consentito (obbligatorio per i cluster GKE di proprietà di Airflow gestito) quando la modalità nativa VPC (che utilizza IP alias) non è configurata
compute.vmExternalIpAccess È consentito qualsiasi valore Deve essere consentito per gli ambienti IP pubblici Deve essere consentito per gli ambienti IP pubblici
compute.restrictVpcPeering Può essere applicato Non può essere applicato Non può essere applicato
compute.disablePrivateServiceConnectCreationForConsumers È consentito qualsiasi valore Non è possibile vietare SERVICE_PRODUCERS per gli ambienti IP privati e pubblici. Non influisce sugli ambienti esistenti, che possono operare quando questa policy è abilitata. Non è possibile vietare SERVICE_PRODUCERS per gli ambienti IP privati. Non influisce sugli ambienti esistenti, che possono operare quando questa policy è abilitata.
compute.restrictPrivateServiceConnectProducer Quando è attiva, inserisci nell'allowlist l'organizzazione google.com Quando è attiva, inserisci nell'allowlist l'organizzazione google.com È consentito qualsiasi valore

Policy sul confine di accesso dell'entità non compatibili

Le policy sul confine di accesso dell'entità configurate nella tua organizzazione possono essere configurate in modo da bloccare alcune operazioni dell'ambiente o impedire la creazione di nuovi ambienti.

In questo caso, potresti visualizzare la seguente riga nei messaggi di errore:

Operations on resource are denied due to an IAM Principal Access Boundary Policy.

I componenti del tuo ambiente si trovano in un progetto tenant e in un progetto cliente. Il progetto tenant è gestito da Google e non appartiene all'organizzazione in cui si trova l'ambiente. Il service account del tuo ambiente deve disporre delle autorizzazioni per eseguire operazioni nel progetto tenant.

Soluzione:

Limitare i servizi utilizzati all'interno dell'organizzazione o del progetto

Gli amministratori dell'organizzazione o del progetto possono limitare i servizi Google che possono essere utilizzati nei loro progetti utilizzando il gcp.restrictServiceUsage vincolo della policy dell'organizzazione.

Quando utilizzi questa policy dell'organizzazione, è importante consentire tutti i servizi richiesti da Managed Airflow.

Messaggi di errore 400: Impossibile eseguire il deployment del server web Airflow.

Questo errore potrebbe essere causato da un errore durante la creazione del cluster GKE di un ambiente IP privato a causa di intervalli IP sovrapposti.

Soluzione: controlla i log per eventuali errori nel cluster dell'ambiente e risolvi il problema in base al messaggio di errore di GKE.

Cloud Build non riesce a creare le immagini dell'ambiente di build

Si applica a: Managed Airflow (seconda generazione) e Managed Airflow (prima generazione legacy).

Se il account di servizio Cloud Build (PROJECT_NUMBER@cloudbuild.gserviceaccount.com) non ha il ruolo Cloud Build Service Account (roles/cloudbuild.builds.builder) nel tuo progetto, i tentativi di creare o aggiornare un ambiente potrebbero non riuscire con errori relativi alle autorizzazioni.

Ad esempio, potresti visualizzare il denied: Permission "artifactregistry.repositories.uploadArtifacts" denied messaggio seguito da ERROR: failed to push because we ran out of retries in nei log di Cloud Build.

Per risolvere il problema, assicurati che il account di servizio Cloud Build abbia il ruolo Cloud Build Service Account.

Passaggi successivi