Ingress untuk Load Balancer Aplikasi internal


Halaman ini menjelaskan cara kerja Ingress untuk Load Balancer Aplikasi internal di Google Kubernetes Engine (GKE). Anda juga dapat mempelajari cara menyiapkan dan menggunakan Ingress untuk Load Balancer Aplikasi internal.

Di GKE, Load Balancer Aplikasi internal adalah load balancer Lapisan 7 berbasis proxy dan regional, yang memungkinkan Anda menjalankan dan menskalakan layanan di balik alamat IP load balancing internal. Objek Ingress GKE mendukung Load Balancer Aplikasi internal secara native melalui pembuatan objek Ingress di cluster GKE.

Untuk mengetahui informasi umum tentang penggunaan Ingress untuk load balancing di GKE, lihat Load balancing HTTP(S) dengan Ingress.

Manfaat menggunakan Ingress untuk Load Balancer Aplikasi internal

Penggunaan Ingress GKE untuk Load Balancer Aplikasi internal memberikan manfaat berikut:

  • Pengontrol Ingress yang sangat tersedia dan dikelola GKE.
  • Load balancing untuk komunikasi internal layanan ke layanan.
  • Load balancing berbasis container dengan Network Endpoint Groups (NEG).
  • Pemilihan rute aplikasi dengan dukungan HTTP dan HTTPS.
  • Health check Compute Engine berfidelitas tinggi untuk layanan yang tangguh.
  • Proxy berbasis envoy yang di-deploy sesuai permintaan untuk memenuhi kebutuhan kapasitas traffic.

Dukungan untuk fitur Google Cloud

Ingress untuk Load Balancer Aplikasi internal mendukung berbagai fitur tambahan.

Lingkungan jaringan yang diperlukan untuk Load Balancer Aplikasi internal

Load Balancer Aplikasi internal menyediakan kumpulan proxy untuk jaringan Anda. Proxy mengevaluasi tempat setiap permintaan HTTP(S) harus diarahkan berdasarkan faktor-faktor seperti peta URL, afinitas sesi BackendService, dan mode penyeimbangan setiap NEG backend.

Load Balancer Aplikasi internal suatu region menggunakan subnet khusus proxy untuk region tersebut dalam jaringan VPC Anda guna menetapkan alamat IP internal ke setiap proxy yang dibuat oleh Google Cloud.

Secara default, alamat IP yang ditetapkan ke aturan penerusan load balancer berasal dari rentang subnet node yang ditetapkan oleh GKE, bukan dari subnet khusus proxy. Anda juga dapat menentukan alamat IP secara manual untuk aturan penerusan dari subnet mana pun saat membuat aturan.

Diagram berikut memberikan ringkasan alur traffic untuk Load Balancer Aplikasi internal, seperti yang dijelaskan di paragraf sebelumnya.

gambar

Berikut cara kerja Load Balancer Aplikasi internal:

  1. Klien membuat koneksi ke alamat IP dan port aturan penerusan load balancer.
  2. Proxy menerima dan menghentikan koneksi jaringan klien.
  3. Proxy ini membuat koneksi ke endpoint (Pod) yang sesuai dalam NEG, seperti yang ditentukan oleh peta URL load balancer dan layanan backend.

Setiap proxy memproses alamat IP dan port yang ditentukan oleh aturan penerusan load balancer yang sesuai. Alamat IP sumber setiap paket yang dikirim dari proxy ke endpoint adalah alamat IP internal yang ditetapkan ke proxy tersebut dari subnet khusus proxy.

HTTPS (TLS) antara load balancer dan aplikasi

Load Balancer Aplikasi internal bertindak sebagai proxy antara klien dan aplikasi Anda. Klien dapat menggunakan HTTP atau HTTPS untuk berkomunikasi dengan proxy load balancer. Koneksi dari proxy load balancer ke aplikasi Anda menggunakan HTTP secara default. Namun, jika aplikasi Anda berjalan di Pod GKE dan dapat menerima permintaan HTTPS, Anda dapat mengonfigurasi load balancer agar menggunakan HTTPS saat meneruskan permintaan ke aplikasi Anda.

Untuk mengonfigurasi protokol yang digunakan antara load balancer dan aplikasi, gunakan anotasi cloud.google.com/app-protocols dalam manifes Layanan.

Manifes Layanan berikut menentukan dua port. Anotasi ini menentukan bahwa Load Balancer Aplikasi internal harus menggunakan HTTP saat menargetkan port 80 Layanan, Dan menggunakan HTTPS saat menargetkan port 443 Layanan.

Anda harus menggunakan kolom name port dalam anotasi. Jangan gunakan kolom lain seperti targetPort.

apiVersion: v1
kind: Service
metadata:
  name: my-service
  annotations:
    cloud.google.com/app-protocols: '{"my-https-port":"HTTPS","my-http-port":"HTTP"}'
spec:
  type: NodePort
  selector:
    app: metrics
    department: sales
  ports:
  - name: my-https-port
    port: 443
    targetPort: 8443
  - name: my-http-port
    port: 80
    targetPort: 50001

Langkah berikutnya