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 karena error izin pembuatan resource
Anda menerima pesan error yang mirip dengan salah satu pesan berikut:
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 saat 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 mengetahui 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 pesan berikut:
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 saat:
- Tujuan GKE Anda belum diaktifkan.
- Akun layanan belum diberi peran dan izin yang diperlukan yang 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 mengetahui informasi selengkapnya tentang cara memberikan peran yang sesuai ke akun layanan, ikuti petunjuk untuk penyedia dan jenis peristiwa tertentu di bagian "Bersiap membuat pemicu".
- Jika error tetap berlanjut, hubungi dukungan.
Pemicu berhasil dibuat, tetapi target tidak menerima peristiwa
Pastikan waktu yang cukup telah berlalu sejak pemicu dibuat. Mungkin perlu waktu hingga dua menit sebelum peristiwa dikirim.
Jika peristiwa tidak dikirimkan di target, peristiwa yang dikirim dari Pub/Sub ke target mungkin terputus:
Untuk memastikan peristiwa tidak dihentikan, siapkan kebijakan percobaan ulang langganan Pub/Sub atau terus kirim pesan yang tidak terkirim ke topik yang dihentikan pengirimannya (juga dikenal sebagai antrean pesan yang dihentikan pengirimannya).
Sebelum menyetel 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 penerusan 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 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 alasan atau tempat terjadinya kegagalan:
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 lebih lanjut Eventarc untuk GKE.
- Untuk mendapatkan bantuan tambahan, lihat Mendapatkan dukungan.