Memecahkan masalah penyiapan konektor lokal

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.

Pemecahan 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 jaringan Google Cloud

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, lakukan debug konektivitas dan setelan jaringan sebelum melanjutkan.

Envoy tidak diinstal dengan benar di VM

Selesaikan langkah-langkah berikut untuk memverifikasi bahwa Envoy telah diinstal dengan benar:

  1. Login ke salah satu VM Compute Engine dari konektor lokal. Nama VM konektor lokal dimulai dengan opc-on-prem-app-deployment-ig-${app}.
  2. Di Cloud Console, pastikan health check layanan backend load balancing opc-on-prem-app-deployment-gclb-urlmap berwarna hijau.
  3. Jika layanan backend tidak tampak responsif, terapkan SSH ke salah satu instance:
     gcloud compute ssh instance-name --zone=zone name
  4. Pastikan Envoy aktif dan berjalan, dengan mengeluarkan perintah berikut:

     ps aux | grep envoy
    
    Harus ada lebih dari satu proses yang sedang berjalan, selain 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
    
  5. Pastikan direktori log Envoy dibuat di /var/log/envoy/.

  6. Pastikan bucket gce-mesh dapat dijangkau oleh VM, dengan menjalankan perintah berikut:

    gsutil cp gs://gce-mesh/service-proxy-agent/releases/service-proxy-agent-0.2.tgz .

Jika salah satu validasi pada langkah ini gagal, Envoy tidak diinstal dengan benar. Tinjau log startup di /var/log/daemon.log untuk informasi selengkapnya.

Jika Anda mengamati bahwa Envoy tidak berjalan dari langkah-langkah sebelumnya, salah satu alasannya adalah Kontrol Layanan VPC. Skrip start-up di VM akan 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 dalam Kontrol Layanan VPC di project host. Selain itu, pastikan VPC memiliki aturan perutean untuk mengizinkan traffic ke internet publik. Hal 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, kemungkinan Envoy tidak dapat terhubung ke aplikasi.

Untuk memverifikasi bahwa Envoy dapat terhubung ke aplikasi lokal, coba lakukan panggilan ke Envoy dari komputer tempat Envoy berjalan. Jalankan SSH ke VM opc-on-prem-app-deployment-ig-${app} dan jalankan perintah berikut. Anda dapat menemukan nomor port Envoy di Grup Instance > Detail > Pemetaan Nama Port.

shell curl -x -v localhost:${envoy_port}

Jika endpoint tidak dapat dijangkau, periksa hal-hal berikut:

  • /var/log/envoy/envoy.err.log untuk log error. 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. Jika TRAFFICDIRECTOR_INTERCEPTION_LISTENER tidak ditetapkan, Traffic Director tidak dapat mengonfigurasi Envoy.
  • Periksa apakah ada pesan error di setiap pemroses.

Izin akun Envoy dan Traffic Director belum ditetapkan

Jika Anda melihat error GRPC 403 di envoy.err.log atau jika Anda tidak melihat TRAFFICDIRECTOR_INTERCEPTION_LISTENER dalam konfigurasi Envoy, izin akun yang benar mungkin tidak ditetapkan.

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 ERR_SSL_VERSION_OR_CIPHER_MISMATCH error

Jika browser menampilkan error ERR_SSL_VERSION_OR_CIPHER_MISMATCH tanpa melakukan pengalihan ke halaman login, verifikasi status sertifikat di halaman detail load balancer Google Cloud.

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 pada VM.

Untuk memverifikasi apakah Envoy sudah diinstal, terapkan SSH ke salah satu VM dan jalankan perintah berikut:

  •  ps aux | grep envoy 
    Harus ada lebih dari satu proses yang sedang berjalan, selain grep envoy.
  •  netstat -tlpn 
    Port admin Envoy 127.0.0.1:15000 harus mendengarkan.

Jika salah satu tindakan sebelumnya gagal, lakukan tindakan berikut untuk mengurangi masalah:

  1. Pastikan Akses Google Pribadi diaktifkan di subnet tempat konektor di-deploy.
  2. Pastikan VM Manager (OS Config API) aktif.

Memecahkan Masalah Kegagalan Deployment pada Resource IamMemberBinding

Jika konektor lokal sedang di-deploy atau diperbarui dan mengalami error PERMISSION_DENIED terkait resource IamMemberBinding, hal ini mungkin karena Akun Layanan Google APIs Service Agent belum diberi peran OWNER yang diwajibkan saat mengaktifkan IAP untuk aplikasi lokal.

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 pada deployment, pastikan Akun Layanan Google APIs Service Agent diberi peran OWNER lalu coba lagi.