이 페이지에서는 GKE 클러스터에서 실행되는 비공개 및 공개 서비스의 공개 엔드포인트를 포함하여 GKE용 Eventarc를 사용할 때 발생할 수 있는 문제를 해결하는 방법을 보여줍니다.
발생할 수 있는 다른 문제는 다음 문제 해결 페이지를 참조하세요.
리소스 생성 권한 오류로 트리거 생성 실패
다음 중 하나와 유사한 오류 메시지가 표시됩니다.
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"
이 오류는 Eventarc에서 Google Kubernetes Engine(GKE) 클러스터의 리소스를 관리하는 데 필요한 Eventarc 서비스 계정이 올바르게 설정되지 않은 경우에 발생합니다.
이 문제를 해결하려면 Eventarc 서비스 계정이 리소스를 생성할 수 있는 적절한 권한으로 올바르게 구성되었는지 확인합니다. 자세한 내용은 특정 제공업체, 이벤트 유형, GKE 대상에 대한 안내를 따르세요.
대상 클러스터를 찾을 수 없거나 워크로드 아이덴티티가 사용 설정되어 있지 않음으로 인한 트리거 생성 실패
다음 중 하나와 유사한 오류 메시지가 표시됩니다.
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 ...
이 오류는 Eventarc에서 대상 GKE 클러스터를 찾을 수 없거나 클러스터에 워크로드 아이덴티티가 사용 설정되지 않은 경우 발생합니다.
이 문제를 해결하려면 대상 클러스터가 존재하고 워크로드 아이덴티티가 사용 설정되어 있는지 확인합니다.
잘못된 리소스 상태로 인해 트리거 생성 실패
프로젝트에 다음과 유사한 오류 메시지가 표시됩니다.
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.
이 오류는 다음과 같은 경우에 발생합니다.
- GKE 대상이 사용 설정되지 않은 경우
- Eventarc에서 GKE 대상의 이벤트를 관리하는 데 필요한 역할 및 권한이 서비스 계정에 부여되지 않은 경우
이 문제를 해결하려면 다음 단계를 따르세요.
- GKE 대상을 사용 설정했는지 확인합니다.
gcloud eventarc gke-destinations init
- Eventarc 서비스 계정이 리소스를 만들 수 있는 적절한 권한으로 구성되었는지 확인합니다. 서비스 계정에 적절한 역할을 부여하는 방법은 "트리거 생성 준비" 섹션의 특정 제공업체 및 이벤트 유형에 대한 안내를 따르세요.
- 오류가 계속되면 지원팀에 문의하세요.
트리거가 생성되었지만 대상에서 이벤트를 수신하지 않음
트리거를 만든 후 충분한 시간이 경과했는지 확인합니다. 이벤트가 전송되는 데 최대 2분이 걸릴 수 있습니다.
이벤트가 대상에서 전송되지 않으면 Pub/Sub에서 대상으로 전송된 이벤트가 삭제될 수 있습니다.
이벤트가 삭제되지 않도록 Pub/Sub 구독 재시도 정책을 설정하거나 전송되지 않은 메시지를 데드 레터 주제(데드 레터 큐라고도 함)로 전달합니다.
데드 레터 주제를 설정하기 전에 트리거의 주제 및 구독을 검색합니다.
gcloud eventarc triggers describe TRIGGER \ --location=LOCATION
다음을 바꿉니다.
TRIGGER
: 트리거의 ID 또는 정규화된 식별자LOCATION
: Eventarc 트리거 위치
트리거가 계속 작동하지 않으면 Eventarc 이벤트 전달자 구성요소의 상태를 확인하여 올바르게 배포되었는지 확인합니다.
- 이름에
event-forwarder
가 있는 모든 Pod를 나열하여 클러스터 네임스페이스를 식별합니다. 출력은 다음과 비슷합니다.kubectl get pods --all-namespaces | grep event-forwarder
네임스페이스의 처음 30자(영문 기준)는 사용자가 생성한 Eventarc 트리거의 이름과 일치하며 그 뒤에 해시가 추가되어 처음 30자가 동일한 트리거와 구별됩니다.event-forwarder-namespace-hash1 event-forwarder-hash1 1/1 Running 0 5d2h event-forwarder-namespace-hash2 event-forwarder-hash2 1/1 Running 0 2d2h
- 배포 세부정보를 검색합니다.
kubectl get deployments -n EVENT_FORWARDER_NAMESPACE event-forwarder
- 포드 세부정보를 검색합니다.
kubectl describe pod -n EVENT_FORWARDER_NAMESPACE EVENT_FORWARDER_HASH
- 포드 로그를 출력하여 오류가 발생한 이유나 위치를 조사합니다.
예를 들어 다음 로그에서 서비스 계정에kubectl 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"}
- 이름에
관련 정보
- GKE용 Eventarc에 대해 자세히 알아보세요.
- 추가 도움을 받으려면 지원을 참조하세요.