Probleme bei der Clustererstellung beheben

gcpdiag-Tool verwenden

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

Mit dem gcpdiag-Tool können Sie die folgenden Dataproc-Typen finden Probleme bei der Clustererstellung durch Ausführen der folgenden Prüfungen:

  • Stockout-Fehler: Wertet Log-Explorer-Logs aus, um Fehlstände in Regionen und Zonen.
  • Unzureichendes Kontingent: Prüft die Kontingentverfügbarkeit in Dataproc Clusterprojekts an.
  • Unvollständige Netzwerkkonfiguration:Es werden Netzwerkkonnektivitätstests durchgeführt. einschließlich Prüfungen auf erforderliche Firewallregeln sowie externe und interne IP-Adressen Konfiguration. Wenn der Cluster gelöscht wurde, kann das gcpdiag-Tool nicht die Netzwerkverbindung prüfen.
  • Falsche projektübergreifende Konfiguration: Prüft auf einen projektübergreifenden Dienst Konten und überprüft zusätzliche Rollen und die Durchsetzung von Organisationsrichtlinien.
  • Fehlende IAM-Rollen für freigegebene VPC: Wenn der Dataproc-Cluster ein freigegebene VPC-Netzwerk, prüft, ob der erforderliche Dienst hinzugefügt wurde Kontorollen.
  • Fehler bei Initialisierungsaktionen: Wertet den Log-Explorer aus um Fehler und Zeitüberschreitungen von Initialisierungsaktionen zu erkennen.

Eine Liste mit gcpdiag Schritten zur Clustererstellung finden Sie unter Mögliche Schritte.

Befehl gcpdiag ausführen

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

Google Cloud Console

  1. Schließen Sie den folgenden Befehl ab und kopieren Sie ihn.
  2. gcpdiag runbook dataproc/cluster-creation \
      --project=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 führt dann eine Diagnose durch. Folgen Sie gegebenenfalls der Ausgabeanleitung. um fehlgeschlagene Prüfungen zu beheben.

Docker

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

  1. Kopieren Sie den folgenden Befehl und führen Sie ihn auf Ihre lokale 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 \
      --project=PROJECT_ID \
      --parameter cluster_name=CLUSTER_NAME \
      --parameter OPTIONAL_FLAGS

Sehen Sie sich die verfügbaren Parameter für dieses Runbook an.

Ersetzen Sie Folgendes:

  • PROJECT_ID: die ID des Projekts, das die Ressource enthält
    • CLUSTER_NAME: der Name des Ziels Dataproc-Cluster in Ihrem Projekt
    • OPTIONAL_PARAMETERS: Fügen Sie mindestens eine der folgenden optionalen Parametern. Diese Parameter sind erforderlich, wenn der Cluster wurde gelöscht.
      • cluster_uuid: Die UUID der Ziel-Dataproc Cluster in Ihrem Projekt
      • service_account: Der Dataproc-Cluster VM-Dienstkonto
      • subnetwork: Das Subnetzwerk des Dataproc-Clusters Vollständiger URI-Pfad
      • internal_ip_only: Richtig oder falsch?
      • cross_project: Die projektübergreifende ID, wenn das Dataproc-Cluster verwendet ein VM-Dienstkonto in einem anderen Projekt

Nützliche Flags:

Eine Liste und Beschreibung aller Flags des gcpdiag-Tools finden Sie in der Nutzungsanleitung für gcpdiag.

Fehler bei der Clustererstellung verstehen und beheben

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

  • Zeitüberschreitung bei Vorgang: Es werden nur 0 von 2 mindestens erforderlichen Datenknoten/Knotenmanagern ausgeführt.

    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, eine Dataproc-Instanz Cluster mit einem VPC-Netzwerk in einem anderen Projekt und Dataproc Dienst-Agent Dienstkonto hat nicht die erforderlichen Berechtigungen für die freigegebene VPC das das Netzwerk hostet.

    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} stehen nicht genügend Ressourcen zur Ausführung der Anfrage (resource type:compute) zur Verfügung

    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: Fordern Sie zusätzliche Kontingente vom Google Cloud Console:

  • 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:

  • Cluster konnte nicht erstellt werden: IP-Adressbereich aufgebraucht

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

    Lösung:

    • Cluster in einem anderen Subnetzwerk oder Netzwerk erstellen
    • Reduzieren Sie die Nutzung im Netzwerk, um IP-Adressbereich freizugeben.
    • Warten Sie, bis genügend IP-Bereich im Netzwerk verfügbar ist.
  • Fehlermeldung des Initialisierungsskripts: Das Repository REPO_NAME hat keine Release-Datei mehr

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

    Lösung:

    Fügen Sie den folgenden Code in Ihrem Initialisierungsskript vor dem Code ein, der apt-get 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 ist nicht erreichbar: dataproccontrol-REGION.googleapis.com/...*

    Ursache: Das VPC-Netzwerk des Dataproc-Clusters hat möglicherweise keinen erforderlichen an das Internet senden. Der auf Cluster-VMs ausgeführte Dataproc-Agent Benötigt eine Route zum Internet, um auf die Dataproc Control API zuzugreifen um Jobs und Berichtsstatus abzurufen. Die vom System generierte Standardroute wurden möglicherweise gelöscht.

    Lösung:

    Fügen Sie dem VPC-Netzwerk des Clusters 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.