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
- Schließen Sie den folgenden Befehl ab und kopieren Sie ihn.
- Öffnen Sie die Google Cloud Console und aktivieren Sie Cloud Shell. Cloud Console öffnen
- Fügen Sie den kopierten Befehl ein.
- Führen Sie den Befehl
gcpdiag
aus, um das Docker-Imagegcpdiag
herunterzuladen. und führt dann eine Diagnose durch. Folgen Sie gegebenenfalls der Ausgabeanleitung. um fehlgeschlagene Prüfungen zu beheben.
gcpdiag runbook dataproc/cluster-creation \
--project=PROJECT_ID \
--parameter cluster_name=CLUSTER_NAME \
--parameter OPTIONAL_FLAGS
Docker
Sie können
Führen Sie gcpdiag
mit einem Wrapper aus, der gcpdiag
in einem
Docker-Container. Docker- oder
Podman muss installiert sein.
- 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
- 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 Projektservice_account
: Der Dataproc-Cluster VM-Dienstkontosubnetwork
: Das Subnetzwerk des Dataproc-Clusters Vollständiger URI-Pfadinternal_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:
--project
: Die PROJECT_ID--universe-domain
: Der Parameter Sovereign Cloud eines vertrauenswürdigen Partners Domain, auf der die Ressource gehostet wird--parameter
oder-p
: Runbook-Parameter
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:
- Prüfen Sie Warnungen zu Firewallregeln.
- Achten Sie darauf, dass die richtigen Firewallregeln eingerichtet sind. Weitere Informationen finden Sie unter Übersicht über die standardmäßigen Dataproc-Firewallregeln
- Führen Sie einen Konnektivitätstest durch. in der Google Cloud Console, um zu ermitteln, die die Kommunikation zwischen Master- und Worker-Knoten blockieren.
Erforderliche
compute.subnetworks.use
-Berechtigung fürprojects/{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ügungUrsache: Die Zone, die zum Erstellen des Clusters verwendet wird, hat nicht genügend Ressourcen.
Lösung:
- Erstellen Sie den Cluster in einer anderen Zone.
- Dataproc verwenden Automatische Zonenplatzierung .
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:
- Siehe Überlegungen und Richtlinien zu Initialisierungsaktionen.
- Sehen Sie sich die Ausgabelogs an. Die Fehlermeldung sollte einen Link zu den Logs in Cloud Storage enthalten.
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.