En esta página, se muestra cómo resolver problemas que podrías encontrar cuando uses Eventarc para GKE, incluidos los extremos públicos de los servicios privados y públicos que se ejecutan en un clúster de GKE.
Para obtener información sobre otros problemas que también podrías tener, consulta la solución de problemas para lo siguiente:
La creación del activador falla con errores de permiso de creación de recursos
Recibes mensajes de error similares a uno de los siguientes:
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"
Esto ocurre cuando no configuraste de forma correcta la cuenta de servicio de Eventarc que requiere Eventarc para administrar los recursos en el clúster de Google Kubernetes Engine (GKE).
A fin de resolver el problema, asegúrate de que la cuenta de servicio de Eventarc se haya configurado de forma correcta con los permisos adecuados para crear recursos. Si deseas obtener más información, sigue las instrucciones para un proveedor, un tipo de evento y un destino de GKE específicos.
La creación del activador falla porque no se puede encontrar el clúster de destino o no tiene habilitada la federación de identidades para cargas de trabajo para GKE
Recibes mensajes de error similares a uno de los siguientes:
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 ...
Esto ocurre cuando Eventarc no puede encontrar el clúster de GKE de destino o el clúster no tiene habilitada Workload Identity Federation for GKE.
Para resolver el problema, asegúrate de que el clúster de destino exista y tenga Workload Identity habilitada.
La creación del activador falla debido a un estado de recurso no válido
Recibes un mensaje de error similar al siguiente para tu proyecto:
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.
Este error ocurre en los siguientes casos:
- No se habilitó tu destino de GKE.
- No se le otorgaron a la cuenta de servicio los roles y permisos necesarios que permiten que Eventarc administre eventos para los destinos de GKE.
Para solucionar este problema, sigue estos pasos:
- Asegúrate de haber habilitado los destinos de GKE:
gcloud eventarc gke-destinations init
- Asegúrate de que la cuenta de servicio de Eventarc se haya configurado con los permisos adecuados para crear recursos. Si deseas obtener más información para otorgar los roles adecuados a la cuenta de servicio, sigue las instrucciones para un proveedor y un tipo de evento específicos en la sección “Prepárate para crear un activador”.
- Si el error persiste, comunícate con el equipo de asistencia.
Se creó el activador correctamente, pero el destino no recibe eventos
Verifica que transcurrió el tiempo suficiente desde la creación del activador. Los eventos pueden tardar hasta diez minutos en enviarse.
Si los eventos no se entregan en el destino, es posible que los eventos enviados desde Pub/Sub al destino se descarten:
Para garantizar que los eventos no se descarten, configura una política de reintento de suscripción de Pub/Sub o reenvía mensajes no entregados a un tema de mensajes no entregados (también conocido como cola de mensajes no entregados).
Antes de configurar el tema de mensajes no entregados, recupera el tema y la suscripción del activador:
gcloud eventarc triggers describe TRIGGER \ --location=LOCATION
Reemplaza lo siguiente:
TRIGGER
: ID del activador o un identificador completamente calificadoLOCATION
: ubicación del activador de Eventarc.
Si el activador aún no funciona, verifica el estado del componente de reenvío de eventos de Eventarc para ver si se implementó de forma correcta:
- Para identificar los espacios de nombres del clúster, enumera todos los Pods que tengan
event-forwarder
en su nombre: El resultado es similar al siguiente:kubectl get pods --all-namespaces | grep event-forwarder
Los primeros 30 caracteres de los espacios de nombres deben coincidir con el nombre del activador de Eventarc que creaste, seguido de un hash para evitar la ambigüedad de cualquier activador con los mismos 30 caracteres iniciales.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 los detalles de la implementación:
kubectl get deployments -n EVENT_FORWARDER_NAMESPACE event-forwarder
- Recupera los detalles del Pod:
kubectl describe pod -n EVENT_FORWARDER_NAMESPACE EVENT_FORWARDER_HASH
- Imprime los registros del Pod para investigar por qué o dónde se produjo el error:
Por ejemplo, en el siguiente registro, la cuenta de servicio tiene el rolkubectl logs -f -n EVENT_FORWARDER_NAMESPACE EVENT_FORWARDER_HASH
Pub/Sub Subscriber
revocado:{"error":"generic::permission_denied: missing 'pubsub.subscriptions.consume' permission", "message":"Permissions check failed","severity":"fatal","timestamp":"2021-07-07T14:57:49.038877483Z"}
- Para identificar los espacios de nombres del clúster, enumera todos los Pods que tengan
Información relacionada
- Obtén más información sobre Eventarc para GKE.
- Para obtener más ayuda, consulta Asistencia.