Memecahkan masalah load balancing di GKE


Halaman ini menunjukkan cara menyelesaikan masalah terkait load balancing di cluster Google Kubernetes Engine (GKE) menggunakan resource Service, Ingress, atau Gateway.

Ingress Eksternal menghasilkan error HTTP 502

Gunakan panduan berikut untuk memecahkan masalah error HTTP 502 dengan resource Ingress eksternal:

  1. Aktifkan log untuk setiap layanan backend yang terkait dengan setiap Layanan GKE yang direferensikan oleh Ingress.
  2. Gunakan detail status untuk mengidentifikasi penyebab respons HTTP 502. Detail status yang menunjukkan bahwa respons HTTP 502 yang berasal dari backend memerlukan pemecahan masalah dalam Pod penyaluran, bukan load balancer.

Grup instance tidak terkelola

Anda mungkin mengalami error HTTP 502 dengan resource Ingress eksternal jika Ingress eksternal Anda menggunakan backend grup instance yang tidak dikelola. Masalah ini terjadi saat semua persyaratan berikut terpenuhi:

  • Cluster memiliki jumlah total node yang besar di antara semua kumpulan node.
  • Pod yang aktif untuk satu atau beberapa Layanan yang direferensikan oleh Ingress hanya terletak di beberapa node.
  • Layanan yang dirujuk oleh Ingress menggunakan externalTrafficPolicy: Local.

Untuk menentukan apakah Ingress eksternal Anda menggunakan backend grup instance yang tidak dikelola, lakukan hal berikut:

  1. Buka halaman Ingress di konsol Trusted Cloud .

    Buka Ingress

  2. Klik nama Ingress eksternal Anda.

  3. Klik nama Load balancer. Halaman Detail load balancing ditampilkan.

  4. Periksa tabel di bagian Layanan backend untuk menentukan apakah Ingress eksternal Anda menggunakan NEG atau grup instance.

Untuk mengatasi masalah ini, gunakan salah satu solusi berikut:

  • Gunakan cluster native VPC.
  • Gunakan externalTrafficPolicy: Cluster untuk setiap Layanan yang dirujuk oleh Ingress eksternal. Solusi ini menyebabkan Anda kehilangan alamat IP klien asli di sumber paket.
  • Gunakan anotasi node.kubernetes.io/exclude-from-external-load-balancers=true. Tambahkan anotasi ke node atau kumpulan node yang tidak menjalankan Pod penayangan untuk Layanan apa pun yang direferensikan oleh Ingress eksternal atau Layanan LoadBalancer di cluster Anda.

Menggunakan log load balancer untuk memecahkan masalah

Anda dapat menggunakan log Load Balancer Jaringan passthrough internal dan log Load Balancer Jaringan passthrough eksternal untuk memecahkan masalah dengan load balancer dan menghubungkan dari load balancing hingga resource GKE.

Log digabungkan per koneksi dan diekspor hampir secara real time. Log dibuat untuk setiap node GKE yang terlibat di jalur data Layanan LoadBalancer, untuk traffic ingress dan egress. Entri log mencakup kolom tambahan untuk resource GKE, seperti:

  • Nama cluster
  • Lokasi cluster
  • Nama layanan
  • Namespace layanan
  • Nama pod
  • Namespace pod

Menggunakan alat diagnostik untuk memecahkan masalah

Alat diagnostik check-gke-ingress memeriksa resource Ingress untuk menemukan kesalahan konfigurasi umum. Anda dapat menggunakan alat check-gke-ingress dengan cara berikut:

  • Jalankan alat command line gcpdiag di cluster Anda. Hasil traffic ingress muncul di bagian gke/ERR/2023_004 aturan pemeriksaan.
  • Gunakan alat check-gke-ingress saja atau sebagai plugin kubectl dengan mengikuti petunjuk di check-gke-ingress.