Cette page explique comment résoudre les problèmes que vous pouvez rencontrer lors de l'utilisation d'Eventarc pour GKE, y compris les points de terminaison publics des services privés et publics s'exécutant dans un cluster GKE.
Pour les autres problèmes que vous pouvez également rencontrer, consultez la page de dépannage pour :
Échec de la création du déclencheur avec erreurs d'autorisation de création de ressources
Vous recevez des messages d'erreur semblables à l'un des messages suivants :
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"
Cette erreur se produit lorsque vous n'avez pas configuré correctement le compte de service Eventarc requis par Eventarc pour gérer les ressources du cluster Google Kubernetes Engine (GKE).
Pour résoudre le problème, assurez-vous que le compte de service Eventarc a été correctement configuré avec les autorisations appropriées pour créer des ressources. Pour en savoir plus, suivez les instructions pour un fournisseur, un type d'événement et une destination GKE spécifiques.
La création du déclencheur échoue, car le cluster cible est introuvable ou Workload Identity Federation pour GKE n'est pas activé dessus
Vous recevez des messages d'erreur semblables à l'un des messages suivants :
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 ...
Cette erreur se produit lorsque Eventarc ne parvient pas à trouver le cluster GKE cible ou que Workload Identity Federation for GKE n'est pas activé pour ce cluster.
Pour résoudre le problème, assurez-vous que le cluster cible existe et que Workload Identity est activé.
Échec de création du déclencheur en raison d'un état de ressource non valide
Vous recevez un message d'erreur semblable à celui-ci pour votre projet :
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.
Cette erreur se produit dans les cas suivants :
- Votre destination GKE n'a pas été activée.
- Le compte de service n'a pas obtenu les rôles et autorisations requis qui permettent à Eventarc de gérer les événements pour les destinations GKE.
Pour remédier à ce problème :
- Assurez-vous d'avoir activé les destinations GKE :
gcloud eventarc gke-destinations init
- Assurez-vous que le compte de service Eventarc a été configuré avec les autorisations appropriées pour créer des ressources. Pour en savoir plus sur l'attribution des rôles appropriés au compte de service, suivez les instructions pour un fournisseur et un type d'événement spécifique dans la section "Préparer la création d'un déclencheur".
- Si l'erreur persiste, contactez l'assistance.
Le déclencheur a bien été créé, mais la cible ne reçoit pas d'événements
Vérifiez qu'un délai suffisant s'est écoulé depuis la création du déclencheur. L'envoi des événements peut prendre jusqu'à deux minutes.
Si des événements ne sont pas distribués à la cible, il est possible que les événements envoyés depuis Pub/Sub vers la cible soient interrompus :
Pour vous assurer que les événements ne sont pas interrompus, configurez une Stratégie de nouvelle tentative pour l'abonnement Pub/Sub ou transférez les messages non distribués dans une file d'attente de lettres mortes.
Avant de définir le sujet des lettres mortes, récupérez le sujet et l'abonnement du déclencheur :
gcloud eventarc triggers describe TRIGGER \ --location=LOCATION
Remplacez les éléments suivants :
TRIGGER
: l'ID du déclencheur ou un identifiant complet.LOCATION
: l'emplacement du déclencheur Eventarc.
Si le déclencheur ne fonctionne toujours pas, vérifiez l'état du composant du redirecteur d'événements d'Eventarc pour voir s'il a été déployé correctement :
- Identifiez les espaces de noms des clusters en répertoriant tous les pods dont le nom contient
event-forwarder
: Le résultat ressemble à ce qui suit :kubectl get pods --all-namespaces | grep event-forwarder
Les 30 premiers caractères des espaces de noms doivent correspondre au nom du déclencheur Eventarc que vous avez créé, suivi d'un hachage pour les distinguer des déclencheurs ayant les mêmes 30 premiers caractères.event-forwarder-namespace-hash1 event-forwarder-hash1 1/1 Running 0 5d2h event-forwarder-namespace-hash2 event-forwarder-hash2 1/1 Running 0 2d2h
- Récupérez les détails du déploiement :
kubectl get deployments -n EVENT_FORWARDER_NAMESPACE event-forwarder
- Récupérez les détails du pod :
kubectl describe pod -n EVENT_FORWARDER_NAMESPACE EVENT_FORWARDER_HASH
- Imprimez les journaux du pod pour déterminer pourquoi ou où l'échec s'est produit :
Par exemple, dans le journal suivant, le compte de service a été révoqué avec le rôlekubectl logs -f -n EVENT_FORWARDER_NAMESPACE EVENT_FORWARDER_HASH
Pub/Sub Subscriber
:{"error":"generic::permission_denied: missing 'pubsub.subscriptions.consume' permission", "message":"Permissions check failed","severity":"fatal","timestamp":"2021-07-07T14:57:49.038877483Z"}
- Identifiez les espaces de noms des clusters en répertoriant tous les pods dont le nom contient
Informations connexes
- Apprenez-en plus sur Eventarc pour GKE.
- Pour obtenir une aide supplémentaire, consultez la page Obtenir de l'aide.