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 Tool gcpdiag können Sie Probleme mit Google Cloud-Projekten identifizieren und beheben. Weitere Informationen finden Sie im 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.
  • 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 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 VPCs: Wenn der Dataproc-Cluster ein freigegebenes VPC-Netzwerk verwendet, wird geprüft, ob die erforderlichen Dienstkontorollen hinzugefügt wurden.
  • Fehler bei Initialisierungsaktionen: Wertet den Log-Explorer aus um Fehler und Zeitüberschreitungen von Initialisierungsaktionen zu erkennen.

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.

Google Cloud Console

  1. Schließen Sie den folgenden Befehl ab und kopieren Sie ihn.
  2. GOOGLE_AUTH_TOKEN=GOOGLE_AUTH_TOKEN \
      gcpdiag runbook dataproc/cluster-creation \
        --parameter project_id=PROJECT_ID \
        --parameter cluster_name=CLUSTER_NAME \
        --parameter OPTIONAL_FLAGS \
        --auto --reason=REASON
  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 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

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 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 wurde gelöscht.
      • cluster_uuid: Die UUID der Ziel-Dataproc Cluster 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 beim 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} 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: 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, bis im Netzwerk genügend IP-Adressraum 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 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 keinen erforderlichen an das Internet senden. 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 mit dem Internet verbunden ist, wurden 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.