Auf dieser Seite erfahren Sie, wie Sie Probleme bei der Verwendung von Eventarc für GKE beheben, einschließlich der öffentlichen Endpunkte privater und öffentlicher Dienste, die in einem GKE-Cluster ausgeführt werden.
Weitere Probleme, die auftreten können, finden Sie unter:
Fehler beim Erstellen des Triggers mit Fehlern bei der Ressourcenerstellung
Möglicherweise erhalten Sie eine Fehlermeldung, die so aussieht:
Error applying IAM policy for service account 'projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT': Error setting IAM policy for service account 'projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT': googleapi: Error 403: Permission iam.serviceAccounts.setIamPolicy is required to perform this operation on service account SERVICE_ACCOUNT., forbidden
Error when reading or editing Container Cluster "cluster": googleapi: Error 403: Required "container.clusters.get" permission(s) for "..."., forbidden
Error reading instance group manager returned as an instance group URL: "googleapi: Error 403: Required 'compute.instanceGroupManagers.get' permission for '...', forbidden"
Dieser Fehler tritt auf, wenn Sie das Eventarc-Dienstkonto nicht korrekt eingerichtet haben, das von Eventarc zum Verwalten von Ressourcen im Google Kubernetes Engine-Cluster (GKE) benötigt wird.
Prüfen Sie, ob das Eventarc-Dienstkonto mit den entsprechenden Berechtigungen zum Erstellen von Ressourcen konfiguriert wurde, um das Problem zu beheben. Weitere Informationen finden Sie in der Anleitung für einen bestimmten Anbieter, einen Ereignistyp und ein GKE-Ziel.
Die Triggererstellung schlägt fehl, da der Zielcluster nicht gefunden werden kann oder die Identitätsföderation von Arbeitslasten für GKE nicht aktiviert ist.
Möglicherweise erhalten Sie eine Fehlermeldung, die so aussieht:
ERROR: (gcloud.eventarc.triggers.create) NOT_FOUND: Not found: projects/PROJECT_ID/locations/ LOCATION/clusters/CLUSTER_NAME. ...
ERROR: (gcloud.eventarc.triggers.create) INVALID_ARGUMENT: workload identity is not enabled on cluster CLUSTER_NAME in LOCATION ...
Dieser Fehler tritt auf, wenn Eventarc den GKE-Zielcluster nicht finden kann oder die Identitätsföderation von Arbeitslasten für GKE nicht für den Cluster aktiviert ist.
Achten Sie darauf, dass der Zielcluster vorhanden und Workload Identity aktiviert ist, um das Problem zu beheben.
Triggererstellung schlägt aufgrund eines ungültigen Ressourcenstatus fehl
Möglicherweise erhalten Sie für Ihr Projekt eine Fehlermeldung, die so aussieht:
ERROR: (gcloud.eventarc.triggers.create) Invalid resource state for projects/PROJECT_ID/locations/LOCATION/triggers/TRIGGER_ID. Ensure that you have enabled your GKE destination and assigned required permissions to the service account. For more information, see https://cloud.google.com/eventarc/standard/docs/gke/troubleshooting.
Dieser Fehler tritt in folgenden Fällen auf:
- Ihr GKE-Ziel wurde nicht aktiviert.
- Dem Dienstkonto wurden nicht die erforderlichen Rollen und Berechtigungen erteilt, mit denen Eventarc Ereignisse für GKE-Ziele verwalten kann.
So lösen Sie dieses Problem:
- Prüfen Sie, ob die GKE-Ziele aktiviert sind:
gcloud eventarc gke-destinations init
- Prüfen Sie, ob das Eventarc-Dienstkonto mit den entsprechenden Berechtigungen zum Erstellen von Ressourcen konfiguriert wurde. Weitere Informationen zum Zuweisen der benötigten Rollen an das Dienstkonto finden Sie in der Anleitung für bestimmte Anbieter und Ereignistypen unter „Erstellen eines Triggers vorbereiten“.
- Wenn der Fehler weiterhin auftritt, wenden Sie sich bitte an den Support.
Der Trigger wurde erfolgreich erstellt, das Ziel empfängt jedoch keine Ereignisse
Prüfen Sie, ob seit der Erstellung des Triggers genügend Zeit vergangen ist. Es kann bis zu zwei Minuten dauern, bis Ereignisse gesendet werden.
Wenn Ereignisse nicht am Ziel zugestellt werden, werden möglicherweise von Pub/Sub an das Ziel gesendete Ereignisse verworfen:
Damit die Ereignisse nicht verworfen werden, richten Sie eine Wiederholungsrichtlinie für Pub/Sub-Abos ein oder leiten Sie nicht zugestellte Nachrichten an ein Thema für unzustellbare Nachrichten weiter (auch als Warteschlange für unzustellbare Nachrichten bezeichnet).
Bevor Sie das Thema für unzustellbare Nachrichten festlegen, rufen Sie das Thema und das Abo des Triggers ab:
gcloud eventarc triggers describe TRIGGER \ --location=LOCATION
Dabei gilt:
TRIGGER
: ID des Triggers oder eine voll qualifizierte Kennzeichnung.LOCATION
: Standort des Eventarc-Triggers.
Wenn der Trigger immer noch nicht funktioniert, prüfen Sie den Status der Eventarc-Komponente zur Weiterleitung von Ereignissen, um zu sehen, ob sie ordnungsgemäß bereitgestellt wurde:
- Ermitteln Sie die Cluster-Namespaces, indem Sie alle Pods auflisten, deren Name
event-forwarder
enthält: Die Ausgabe sieht in etwa so aus:kubectl get pods --all-namespaces | grep event-forwarder
Die ersten 30 Zeichen der Namespaces sollten mit dem Namen des von Ihnen erstellten Eventarc-Triggers übereinstimmen, gefolgt von einem Hash, um alle Trigger mit denselben anfänglichen 30 Zeichen zu unterscheiden.event-forwarder-namespace-hash1 event-forwarder-hash1 1/1 Running 0 5d2h event-forwarder-namespace-hash2 event-forwarder-hash2 1/1 Running 0 2d2h
- Rufen Sie die Deployment-Details ab:
kubectl get deployments -n EVENT_FORWARDER_NAMESPACE event-forwarder
- Rufen Sie die Pod-Details ab:
kubectl describe pod -n EVENT_FORWARDER_NAMESPACE EVENT_FORWARDER_HASH
- Drucken Sie die Pod-Logs aus, um die Fehlerursache zu ergründen:
Im folgenden Log wurde dem Dienstkonto beispielsweise die Rollekubectl logs -f -n EVENT_FORWARDER_NAMESPACE EVENT_FORWARDER_HASH
Pub/Sub Subscriber
entzogen:{"error":"generic::permission_denied: missing 'pubsub.subscriptions.consume' permission", "message":"Permissions check failed","severity":"fatal","timestamp":"2021-07-07T14:57:49.038877483Z"}
- Ermitteln Sie die Cluster-Namespaces, indem Sie alle Pods auflisten, deren Name
Weitere Informationen
- Weitere Informationen zu Eventarc für GKE
- Mehr Hilfe erhalten Sie unter Support kontaktieren.