Nesta página, mostramos como resolver problemas que podem ser encontrados ao usar o Eventarc para GKE, incluindo os endpoints públicos de serviços privados e públicos em execução em um cluster do GKE.
Para outros problemas que você possa encontrar, consulte a solução de problemas para:
A criação do gatilho falha com erros de permissão de criação de recursos
Você recebe mensagens de erro semelhantes a uma das seguintes opções:
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"
Esse erro ocorre quando você não configura corretamente a conta de serviço do Eventarc exigida pelo Eventarc para gerenciar recursos no cluster do Google Kubernetes Engine (GKE).
Para resolver o problema, verifique se a conta de serviço do Eventarc foi configurada corretamente com as permissões apropriadas para criar recursos. Para mais informações, siga as instruções de um provedor, tipo de evento e destino do GKE específicos.
A criação do gatilho falha porque o cluster de destino não foi encontrado ou não tem uma Identidade da carga de trabalho ativada
Você recebe mensagens de erro semelhantes a uma das seguintes opções:
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 ...
Esse erro ocorre quando o Eventarc não consegue encontrar o cluster de destino do GKE ou o cluster não tem a Identidade da carga de trabalho ativada.
Para resolver o problema, verifique se o cluster de destino existe e se a Identidade da carga de trabalho está ativada.
Falha na criação do gatilho devido a um estado de recurso inválido
Você receberá uma mensagem de erro semelhante a esta do 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/docs/gke/troubleshooting.
Esse erro ocorre quando:
- Seu destino do GKE não foi ativado.
- A conta de serviço não recebeu os papéis e as permissões necessários que permitem ao Eventarc gerenciar eventos de destinos do GKE.
Para resolver o problema:
- Verifique se você ativou os destinos do GKE:
gcloud eventarc gke-destinations init
- Verifique se a conta de serviço do Eventarc foi configurada com as permissões apropriadas para criar recursos. Para mais informações sobre como conceder os papéis apropriados à conta de serviço, siga as instruções para um provedor e tipo de evento específicos na seção "Preparar para criar um gatilho".
- Se o erro continuar, entre em contato com a equipe de suporte.
O gatilho foi criado, mas o destino não está recebendo eventos
Verifique se já passou tempo suficiente desde a criação do gatilho. Pode levar até dois minutos para que os eventos sejam enviados.
Se os eventos não estiverem sendo entregues no destino, os eventos enviados do Pub/Sub para o destino poderão ser descartados:
Para garantir que os eventos não sejam descartados, configure uma política de novas tentativas de assinatura do Pub/Sub ou encaminhe mensagens não entregues para um tópico de mensagens inativas, também conhecido como fila de mensagens inativas.
Antes de definir o tópico de mensagens inativas, recupere o tópico e a assinatura do gatilho:
gcloud eventarc triggers describe TRIGGER \ --location=LOCATION
Substitua:
TRIGGER
: o ID do gatilho ou um identificador totalmente qualificado.LOCATION
: o local do gatilho do Eventarc.
Se o gatilho ainda não funcionar, verifique o status do componente encaminhador de eventos do Eventarc para ver se foi implantado corretamente:
- Identifique os namespaces do cluster listando todos os pods que têm
event-forwarder
no nome:kubectl get pods --all-namespaces | grep event-forwarder
A saída será assim:event-forwarder-namespace-hash1 event-forwarder-hash1 1/1 Running 0 5d2h event-forwarder-namespace-hash2 event-forwarder-hash2 1/1 Running 0 2d2h
Os primeiros 30 caracteres dos namespaces precisam corresponder ao nome do gatilho do Eventarc que você criou, seguido por um hash para remover a ambiguidade de todos os gatilhos com os mesmos 30 caracteres iniciais. - Recupere os detalhes da implantaçã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 registros do pod para investigar por que ou onde a falha ocorreu:
kubectl logs -f -n EVENT_FORWARDER_NAMESPACE EVENT_FORWARDER_HASH
Por exemplo, no registro a seguir, a conta de serviço teve o papelPub/Sub Subscriber
revogado:{"error":"generic::permission_denied: missing 'pubsub.subscriptions.consume' permission", "message":"Permissions check failed","severity":"fatal","timestamp":"2021-07-07T14:57:49.038877483Z"}
- Identifique os namespaces do cluster listando todos os pods que têm
Informações relacionadas
- Saiba mais sobre o Eventarc para o GKE.
- Se precisar de mais ajuda, veja Receber suporte.