Halaman ini menunjukkan cara menyelesaikan masalah yang mungkin Anda alami saat menggunakan Eventarc untuk GKE, termasuk endpoint publik layanan pribadi dan publik yang berjalan di cluster GKE.
Untuk masalah lain yang mungkin juga Anda alami, lihat pemecahan masalah untuk:
Pembuatan pemicu gagal dengan error izin pembuatan resource
Anda menerima pesan error yang mirip dengan salah satu dari berikut ini:
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"
Error ini terjadi jika Anda belum menyiapkan akun layanan Eventarc dengan benar yang diperlukan oleh Eventarc untuk mengelola resource di cluster Google Kubernetes Engine (GKE).
Untuk mengatasi masalah ini, pastikan akun layanan Eventarc telah dikonfigurasi dengan benar dengan izin yang sesuai untuk membuat resource. Untuk informasi selengkapnya, ikuti petunjuk untuk penyedia, jenis peristiwa, dan tujuan GKE tertentu.
Pembuatan pemicu gagal karena cluster target tidak dapat ditemukan atau tidak mengaktifkan Workload Identity Federation untuk GKE
Anda menerima pesan error yang mirip dengan salah satu dari berikut ini:
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 ...
Error ini terjadi saat Eventarc tidak dapat menemukan cluster GKE target atau cluster tidak mengaktifkan Workload Identity Federation untuk GKE.
Untuk mengatasi masalah ini, pastikan cluster target ada dan telah mengaktifkan Workload Identity.
Pembuatan pemicu gagal karena status resource tidak valid
Anda menerima pesan error yang mirip dengan berikut ini untuk project Anda:
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.
Error ini terjadi jika:
- Tujuan GKE Anda belum diaktifkan.
- Akun layanan belum diberi peran dan izin yang diperlukan untuk memungkinkan Eventarc mengelola peristiwa untuk tujuan GKE.
Untuk menyelesaikan masalah ini:
- Pastikan Anda telah mengaktifkan tujuan GKE:
gcloud eventarc gke-destinations init
- Pastikan akun layanan Eventarc telah dikonfigurasi dengan izin yang sesuai untuk membuat resource. Untuk informasi selengkapnya tentang cara memberikan peran yang sesuai ke akun layanan, ikuti petunjuk untuk penyedia dan jenis peristiwa tertentu di bagian "Bersiap untuk membuat pemicu".
- Jika error terus berlanjut, hubungi dukungan.
Pemicu berhasil dibuat, tetapi target tidak menerima peristiwa
Pastikan sudah cukup waktu yang berlalu sejak membuat pemicu. Diperlukan waktu hingga dua menit sebelum peristiwa dikirim.
Jika peristiwa tidak dikirim ke target, peristiwa yang dikirim dari Pub/Sub ke target mungkin dihapus:
Untuk memastikan peristiwa tidak dihapus, siapkan kebijakan percobaan ulang langganan Pub/Sub atau teruskan pesan yang tidak terkirim ke topik yang dihentikan pengirimannya (juga dikenal sebagai antrean yang dihentikan pengirimannya).
Sebelum menetapkan topik yang dihentikan pengirimannya, ambil topik dan langganan pemicu:
gcloud eventarc triggers describe TRIGGER \ --location=LOCATION
Ganti kode berikut:
TRIGGER
: ID pemicu atau ID yang memenuhi syarat sepenuhnya.LOCATION
: lokasi pemicu Eventarc.
Jika pemicu masih tidak berfungsi, periksa status komponen forwarder peristiwa Eventarc untuk melihat apakah komponen tersebut telah di-deploy dengan benar:
- Identifikasi namespace cluster dengan mencantumkan semua pod yang memiliki
event-forwarder
dalam namanya: Outputnya mirip dengan berikut ini:kubectl get pods --all-namespaces | grep event-forwarder
30 karakter pertama namespace harus cocok dengan nama pemicu Eventarc yang Anda buat, diikuti dengan hash untuk membedakan pemicu apa pun dengan 30 karakter awal yang sama.event-forwarder-namespace-hash1 event-forwarder-hash1 1/1 Running 0 5d2h event-forwarder-namespace-hash2 event-forwarder-hash2 1/1 Running 0 2d2h
- Ambil detail deployment:
kubectl get deployments -n EVENT_FORWARDER_NAMESPACE event-forwarder
- Ambil detail pod:
kubectl describe pod -n EVENT_FORWARDER_NAMESPACE EVENT_FORWARDER_HASH
- Cetak log pod untuk menyelidiki penyebab atau tempat kegagalan terjadi:
Misalnya, dalam log berikut, perankubectl logs -f -n EVENT_FORWARDER_NAMESPACE EVENT_FORWARDER_HASH
Pub/Sub Subscriber
akun layanan telah dicabut:{"error":"generic::permission_denied: missing 'pubsub.subscriptions.consume' permission", "message":"Permissions check failed","severity":"fatal","timestamp":"2021-07-07T14:57:49.038877483Z"}
- Identifikasi namespace cluster dengan mencantumkan semua pod yang memiliki
Informasi terkait
- Pelajari Eventarc untuk GKE lebih lanjut.
- Untuk mendapatkan bantuan tambahan, lihat Mendapatkan dukungan.