Panduan ini menjelaskan cara memecahkan masalah konfigurasi untuk Load Balancer Aplikasi internal Google Cloud. Sebelum mengikuti panduan ini, pahami hal-hal berikut:
- Ringkasan Load Balancer Aplikasi Internal
- Subnet khusus proxy
- Logging dan pemantauan Load Balancer Aplikasi Internal
Memecahkan masalah umum dengan Network Analyzer
Network Analyzer otomatis memantau konfigurasi jaringan VPC Anda dan mendeteksi konfigurasi yang kurang optimal dan kesalahan konfigurasi. Fitur ini mengidentifikasi kegagalan jaringan, memberikan informasi akar masalah, dan menyarankan kemungkinan resolusi. Untuk mempelajari berbagai skenario kesalahan konfigurasi yang otomatis terdeteksi oleh Network Analyzer, lihat Insight load balancer dalam dokumentasi Network Analyzer.
Network Analyzer tersedia di konsol Google Cloud sebagai bagian dari Network Intelligence Center.
Buka Network AnalyzerBackend memiliki mode balancing yang tidak kompatibel
Saat membuat load balancer, Anda mungkin melihat error:
Validation failed for instance group INSTANCE_GROUP: backend services 1 and 2 point to the same instance group but the backends have incompatible balancing_mode. Values should be the same.
Hal ini terjadi saat Anda mencoba menggunakan backend yang sama di dua load balancer yang berbeda, dan backend tidak memiliki mode penyeimbangan yang kompatibel.
Untuk informasi selengkapnya, lihat referensi berikut:
Traffic load balanced tidak memiliki alamat sumber klien asli
Ini adalah perilaku yang diharapkan. Load Balancer Aplikasi internal beroperasi sebagai proxy terbalik(gateway) HTTP (S). Saat program klien membuka koneksi ke alamat IP aturan penerusan INTERNAL_MANAGED, koneksi akan dihentikan di proxy. Proxy memproses permintaan yang masuk melalui koneksi tersebut. Untuk setiap permintaan, proxy memilih backend untuk menerima permintaan berdasarkan peta URL dan faktor lainnya. Proxy kemudian mengirimkan permintaan ke backend yang dipilih. Akibatnya, dari sudut pandang backend, sumber paket masuk adalah alamat IP dari subnet khusus proxy wilayah.
Permintaan ditolak oleh load balancer
Untuk setiap permintaan, proxy memilih backend untuk menerima permintaan berdasarkan pencocok jalur di peta URL load balancer. Jika peta URL tidak memiliki pencocok
jalur yang ditentukan untuk permintaan, peta URL tidak dapat memilih layanan backend, sehingga menampilkan
kode respons HTTP 404
(Tidak Ditemukan).
Load balancer tidak terhubung ke backend
Firewall yang melindungi server backend Anda harus dikonfigurasi untuk mengizinkan traffic masuk dari proxy dalam rentang subnet khusus proxy yang Anda alokasikan ke region load balancer HTTP(S) internal.
Proxy terhubung ke backend menggunakan setelan koneksi yang ditentukan oleh konfigurasi layanan backend Anda. Jika nilai ini tidak cocok dengan konfigurasi server yang berjalan di backend Anda, proxy tidak dapat meneruskan permintaan ke backend.
Pemeriksaan health check tidak dapat menjangkau backend
Untuk memverifikasi bahwa traffic health check mencapai VM backend Anda, aktifkan logging health check dan telusuri entri log yang berhasil.
Klien tidak dapat terhubung ke load balancer
Proxy memproses koneksi ke alamat IP dan port load balancer yang dikonfigurasi dalam aturan penerusan (misalnya, 10.1.2.3:80
), dan dengan protokol yang ditentukan dalam aturan penerusan (HTTP atau HTTPS). Jika klien Anda tidak dapat
terhubung, pastikan klien tersebut menggunakan alamat, port, dan protokol yang benar.
Pastikan firewall tidak memblokir traffic antara instance klien Anda dan alamat IP yang di-load balance.
Pastikan klien berada di region yang sama dengan load balancer. Load Balancer HTTP(S) internal adalah produk regional, sehingga semua klien (dan backend) harus berada di region yang sama dengan resource load balancer.
Batasan kebijakan organisasi untuk VPC Bersama
Jika Anda menggunakan VPC Bersama dan tidak dapat membuat Load Balancer Aplikasi internal baru di subnet tertentu, kebijakan organisasi mungkin menjadi penyebabnya. Di kebijakan organisasi, tambahkan subnet ke daftar subnet yang diizinkan atau hubungi administrator organisasi Anda. Untuk informasi selengkapnya, lihat
constraints/compute.restrictSharedVpcSubnetworks
.
Load balancer tidak mendistribusikan traffic secara merata di seluruh zona
Anda mungkin mengamati ketidakseimbangan traffic Load Balancer Aplikasi internal di seluruh zona. Hal ini dapat terjadi terutama jika ada penggunaan rendah (< 10%) dari kapasitas backend Anda.
Perilaku tersebut dapat memengaruhi latensi secara keseluruhan karena traffic hanya dikirim ke beberapa server di satu zona.
Untuk meratakan distribusi traffic di seluruh zona, Anda dapat melakukan perubahan konfigurasi berikut:
- Gunakan mode
penyeimbangan
RATE
dengan kapasitas targetmax-rate-per-instance
yang rendah. - Gunakan kebijakan traffic backend
LocalityLbPolicy
dengan algoritma load balancingLEAST_REQUEST
.
Error 5xx
yang tidak dapat dijelaskan
Untuk kondisi error yang disebabkan oleh masalah komunikasi antara proxy load balancer dan backend-nya, load balancer akan menghasilkan kode status HTTP (5xx
) dan menampilkan kode status tersebut ke klien. Tidak semua error 5xx
HTTP
dibuat oleh load balancer—misalnya, jika backend mengirim
respons 5xx
HTTP ke load balancer, load balancer akan meneruskan respons
tersebut ke kliennya. Untuk menentukan apakah respons 5xx
HTTP diteruskan
dari backend atau apakah respons tersebut dihasilkan oleh proxy load balancer, lihat
kolom proxyStatus
di log load
balancer.
Perubahan konfigurasi pada Load Balancer Aplikasi internal, seperti penambahan atau penghapusan layanan backend, dapat menyebabkan periode waktu singkat saat pengguna melihat kode status HTTP 503
. Meskipun perubahan konfigurasi ini
disebarkan ke
Envoy secara global,
Anda akan melihat entri log dengan kolom proxyStatus
yang cocok dengan
string log connection_refused
.
Jika kode status 5xx
HTTP muncul lebih dari beberapa menit setelah Anda menyelesaikan konfigurasi load balancer, lakukan langkah-langkah berikut untuk memecahkan masalah respons 5xx
HTTP:
Pastikan ada aturan firewall yang dikonfigurasi untuk mengizinkan health check. Jika tidak ada, log load balancer biasanya memiliki
proxyStatus
yang cocok dengandestination_unavailable
, yang menunjukkan bahwa load balancer menganggap backend tidak tersedia.Pastikan traffic health check mencapai VM backend Anda. Untuk melakukannya, aktifkan logging health check dan telusuri entri log yang berhasil.
Untuk load balancer baru, tidak adanya entri log health check yang berhasil tidak berarti traffic health check tidak menjangkau backend Anda. Hal ini mungkin berarti bahwa status respons awal backend belum berubah dari
UNHEALTHY
menjadi status yang berbeda. Anda hanya akan melihat entri log health check yang berhasil setelah pemeriksa health check menerima respons200 OK
HTTP dari backend.Verifikasi bahwa parameter konfigurasi keepalive untuk software server HTTP yang berjalan di instance backend tidak kurang dari waktu tunggu keepalive load balancer, yang nilainya tetap 10 menit (600 detik) dan tidak dapat dikonfigurasi.
Load balancer menghasilkan kode status
5xx
HTTP saat koneksi ke backend ditutup secara tidak terduga saat mengirim permintaan HTTP atau sebelum respons HTTP lengkap diterima. Hal ini dapat terjadi karena parameter konfigurasi keepalive untuk software server web yang berjalan di instance backend kurang dari waktu tunggu keepalive tetap dari load balancer. Pastikan konfigurasi waktu tunggu keepalive untuk software server HTTP di setiap backend disetel ke sedikit lebih besar dari 10 menit (nilai yang direkomendasikan adalah 620 detik).
Batasan
Jika Anda mengalami masalah saat menggunakan Load Balancer Aplikasi internal dengan fitur jaringan Google Cloud lainnya, perhatikan batasan kompatibilitas saat ini.