Risolvere i problemi di creazione dei cluster

Utilizzare lo strumento gcpdiag

gcpdiag è uno strumento open source. Non è un prodotto Google Cloud supportato ufficialmente. Puoi utilizzare lo strumento gcpdiag per identificare e risolvere i problemi dei progetti Google Cloud. Per maggiori informazioni, consulta il progetto gcpdiag su GitHub.

Lo strumento gcpdiag ti aiuta a scoprire i seguenti problemi di creazione dei cluster Dataproc eseguendo i seguenti controlli:

  • Errori di esaurimento scorte: valuta i log di Esplora log per rilevare gli esaurimenti scorte nelle regioni e nelle zone.
  • Quota insufficiente:controlla la disponibilità della quota nel progetto del cluster Dataproc.
  • Configurazione di rete incompleta:esegue test di connettività di rete, inclusi controlli per le regole del firewall necessarie e la configurazione di IP esterni e interni. Se il cluster è stato eliminato, lo strumento gcpdiag non può eseguire un controllo della connettività di rete.
  • Configurazione tra progetti errata: vengono controllati gli account di servizio tra progetti e vengono esaminati i ruoli aggiuntivi e l'applicazione dei criteri dell'organizzazione.
  • Ruoli IAM VPC condivisi mancanti: se il cluster Dataproc utilizza una rete VPC condiviso, controlla l'aggiunta dei ruoli del service account richiesti.
  • Errori di azioni di inizializzazione: valuta i log di Logs Explorer per rilevare errori e timeout degli script di azioni di inizializzazione.

Per un elenco dei gcpdiag passaggi per la creazione di cluster, consulta Passaggi potenziali.

Esegui il comando gcpdiag

Puoi eseguire il comando gcpdiag da Cloud Shell nella console Google Cloud o in un container Docker.

Console Google Cloud

  1. Completa e poi copia il seguente comando.
  2. gcpdiag runbook dataproc/cluster-creation \
        --parameter project_id=PROJECT_ID \
        --parameter cluster_name=CLUSTER_NAME \
        --parameter OPTIONAL_FLAGS
  3. Apri la console Google Cloud e attiva Cloud Shell.
  4. Apri Cloud Console
  5. Incolla il comando copiato.
  6. Esegui il comando gcpdiag, che scarica l'immagine Docker gcpdiag, quindi esegui i controlli diagnostici. Se pertinente, segui le istruzioni di output per correggere i controlli non riusciti.

Docker

Puoi eseguire gcpdiag utilizzando un wrapper che avvia gcpdiag in un container Docker. È necessario installare Docker o Podman.

  1. Copia ed esegui il seguente comando sulla tua workstation locale.
    curl https://gcpdiag.dev/gcpdiag.sh >gcpdiag && chmod +x gcpdiag
  2. Esegui il comando gcpdiag.
    ./gcpdiag runbook dataproc/cluster-creation \
        --parameter project_id=PROJECT_ID \
        --parameter cluster_name=CLUSTER_NAME \
        --parameter OPTIONAL_FLAGS

Visualizza i parametri disponibili per questo runbook.

Sostituisci quanto segue:

    • PROJECT_ID: l'ID del progetto contenente la risorsa
    • CLUSTER_NAME: il nome del cluster Dataproc di destinazione nel progetto
    • OPTIONAL_PARAMETERS: aggiungi uno o più dei seguenti parametri facoltativi. Questi parametri sono obbligatori se il cluster è stato eliminato.
      • cluster_uuid: l'UUID del cluster Dataproc di destinazione nel tuo progetto
      • service_account: l'account di servizio VM del cluster Dataproc
      • subnetwork: il percorso URI completo della subnet del cluster Dataproc
      • internal_ip_only: Vero o falso
      • cross_project: l'ID tra progetti se il cluster Dataproc utilizza un account di servizio VM in un altro progetto

Flag utili:

Per un elenco e una descrizione di tutti i flag dello strumento gcpdiag, consulta le istruzioni per l'utilizzo di gcpdiag.

Comprendere e correggere gli errori di creazione del cluster

Questa sezione elenca i messaggi di errore di Dataproc, le relative cause comuni e le soluzioni.

  • Operazione scaduta:sono in esecuzione solo 0 su 2 datanode/node manager minimi richiesti.

    Causa: il nodo principale non è in grado di creare il cluster perché non può comunicare con i nodi worker.

    Soluzione:

  • Autorizzazione compute.subnetworks.use obbligatoria per projects/{projectId}/regions/{region}/subnetworks/{subnetwork}

    Causa: questo errore può verificarsi quando si tenta di configurare un cluster Dataproc utilizzando una rete VPC in un altro progetto e l'account di servizio Service Agent di Dataproc non dispone delle autorizzazioni necessarie nel progetto VPC condiviso che ospita la rete.

    Soluzione: segui i passaggi descritti in Creare un cluster che utilizza una rete VPC in un altro progetto.

  • La zona projects/zones/{zone} non dispone di risorse sufficienti per soddisfare la richiesta (resource type:compute)

    Causa: la zona utilizzata per creare il cluster non dispone di risorse sufficienti.

    Soluzione:

  • Errori di superamento della quota

    Quota CPU/CPUS_ALL_REGIONS insufficiente
    Quota "DISKS_TOTAL_GB" insufficiente
    Quota "IN_USE_ADDRESSES" insufficiente

    Causa: la richiesta di CPU, disco o indirizzo IP supera la quota disponibile.

    Soluzione: richiedi una quota aggiuntiva dalla console Google Cloud.

  • Azione di inizializzazione non riuscita

    Causa: non è stato possibile installare l'azione di inizializzazione fornita durante la creazione del cluster.

    Soluzione:

  • Impossibile inizializzare il nodo {cluster-name}: {component}

    Causa: non è stato possibile inizializzare un componente Dataproc.

    Soluzione: consulta:

  • Creazione del cluster non riuscita: spazio degli indirizzi IP esaurito

    Causa: lo spazio degli indirizzi IP necessario per il provisioning dei nodi del cluster richiesti non è disponibile.

    Soluzione:

    • Crea un cluster su una subnet o una rete diversa.
    • Riduci l'utilizzo sulla rete per liberare spazio per gli indirizzi IP.
    • Attendi che nella rete sia disponibile spazio IP sufficiente.
  • Messaggio di errore dello script di inizializzazione: il repository REPO_NAME non ha più un file Release

    Causa: il repository backports di Debian oldstable è stato svuotato.

    Soluzione:

    Aggiungi il codice seguente prima del codice che esegue apt-get nello script di inizializzazione.

    oldstable=$(curl -s https://deb.debian.org/debian/dists/oldstable/Release | awk '/^Codename/ {print $2}');
    stable=$(curl -s https://deb.debian.org/debian/dists/stable/Release | awk '/^Codename/ {print $2}');
    
    matched_files="$(grep -rsil '\-backports' /etc/apt/sources.list*)"
    if [[ -n "$matched_files" ]]; then
      for filename in "$matched_files"; do
        grep -e "$oldstable-backports" -e "$stable-backports" "$filename" || \
          sed -i -e 's/^.*-backports.*$//' "$filename"
      done
    fi
    
  • La rete non è raggiungibile: dataproccontrol-REGION.googleapis.com/...*

    Causa: la rete VPC del cluster Dataproc potrebbe non avere un route a internet obbligatorio. L'agente Dataproc in esecuzione sulle VM del cluster ha bisogno di una route per internet per accedere all'API di controllo Dataproc per ottenere gli stati dei job e dei report. La route predefinita generata dal sistema a internet potrebbe essere stata eliminata.

    Soluzione:

    Aggiungi una route a internet alla rete VPC del cluster: 0.0.0.0/0 per IPv4 e ::/0 per IPv6 con --next-hop-gateway=default-internet-gateway. Aggiungi regole firewall per il controllo dell'accesso.