Halaman ini memberikan petunjuk langkah demi langkah untuk membantu Anda memecahkan masalah konfigurasi Konektor Lokal IAP. Untuk informasi pemecahan masalah tambahan, lihat Proses debug Traffic Director.
Memecahkan masalah error 500
Berikut adalah berbagai masalah dan kemungkinan solusi untuk membantu Anda mengatasi error 500 yang Anda terima saat mencoba mengakses aplikasi.
Aplikasi lokal tidak terhubung ke Google Cloud jaringan
Aplikasi lokal Anda mungkin tidak terhubung ke jaringan Google Cloud . Verifikasi konektivitas dengan melakukan ping ke aplikasi lokal dari salah satu instance Compute Engine konektor lokal. Jika endpoint konektor lokal tidak dapat dijangkau, debug konektivitas dan setelan jaringan sebelum melanjutkan.
Envoy tidak diinstal dengan benar di VM
Selesaikan langkah-langkah berikut untuk memverifikasi bahwa Envoy diinstal dengan benar:
- Login ke salah satu VM Compute Engine dari konektor lokal. Nama VM konektor lokal dimulai dengan
opc-on-prem-app-deployment-ig-${app}
. - Di Cloud Console, pastikan health check layanan backend load balancing
opc-on-prem-app-deployment-gclb-urlmap
berwarna hijau. - Jika layanan backend tidak muncul sebagai responsif, gunakan SSH ke salah satu instance:
gcloud compute ssh instance-name --zone=zone name
Pastikan Envoy sudah aktif dan berjalan, dengan mengeluarkan perintah berikut:
Harus ada lebih dari satu proses yang berjalan, selainps aux | grep envoy
grep envoy
.Contoh output:
envoy 943 0.0 0.0 5488 3076 ? Ss 06:25 0:00 /bin/bash /usr/local/bin/run-proxy.sh envoy 944 0.1 1.5 178928 57352 ? Sl 06:25 1:23 /usr/local/bin/envoy --config-path /usr/local/etc/ envoy/envoy-proxy-bootstrap.json --allow-unknown-static-fields --disable-hot-restart --log-level info --drain-time- s 60
Pastikan direktori log Envoy dibuat di
/var/log/envoy/
.Pastikan bucket gce-mesh dapat dijangkau oleh VM, dengan mengeluarkan perintah berikut:
gcloud storage cp gs://gce-mesh/service-proxy-agent/releases/service-proxy-agent-0.2.tgz .
Jika salah satu validasi dalam langkah ini gagal, Envoy tidak diinstal dengan benar. Tinjau log startup di /var/log/daemon.log
untuk mengetahui informasi selengkapnya.
Jika Anda mengamati bahwa Envoy tidak berjalan dari langkah-langkah sebelumnya, salah satu alasannya mungkin adalah Kontrol Layanan VPC. Skrip startup di VM mendownload image Envoy dari bucket gce-mesh
. Jika aturan Kontrol Layanan VPC tidak mengizinkan koneksi, deployment konektor lokal tidak akan berfungsi.
Untuk memastikan Envoy diinstal dengan benar, izinkan akses ke bucket penyimpanan gce-mesh
di Kontrol Layanan VPC di project host. Selain itu, pastikan VPC memiliki aturan perutean untuk mengizinkan traffic ke internet publik. Tindakan ini memungkinkan Envoy di-deploy. Untuk mengetahui informasi selengkapnya, lihat Aturan traffic masuk dan keluar.
Aplikasi lokal Anda tidak terhubung ke Envoy
Jika Anda dapat melakukan ping ke aplikasi lokal dari VM, tetapi tidak dapat menggunakan konektor lokal, Envoy mungkin tidak dapat terhubung ke aplikasi.
Untuk memverifikasi bahwa Envoy dapat terhubung ke aplikasi lokal Anda, coba lakukan panggilan ke Envoy dari mesin tempat Envoy berjalan. Gunakan SSH ke VM opc-on-prem-app-deployment-ig-${app}
dan jalankan perintah berikut. Anda dapat menemukan nomor port Envoy di Instance Groups > Details > Port Name Mapping.
shell curl -x -v localhost:${envoy_port}
Jika endpoint tidak dapat dijangkau, periksa hal berikut:
/var/log/envoy/envoy.err.log
untuk log error apa pun. Jika tidak ada log error, periksa apakah Traffic Director diaktifkan dan dapat mengonfigurasi Envoy, dengan menjalankan perintah berikut:sudo curl 0.0.0.0:15000/config_dump
- Pastikan
TRAFFICDIRECTOR_INTERCEPTION_LISTENER
telah ditetapkan. JikaTRAFFICDIRECTOR_INTERCEPTION_LISTENER
tidak ditetapkan, Traffic Director tidak dapat mengonfigurasi Envoy. - Periksa apakah ada pesan error di setiap pemroses.
Izin akun Envoy dan Traffic Director tidak ditetapkan
Jika Anda melihat error GRPC 403
di envoy.err.log
atau jika Anda tidak melihat TRAFFICDIRECTOR_INTERCEPTION_LISTENER
di konfigurasi Envoy, Anda mungkin tidak menetapkan izin akun yang benar.
Pastikan akun layanan VM memiliki izin akses TD
untuk xDS v3
:
- Verifikasi izin: https://cloud.google.com/traffic-director/docs/prepare-for-envoy-setup#grant
- Verifikasi akun: https://cloud.google.com/traffic-director/docs/prepare-for-envoy-setup#enable-service
Memecahkan masalah error ERR_SSL_VERSION_OR_CIPHER_MISMATCH
Jika browser menampilkan error ERR_SSL_VERSION_OR_CIPHER_MISMATCH
tanpa mengalihkan ke halaman login, verifikasi status sertifikat di Google Cloud halaman detail load balancer.
Perhatikan bahwa penyediaan sertifikat yang dikelola Google mungkin memerlukan waktu hingga 60 menit.
Memecahkan masalah penginstalan Envoy
Jika konektor lokal berhasil di-deploy dan sertifikat telah disediakan, tetapi koneksi masih gagal, hal ini mungkin menunjukkan bahwa Envoy mungkin tidak diinstal dengan benar di VM.
Untuk memverifikasi apakah Envoy tersebut telah diinstal, gunakan SSH ke salah satu VM dan jalankan perintah berikut:
Harus ada lebih dari satu proses yang berjalan, selainps aux | grep envoy
grep envoy
. Port admin Envoy 127.0.0.1:15000 harus memproses.netstat -tlpn
Jika salah satu tindakan sebelumnya gagal, lakukan tindakan berikut untuk mengurangi masalah:
- Pastikan Akses Google Pribadi diaktifkan di subnet tempat konektor di-deploy.
- Pastikan VM Manager (OS Config API) diaktifkan.
Memecahkan Masalah Kegagalan Deployment pada Resource IamMemberBinding
Jika konektor on-premise sedang di-deploy atau diupdate dan mengalami error PERMISSION_DENIED
yang terkait dengan resource IamMemberBinding
, hal ini mungkin karena Akun Layanan Google APIs Service Agent
belum diberi peran OWNER
seperti yang diperlukan saat mengaktifkan IAP untuk aplikasi on-premise.
Contoh Error Deployment:
bind-iam-policy: {"ResourceType":"gcp-types/cloudresourcemanager-v1:virtual.projects.iamMemberBinding","ResourceErrorCode":"403","ResourceErrorMessage":{"code":403,"message":"Policy update access denied.","status":"PERMISSION_DENIED","statusMessage":"Forbidden","requestPath":"https://cloudresourcemanager.googleapis.com/v1/projects/<project-ID>:setIamPolicy","httpMethod":"POST"}}
bind-storage-admin-account-iam-policy: {"ResourceType":"gcp-types/cloudresourcemanager-v1:virtual.projects.iamMemberBinding","ResourceErrorCode":"403","ResourceErrorMessage":{"code":403,"message":"Policy update access denied.","status":"PERMISSION_DENIED","statusMessage":"Forbidden","requestPath":"https://cloudresourcemanager.googleapis.com/v1/projects/<project-ID>:setIamPolicy","httpMethod":"POST"}}
Jika Anda melihat error ini dengan deployment, pastikan Akun Layanan Google APIs Service Agent
diberi peran OWNER
, lalu coba lagi.