Probleme beim Erstellen von Clustern beheben

gcpdiag-Tool verwenden

gcpdiag ist ein Open-Source-Tool. Es ist kein offiziell unterstütztes Google Cloud-Produkt. Mit dem Tool gcpdiag können Sie Probleme mit Google Cloud-Projekten identifizieren und beheben. Weitere Informationen finden Sie im gcpdiag-Projekt auf GitHub.

Mit dem Tool gcpdiag können Sie die folgenden Probleme beim Erstellen von Dataproc-Clustern erkennen, indem Sie die folgenden Prüfungen durchführen:

  • Nicht verfügbare Artikel:Hier werden Logs Explorer-Protokolle ausgewertet, um nicht verfügbare Artikel in Regionen und Zonen zu ermitteln.
  • Nicht genügend Kontingent:Prüft die Kontingentverfügbarkeit im Dataproc-Clusterprojekt.
  • Unvollständige Netzwerkkonfiguration:Führt Netzwerkverbindungstests durch, einschließlich Prüfungen auf erforderliche Firewallregeln und externe und interne IP-Konfiguration. Wenn der Cluster gelöscht wurde, kann das gcpdiag-Tool keine Netzwerkverbindung prüfen.
  • Falsche projektübergreifende Konfiguration:Es wird nach projektübergreifenden Dienstkonten gesucht und die Durchsetzung zusätzlicher Rollen und Organisationsrichtlinien geprüft.
  • Fehlende IAM-Rollen für freigegebene VPCs:Wenn der Dataproc-Cluster ein freigegebene VPC-Netzwerk verwendet, wird geprüft, ob die erforderlichen Dienstkontorollen hinzugefügt wurden.
  • Fehler bei der Initialisierungsaktion: Hier werden Logs Explorer-Logs ausgewertet, um Fehler und Zeitüberschreitungen bei Initialisierungsaktionsscripts zu ermitteln.

Eine Liste der Schritte zum Erstellen eines gcpdiag-Clusters finden Sie unter Potenzielle Schritte.

Befehl gcpdiag ausführen

Sie können den Befehl gcpdiag über Cloud Shell in der Google Cloud Console oder in einem Docker-Container ausführen.

Google Cloud Console

  1. Führen Sie den folgenden Befehl aus und kopieren Sie ihn.
  2. gcpdiag runbook dataproc/cluster-creation \
        --parameter project_id=PROJECT_ID \
        --parameter cluster_name=CLUSTER_NAME \
        --parameter OPTIONAL_FLAGS
  3. Öffnen Sie die Google Cloud Console und aktivieren Sie Cloud Shell.
  4. Cloud Console öffnen
  5. Fügen Sie den kopierten Befehl ein.
  6. Führen Sie den Befehl gcpdiag aus, um das Docker-Image gcpdiag herunterzuladen und dann Diagnoseprüfungen durchzuführen. Folgen Sie gegebenenfalls der Anleitung für die Ausgabe, um fehlgeschlagene Prüfungen zu beheben.

Docker

Sie können gcpdiag mit einem Wrapper ausführen, der gcpdiag in einem Docker-Container startet. Docker oder Podman muss installiert sein.

  1. Kopieren Sie den folgenden Befehl und führen Sie ihn auf Ihrer lokalen Workstation aus.
    curl https://gcpdiag.dev/gcpdiag.sh >gcpdiag && chmod +x gcpdiag
  2. Führen Sie den Befehl gcpdiag aus.
    ./gcpdiag runbook dataproc/cluster-creation \
        --parameter project_id=PROJECT_ID \
        --parameter cluster_name=CLUSTER_NAME \
        --parameter OPTIONAL_FLAGS

Verfügbare Parameter für dieses Runbook ansehen

Ersetzen Sie Folgendes:

    • PROJECT_ID: Die ID des Projekts, das die Ressource enthält
    • CLUSTER_NAME: Der Name des Ziel-Dataproc-Clusters in Ihrem Projekt
    • OPTIONAL_PARAMETERS: Fügen Sie einen oder mehrere der folgenden optionalen Parameter hinzu. Diese Parameter sind erforderlich, wenn der Cluster gelöscht wurde.
      • cluster_uuid: Die UUID des Ziel-Dataproc-Clusters in Ihrem Projekt
      • service_account: Das VM-Dienstkonto des Dataproc-Clusters
      • subnetwork: Der vollständige URI-Pfad zum Subnetzwerk des Dataproc-Clusters
      • internal_ip_only: Richtig oder falsch
      • cross_project: Die projektübergreifende ID, wenn für den Dataproc-Cluster ein VM-Dienstkonto in einem anderen Projekt verwendet wird

Nützliche Flags:

Eine Liste und Beschreibung aller gcpdiag-Tool-Flags finden Sie in der gcpdiag-Nutzungsanleitung.

Fehler bei der Clustererstellung verstehen und beheben

In diesem Abschnitt werden Dataproc-Fehlermeldungen und ihre häufigsten Ursachen und Lösungen aufgeführt.

  • Zeitüberschreitung bei Vorgang:Nur 0 von 2 erforderlichen Datenknoten/Knotenmanagern.

    Ursache: Der Masterknoten kann den Cluster nicht erstellen, da er nicht mit Worker-Knoten kommunizieren kann.

    Lösung:

  • Erforderliche compute.subnetworks.use-Berechtigung für projects/{projectId}/regions/{region}/subnetworks/{subnetwork}

    Ursache: Dieser Fehler kann auftreten, wenn Sie versuchen, einen Dataproc-Cluster mit einem VPC-Netzwerk in einem anderen Projekt einzurichten und das Dataproc-Dienstkonto Dienst-Agent nicht die erforderlichen Berechtigungen für das freigegebene VPC-Projekt hat, in dem das Netzwerk gehostet wird.

    Lösung: Führen Sie die unter Cluster erstellen, der ein VPC-Netzwerk in einem anderen Projekt verwendet aufgeführten Schritten aus.

  • In der Zone projects/zones/{zone} sind nicht genügend Ressourcen verfügbar, um die Anfrage (resource type:compute) zu erfüllen.

    Ursache: Die Zone, die zum Erstellen des Clusters verwendet wird, hat nicht genügend Ressourcen.

    Lösung:

  • Fehler bei Kontingentüberschreitung

    Unzureichendes CPUS-/CPUS_ALL_REGIONS-Kontingent
    Unzureichendes Kontingent "DISKS_SUM_GB"
    Unzureichendes Kontingent "IN_USE_ADDRESSES"

    Ursache: Ihre CPU-, Laufwerk- oder IP-Adressanfrage überschreitet das verfügbare Kontingent.

    Lösung: Zusätzliche Kontingente können Sie über die Google Cloud Console anfordern.

  • Initialisierungsaktion fehlgeschlagen

    Ursache: Die während der Clustererstellung angegebene Initialisierungsaktion konnte nicht installiert werden.

    Lösung:

  • Knoten {cluster-name} konnte nicht initialisiert werden: {component}

    Ursache: Eine Dataproc-Komponente konnte nicht initialisiert werden.

    Lösung, siehe:

  • Clustererstellung fehlgeschlagen: IP-Adressbereich aufgebraucht

    Ursache: Der IP-Adressbereich, der für die Bereitstellung der angeforderten Clusterknoten erforderlich ist, ist nicht verfügbar.

    Lösung:

    • Erstellen Sie einen Cluster in einem anderen Subnetz oder Netzwerk.
    • Nutzung im Netzwerk reduzieren, um IP-Adressraum freizugeben
    • Warten, bis im Netzwerk genügend IP-Adressraum verfügbar ist
  • Fehlermeldung des Initialisierungsscripts: Das Repository REPO_NAME hat keine Release-Datei mehr

    Ursache: Das Debian oldstable Backports-Repository wurde gelöscht.

    Lösung:

    Fügen Sie den folgenden Code vor dem Code ein, der apt-get in Ihrem Initialisierungsskript ausführt.

    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
    
  • Netzwerk nicht erreichbar: dataproccontrol-REGION.googleapis.com/...*

    Ursache: Das VPC-Netzwerk des Dataproc-Clusters hat möglicherweise keine erforderliche Route zum Internet. Der Dataproc-Agent, der auf Cluster-VMs ausgeführt wird, benötigt eine Route zum Internet, um auf die Dataproc Control API zuzugreifen und Jobs abzurufen und den Status zu melden. Die vom System generierte Standardroute zum Internet wurde möglicherweise gelöscht.

    Lösung:

    Fügen Sie Ihrem Cluster-VPC-Netzwerk eine Route zum Internet hinzu: 0.0.0.0/0 für IPv4 und ::/0 für IPv6 mit --next-hop-gateway=default-internet-gateway. Fügen Sie Firewallregeln für die Zugriffssteuerung hinzu.