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.
- Sertifikat SSL yang dikelola sendiri menggunakan Google Cloud. Hanya sertifikat regional yang didukung untuk fitur ini.
- Sertifikat SSL yang dikelola sendiri menggunakan Secret Kubernetes.
- Fitur Afinitas Sesi dan Waktu Tunggu Koneksi BackendService. Anda dapat mengonfigurasi fitur ini menggunakan BackendConfig.
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.
Berikut cara kerja Load Balancer Aplikasi internal:
- Klien membuat koneksi ke alamat IP dan port aturan penerusan load balancer.
- Proxy menerima dan menghentikan koneksi jaringan klien.
- 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
- Pelajari cara men-deploy subnet khusus proxy.
- Pelajari Ingress untuk Load Balancer Aplikasi eksternal.
- Pelajari cara mengonfigurasi Ingress untuk Load Balancer Aplikasi internal.
- Baca ringkasan jejaring di GKE.