Esta página mostra-lhe como resolver problemas que pode encontrar quando usa o Eventarc para GKE, incluindo os pontos finais públicos de serviços privados e públicos executados num cluster do GKE.
Para outros problemas que também possa encontrar, consulte a resolução de problemas para:
A criação do acionador falha com erros de autorização de criação de recursos
Recebe mensagens de erro semelhantes a uma das seguintes:
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"
Este erro ocorre quando não configurou corretamente a conta de serviço do Eventarc necessária para gerir recursos no cluster do Google Kubernetes Engine (GKE).
Para resolver o problema, certifique-se de que a conta de serviço do Eventarc foi configurada corretamente com as autorizações adequadas para criar recursos. Para mais informações, siga as instruções para um fornecedor, um tipo de evento e um destino do GKE específicos.
A criação do acionador falha porque não é possível encontrar o cluster de destino ou este não tem a Workload Identity Federation para o GKE ativada
Recebe mensagens de erro semelhantes a uma das seguintes:
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 ...
Este erro ocorre quando o Eventarc não consegue encontrar o cluster do GKE de destino ou o cluster não tem a Workload Identity Federation para o GKE ativada.
Para resolver o problema, certifique-se de que o cluster de destino existe e tem a identidade de carga de trabalho ativada.
A criação do acionador falha devido ao estado do recurso inválido
Recebe uma mensagem de erro semelhante à seguinte para o seu projeto:
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 erro ocorre quando:
- O destino do GKE não foi ativado.
- Não foram concedidas à conta de serviço as funções e as autorizações necessárias que permitem ao Eventarc gerir eventos para destinos do GKE.
Para resolver este problema:
- Certifique-se de que ativou os destinos do GKE:
gcloud eventarc gke-destinations init
- Certifique-se de que a conta de serviço do Eventarc foi configurada com as autorizações adequadas para criar recursos. Para mais informações sobre como conceder as funções adequadas à conta de serviço, siga as instruções para um fornecedor e um tipo de evento específicos na secção "Prepare-se para criar um acionador".
- Se o erro persistir, contacte o apoio técnico.
O acionador é criado com êxito, mas o destino não está a receber eventos
Verifique se já passou tempo suficiente desde a criação do acionador. Pode demorar até dois minutos até os eventos serem enviados.
Se os eventos não estiverem a ser entregues no destino, os eventos enviados do Pub/Sub para o destino podem estar a ser ignorados:
Para garantir que os eventos não são ignorados, configure uma política de repetição de subscrição do Pub/Sub ou encaminhe mensagens não entregues para um tópico de mensagens não entregues (também conhecido como uma fila de mensagens não entregues).
Antes de definir o tópico de mensagens não entregues, obtenha o tópico e a subscrição do acionador:
gcloud eventarc triggers describe TRIGGER \ --location=LOCATION
Substitua o seguinte:
TRIGGER
: o ID do acionador ou um identificador totalmente qualificado.LOCATION
: a localização do acionador do Eventarc.
Se o acionador ainda não funcionar, verifique o estado do componente de encaminhamento de eventos do Eventarc para ver se foi implementado corretamente:
- Identifique os espaços de nomes do cluster listando todos os pods que têm
event-forwarder
no nome: O resultado é semelhante ao seguinte:kubectl get pods --all-namespaces | grep event-forwarder
Os primeiros 30 carateres dos espaços de nomes devem corresponder ao nome do acionador do Eventarc que criou, seguidos de um símbolo de cardinal para desambiguar quaisquer acionadores com os mesmos 30 carateres iniciais.event-forwarder-namespace-hash1 event-forwarder-hash1 1/1 Running 0 5d2h event-forwarder-namespace-hash2 event-forwarder-hash2 1/1 Running 0 2d2h
- Recupere os detalhes da implementação:
kubectl get deployments -n EVENT_FORWARDER_NAMESPACE event-forwarder
- Recupere os detalhes do pod:
kubectl describe pod -n EVENT_FORWARDER_NAMESPACE EVENT_FORWARDER_HASH
- Imprima os registos do pod para investigar o motivo ou o local da falha:
Por exemplo, no seguinte registo, a funçãokubectl logs -f -n EVENT_FORWARDER_NAMESPACE EVENT_FORWARDER_HASH
Pub/Sub Subscriber
foi revogada para a conta de serviço:{"error":"generic::permission_denied: missing 'pubsub.subscriptions.consume' permission", "message":"Permissions check failed","severity":"fatal","timestamp":"2021-07-07T14:57:49.038877483Z"}
- Identifique os espaços de nomes do cluster listando todos os pods que têm
Informações relacionadas
- Saiba mais sobre o Eventarc para o GKE.
- Para receber ajuda adicional, consulte Obtenha apoio técnico.