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 risoluzione dei problemi relativi a:
La creazione dell'attivatore non riesce a causa di errori di autorizzazione per la creazione delle risorse
Ricevi messaggi di errore simili a uno dei 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 risorse. Per ulteriori informazioni, segui le istruzioni per un provider, un tipo di evento e una destinazione GKE specifici.
La creazione dell'attivatore non riesce perché non è possibile trovare il cluster di destinazione o perché non è abilitata la federazione delle identità per i carichi di lavoro per GKE
Ricevi messaggi di errore simili a uno dei 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 è abilitata la federazione delle identità per i carichi di lavoro per GKE.
Per risolvere il problema, assicurati che il cluster di destinazione esista e che sia stato abilitato Workload Identity.
La creazione dell'attivatore non riesce a causa di uno stato della risorsa non valido
Per il tuo progetto ricevi un messaggio di errore simile al seguente:
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.
Questo errore si verifica quando:
- La destinazione GKE non è stata attivata.
- All'account di servizio non sono stati concessi i ruoli e le autorizzazioni necessari per consentire a Eventarc di gestire gli eventi per le destinazioni GKE.
Per risolvere il problema:
- Assicurati di aver attivato le destinazioni GKE:
gcloud eventarc gke-destinations init
- Assicurati che l'account di servizio Eventarc sia stato configurato con le autorizzazioni appropriate per creare risorse. Per ulteriori informazioni su come assegnare i ruoli appropriati all'account di servizio, segui le istruzioni per un provider e un tipo di evento specifici nella sezione "Prepararsi a creare un attivatore".
- Se l'errore persiste, contatta l'assistenza.
L'attivatore è stato creato correttamente, ma il target non riceve eventi
Verifica che sia trascorso tempo sufficiente dalla creazione dell'attivatore. Potrebbero essere necessari fino a due minuti prima che gli eventi vengano inviati.
Se gli eventi non vengono recapitati alla destinazione, gli eventi inviati da Pub/Sub alla destinazione potrebbero essere persi:
Per assicurarti che gli eventi non vengano eliminati, imposta un criterio di ripetizione delle sottoscrizioni Pub/Sub o inoltra i messaggi non recapitati a un argomento per le email in arrivo non recapitate (noto anche come coda per le email in arrivo non recapitate).
Prima di impostare l'argomento messaggi non recapitabili, recupera l'argomento e l'abbonamento dell'attivatore:
gcloud eventarc triggers describe TRIGGER \ --location=LOCATION
Sostituisci quanto segue:
TRIGGER
: l'ID dell'attivatore o un identificatore completamente qualificato.LOCATION
: la posizione dell'attivatore Eventarc.
Se l'attivatore continua a non funzionare, controlla lo stato del componente Eventarc Event Forwarder per verificare se è stato implementato correttamente:
- Identifica gli spazi dei nomi del cluster elencando tutti i pod che contengono
event-forwarder
nel nome: L'output è simile al seguente:kubectl get pods --all-namespaces | grep event-forwarder
I primi 30 caratteri degli spazi dei nomi devono corrispondere al nome dell'attivatore Eventarc che hai creato, seguito da un hash per risolvere eventuali ambiguità tra gli attivatori con gli stessi 30 caratteri iniziali.event-forwarder-namespace-hash1 event-forwarder-hash1 1/1 Running 0 5d2h event-forwarder-namespace-hash2 event-forwarder-hash2 1/1 Running 0 2d2h
- 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 del pod per capire perché o dove si è verificato l'errore:
Ad esempio, nel seguente log, il ruolokubectl logs -f -n EVENT_FORWARDER_NAMESPACE EVENT_FORWARDER_HASH
Pub/Sub Subscriber
è stato revocato dall'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 del cluster elencando tutti i pod che contengono
Informazioni correlate
- Scopri di più su Eventarc per GKE.
- Per ulteriore assistenza, consulta Richiedere assistenza.