Questa pagina mostra come risolvere i problemi che potresti riscontrare durante l'utilizzo di Eventarc per GKE, inclusi gli endpoint pubblici dei servizi privati e pubblici in esecuzione in un cluster GKE.
Per altri problemi che potresti riscontrare, consulta la sezione sulla risoluzione dei problemi relativi a:
Creazione del trigger non riuscita con errori di autorizzazione per la creazione di risorse
Ricevi messaggi di errore simili ai seguenti:
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"
Questo errore si verifica quando non hai configurato correttamente l'account di servizio Eventarc richiesto da Eventarc per gestire le risorse nel cluster Google Kubernetes Engine (GKE).
Per risolvere il problema, assicurati che l'account di servizio Eventarc sia stato configurato correttamente con le autorizzazioni appropriate per creare le risorse. Per ulteriori informazioni, segui le istruzioni per un provider, un tipo di evento e una destinazione GKE specifici.
La creazione del trigger non riesce perché non è possibile trovare il cluster di destinazione oppure non è abilitato Workload Identity
Ricevi messaggi di errore simili ai seguenti:
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 ...
Questo errore si verifica quando Eventarc non riesce a trovare il cluster GKE di destinazione o se nel cluster non è abilitato Workload Identity.
Per risolvere il problema, assicurati che il cluster di destinazione esista e che Workload Identity sia abilitato.
Creazione del trigger non riuscita a causa di uno stato della risorsa non valido
Ricevi un messaggio di errore simile al seguente per il tuo progetto:
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/docs/gke/troubleshooting.
Questo errore si verifica quando:
- La destinazione GKE non è stata abilitata.
- All'account di servizio non sono stati concessi i ruoli e le autorizzazioni richiesti che consentono a Eventarc di gestire gli eventi per le destinazioni GKE.
Per risolvere il problema:
- Assicurati di aver abilitato le destinazioni GKE:
gcloud eventarc gke-destinations init
- Assicurati che l'account di servizio Eventarc sia stato configurato con le autorizzazioni appropriate per creare le risorse. Per saperne di più su come concedere i ruoli appropriati all'account di servizio, segui le istruzioni per un provider e un tipo di evento specifici nella sezione "Preparati a creare un trigger".
- Se l'errore persiste, contatta l'assistenza.
L'attivatore è stato creato correttamente, ma la destinazione non riceve eventi
Verifica che sia trascorso un periodo di tempo sufficiente dalla creazione del trigger. L'invio degli eventi può richiedere fino a due minuti.
Se gli eventi non vengono recapitati nella destinazione, gli eventi inviati da Pub/Sub alla destinazione potrebbero essere eliminati:
Per assicurarti che gli eventi non vengano ignorati, configura un criterio per i nuovi tentativi di sottoscrizione Pub/Sub o inoltra i messaggi non recapitati a un argomento messaggi non recapitabili (noto anche come coda non recapitabile).
Prima di impostare l'argomento messaggi non recapitabili, recupera l'argomento e la sottoscrizione del trigger:
gcloud eventarc triggers describe TRIGGER \ --location=LOCATION
Sostituisci quanto segue:
TRIGGER
: l'ID del trigger o un identificatore completo.LOCATION
: la posizione del trigger Eventarc.
Se il trigger continua a non funzionare, controlla lo stato del componente inoltratore di Eventarc per verificare se è stato eseguito il deployment correttamente:
- Identifica gli spazi dei nomi dei cluster elencando tutti i pod che hanno
event-forwarder
nel nome:kubectl get pods --all-namespaces | grep event-forwarder
L'output è simile al seguente:event-forwarder-namespace-hash1 event-forwarder-hash1 1/1 Running 0 5d2h event-forwarder-namespace-hash2 event-forwarder-hash2 1/1 Running 0 2d2h
I primi 30 caratteri degli spazi dei nomi devono corrispondere al nome del trigger Eventarc che hai creato, seguito da un hash per distinguere eventuali trigger con gli stessi 30 caratteri iniziali. - Recupera i dettagli del deployment:
kubectl get deployments -n EVENT_FORWARDER_NAMESPACE event-forwarder
- Recupera i dettagli del pod:
kubectl describe pod -n EVENT_FORWARDER_NAMESPACE EVENT_FORWARDER_HASH
- Stampa i log dei pod per capire perché o dove si è verificato l'errore:
kubectl logs -f -n EVENT_FORWARDER_NAMESPACE EVENT_FORWARDER_HASH
Ad esempio, nel log seguente è stato revocato il ruoloPub/Sub Subscriber
per l'account di servizio:{"error":"generic::permission_denied: missing 'pubsub.subscriptions.consume' permission", "message":"Permissions check failed","severity":"fatal","timestamp":"2021-07-07T14:57:49.038877483Z"}
- Identifica gli spazi dei nomi dei cluster elencando tutti i pod che hanno
Informazioni correlate
- Scopri di più su Eventarc per GKE.
- Per ricevere ulteriore supporto, vedi Richiedere assistenza.