Menyiapkan Load Balancer Jaringan proxy internal regional dengan backend NEG zona

Load Balancer Jaringan proxy internal regional adalah load balancer Lapisan 4 regional berbasis proxy yang memungkinkan Anda menjalankan dan menskalakan traffic layanan TCP di belakang alamat IP internal yang hanya dapat diakses oleh klien di jaringan VPC yang sama atau klien yang terhubung ke jaringan VPC Anda.

Panduan ini berisi petunjuk untuk menyiapkan Load Balancer Jaringan proxy internal regional dengan backend grup endpoint jaringan (NEG) zona. Sebelum memulai:

Ringkasan

Dalam contoh ini, kita akan menggunakan load balancer untuk mendistribusikan traffic TCP di seluruh VM backend dalam dua NEG zona di region REGION_A. Untuk tujuan contoh, layanan ini adalah sekumpulan server Apache yang dikonfigurasi untuk merespons di port 80.

Dalam contoh ini, Anda mengonfigurasi deployment berikut:

Contoh konfigurasi Load Balancer Jaringan proxy internal regional dengan backend NEG zona.
Contoh konfigurasi Load Balancer Jaringan proxy internal regional dengan backend NEG zona.

Load Balancer Jaringan proxy internal regional adalah load balancer regional. Semua komponen load balancer (grup instance backend, layanan backend, proxy target, dan aturan penerusan) harus berada di region yang sama.

Izin

Untuk mengikuti panduan ini, Anda harus dapat membuat instance dan mengubah jaringan dalam project. Anda harus menjadi pemilik atau editor project, atau Anda harus memiliki semua peran IAM Compute Engine berikut:

Tugas Peran yang Diperlukan
Membuat jaringan, subnet, dan komponen load balancer Admin Jaringan
Menambahkan dan menghapus aturan firewall Security Admin
Membuat instance Compute Instance Admin

Untuk informasi selengkapnya, lihat panduan berikut:

Mengonfigurasi jaringan dan subnet

Anda memerlukan jaringan VPC dengan dua subnet: satu untuk backend load balancer dan yang lainnya untuk proxy load balancer. Load Balancer Jaringan proxy internal regional bersifat regional. Traffic dalam jaringan VPC akan dirutekan ke load balancer jika sumber traffic berada di subnet dalam region yang sama dengan load balancer.

Contoh ini menggunakan jaringan VPC, region, dan subnet berikut:

  • Jaringan. Jaringan ini adalah jaringan VPC mode kustom bernama lb-network.

  • Subnet untuk backend. Subnet bernama backend-subnet di region REGION_A menggunakan 10.1.2.0/24 untuk rentang IP utamanya.

  • Subnet untuk proxy. Subnet bernama proxy-only-subnet di region REGION_A menggunakan 10.129.0.0/23 untuk rentang IP utamanya.

Buat jaringan dan subnet untuk backend

Konsol

  1. Di Trusted Cloud konsol, buka halaman VPC networks.

    Buka jaringan VPC

  2. Klik Create VPC network.

  3. Untuk Name, masukkan lb-network.

  4. Di bagian Subnet:

    • Setel Subnet creation mode ke Custom.
    • Di bagian New subnet, masukkan informasi berikut:
      • Nama: backend-subnet
      • Region: REGION_A
      • Rentang alamat IP: 10.1.2.0/24
    • Klik Selesai.
  5. Klik Create.

gcloud

  1. Buat jaringan VPC kustom dengan perintah gcloud compute networks create:

    gcloud compute networks create lb-network --subnet-mode=custom
    
  2. Buat subnet di jaringan lb-network di region REGION_A dengan perintah gcloud compute networks subnets create:

    gcloud compute networks subnets create backend-subnet \
        --network=lb-network \
        --range=10.1.2.0/24 \
        --region=REGION_A
    

Buat subnet khusus proxy

Subnet khusus proxy menyediakan serangkaian alamat IP yang digunakan Google untuk menjalankan proxy Envoy atas nama Anda. Proxy menghentikan koneksi dari klien dan membuat koneksi baru ke backend.

Subnet khusus proxy ini digunakan oleh semua load balancer berbasis Envoy di region REGION_A jaringan VPC lb-network.

Konsol

Jika menggunakan konsol Trusted Cloud , Anda dapat menunggu dan membuat subnet khusus proxy nanti di halaman Load balancing.

Jika Anda ingin membuat subnet khusus proxy sekarang, ikuti langkah-langkah berikut:

  1. Di Trusted Cloud konsol, buka halaman VPC networks.

    Buka jaringan VPC

  2. Klik nama jaringan VPC Bersama: lb-network.

  3. Klik Tambahkan subnet.

  4. Untuk Name, masukkan proxy-only-subnet.

  5. Untuk Region, pilih REGION_A.

  6. Tetapkan Purpose ke Regional Managed Proxy.

  7. Untuk IP address range, masukkan 10.129.0.0/23.

  8. Klik Tambahkan.

gcloud

Buat subnet khusus proxy dengan perintah gcloud compute networks subnets create.

gcloud compute networks subnets create proxy-only-subnet \
    --purpose=REGIONAL_MANAGED_PROXY \
    --role=ACTIVE \
    --region=REGION_A \
    --network=lb-network \
    --range=10.129.0.0/23

Membuat aturan firewall

Dalam contoh ini, Anda membuat aturan firewall berikut:

  • fw-allow-health-check: Aturan ingress, yang berlaku untuk instance Trusted Cloud yang di-load balance, yang mengizinkan traffic dari load balancer dan sistem health checkTrusted Cloud (130.211.0.0/22 dan 35.191.0.0/16). Contoh ini menggunakan tag target allow-health-check untuk mengidentifikasi VM backend yang harus diterapkan dengan tag tersebut.
  • fw-allow-ssh: Aturan ingress yang memungkinkan konektivitas SSH yang masuk pada TCP port 22 dari alamat mana pun. Anda dapat memilih rentang IP sumber yang lebih ketat untuk aturan ini; misalnya, Anda dapat menentukan hanya rentang IP sistem tempat Anda akan memulai sesi SSH. Contoh ini menggunakan tag target allow-ssh untuk mengidentifikasi VM yang harus menerapkan aturan.
  • fw-allow-proxy-only-subnet: Buat aturan firewall izinkan masuk untuk subnet khusus proxy agar load balancer dapat berkomunikasi dengan instance backend di port TCP 80. Contoh ini menggunakan tag target allow-proxy-only-subnet untuk mengidentifikasi VM backend yang harus diterapkan.

Konsol

  1. Di konsol Trusted Cloud , buka halaman Firewall policies.

    Buka Kebijakan firewall

  2. Klik Create firewall rule:

    1. Masukkan Nama fw-allow-health-check.
    2. Di bagian Network, pilih lb-network.
    3. Di bagian Target, pilih Tag target yang ditentukan.
    4. Isi kolom Target tags dengan allow-health-check.
    5. Tetapkan Source filter ke IPv4 ranges.
    6. Tetapkan Source IPv4 ranges ke 130.211.0.0/22 dan 35.191.0.0/16.
    7. Di bagian Protocols and ports, pilih Specified protocols and ports.
    8. Pilih kotak centang TCP dan masukkan 80 untuk nomor port.
    9. Klik Buat.
  3. Klik Create firewall rule lagi untuk membuat aturan yang mengizinkan koneksi SSH yang masuk:

    • Nama: fw-allow-ssh
    • Jaringan: lb-network
    • Prioritas: 1000
    • Direction of traffic: ingress
    • Tindakan terhadap kecocokan: izinkan
    • Targets: Tag target yang ditentukan
    • Tag target: allow-ssh
    • Filter sumber: Rentang IPv4
    • Rentang IPv4 sumber: 0.0.0.0/0
    • Protocols and ports: Pilih Specified protocols and ports, lalu ketik: tcp:22
  4. Klik Buat.

  5. Klik Create firewall rule lagi untuk membuat aturan yang mengizinkan koneksi masuk dari subnet khusus proxy ke backend Trusted Cloud:

    • Nama: fw-allow-proxy-only-subnet
    • Jaringan: lb-network
    • Prioritas: 1000
    • Direction of traffic: ingress
    • Tindakan terhadap kecocokan: izinkan
    • Targets: Tag target yang ditentukan
    • Tag target: allow-proxy-only-subnet
    • Filter sumber: Rentang IPv4
    • Rentang IPv4 sumber: 10.129.0.0/23
    • Protocols and ports: Pilih Specified protocols and ports, lalu ketik: tcp:80
  6. Klik Buat.

gcloud

  1. Buat aturan fw-allow-health-check untuk mengizinkan pemeriksaan Trusted Cloud health check menjangkau instance backend pada port TCP 80:

    gcloud compute firewall-rules create fw-allow-health-check \
        --network=lb-network \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-health-check \
        --source-ranges=130.211.0.0/22,35.191.0.0/16 \
        --rules=tcp:80
    
  2. Buat aturan firewall fw-allow-ssh untuk mengizinkan konektivitas SSH ke VM dengan tag jaringan allow-ssh. Jika Anda menghapus source-ranges, Trusted Cloud akan menafsirkan aturan sebagai sumber apa pun.

    gcloud compute firewall-rules create fw-allow-ssh \
        --network=lb-network \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-ssh \
        --rules=tcp:22
    
  3. Buat aturan firewall izinkan masuk untuk subnet khusus proxy agar load balancer dapat berkomunikasi dengan instance backend di port TCP 80:

    gcloud compute firewall-rules create fw-allow-proxy-only-subnet \
        --network=lb-network \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-proxy-only-subnet \
        --source-ranges=10.129.0.0/23 \
        --rules=tcp:80
    

Mencadangkan alamat IP load balancer

Untuk mencadangkan alamat IP internal statis untuk load balancer, lihat Mencadangkan alamat IPv4 atau IPv6 internal statis baru.

Menyiapkan NEG zona

Siapkan NEG zona (dengan endpoint jenis GCE_VM_IP_PORT) di region REGION_A. Pertama, buat VM. Kemudian, buat NEG zona dan tambahkan endpoint jaringan VM ke NEG.

Membuat VM

Konsol

  1. Di konsol Trusted Cloud , buka halaman VM instances.

    Buka instance VM

  2. Klik Create instance.

  3. Tetapkan Name ke vm-a1.

  4. Untuk Region, pilih REGION_A.

  5. Untuk Zone, lihat ZONE_A1.

  6. Di bagian Boot disk, pastikan Debian GNU/Linux 12 (bookworm) dipilih untuk opsi boot disk. Klik Pilih untuk mengubah gambar jika perlu.

  7. Klik Advanced options.

  8. Klik Networking dan konfigurasi kolom berikut:

    1. Untuk Network tags, masukkan allow-ssh, allow-health-check dan allow-proxy-only-subnet.
    2. Untuk Network interfaces, pilih opsi berikut:
      • Jaringan: lb-network
      • Subnet: backend-subnet
  9. Klik Management. Masukkan skrip berikut ke dalam kolom Skrip startup.

    #! /bin/bash
    apt-get update
    apt-get install apache2 -y
    a2ensite default-ssl
    a2enmod ssl
    vm_hostname="$(curl -H "Metadata-Flavor:Google" \
    http://metadata.google.internal/computeMetadata/v1/instance/name)"
    echo "Page served from: $vm_hostname" | \
    tee /var/www/html/index.html
    systemctl restart apache2
    
  10. Klik Buat.

  11. Ulangi langkah-langkah berikut untuk membuat 3 VM lagi, menggunakan kombinasi nama dan zona berikut:

    • Nama: vm-a2, zona: ZONE_A1
    • Nama: vm-c1, zona: ZONE_A2
    • Nama: vm-c2, zona: ZONE_A2

gcloud

Buat VM dengan menjalankan perintah berikut dua kali, menggunakan kombinasi ini untuk VM_NAME dan ZONE. Isi skrip sama untuk kedua VM.

  • VM_NAME: vm-a1 dan ZONE: ZONE_A1
  • VM_NAME: vm-a2 dan ZONE: ZONE_A1
  • VM_NAME: vm-c1 dan ZONE: ZONE_A2
  • VM_NAME: vm-c2 dan ZONE: ZONE_A2

    gcloud compute instances create VM_NAME \
        --zone=ZONE \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --tags=allow-ssh,allow-health-check,allow-proxy-only-subnet \
        --subnet=backend-subnet \
        --metadata=startup-script='#! /bin/bash
         apt-get update
         apt-get install apache2 -y
         a2ensite default-ssl
         a2enmod ssl
         vm_hostname="$(curl -H "Metadata-Flavor:Google" \
         http://metadata.google.internal/computeMetadata/v1/instance/name)"
         echo "Page served from: $vm_hostname" | \
         tee /var/www/html/index.html
         systemctl restart apache2'
    

Membuat NEG zona

Konsol

Untuk membuat grup endpoint jaringan zonal:

  1. Di konsol Trusted Cloud , buka halaman Network endpoint groups.

    Buka Network endpoint groups

  2. Klik Create network endpoint group.

  3. Untuk Name, masukkan zonal-neg-a.

  4. Untuk Network endpoint group type, pilih Network endpoint group (Zonal).

  5. Untuk Network, pilih lb-network.

  6. Untuk Subnet, pilih backend-subnet.

  7. Untuk Zone, pilih ZONE_A1.

  8. Masukkan Default port: 80.

  9. Klik Buat.

  10. Ulangi semua langkah di bagian ini untuk membuat NEG zona kedua dengan perubahan berikut dalam setelan:

    • Nama: zonal-neg-c
    • Zona: ZONE_A2

Tambahkan endpoint ke NEG zona:

  1. Di konsol Trusted Cloud , buka halaman Network endpoint groups.

    Buka Network endpoint groups

  2. Klik Nama grup endpoint jaringan yang dibuat pada langkah sebelumnya (misalnya, zonal-neg-a). Anda akan melihat halaman Detail grup endpoint jaringan.

  3. Di bagian Network endpoints in this group, klik Add network endpoint. Anda akan melihat halaman Tambahkan endpoint jaringan.

  4. Pilih VM instance (misalnya, vm-a1). Di bagian Network interface, nama, zona, dan subnet VM ditampilkan.

    1. Masukkan alamat IP endpoint jaringan baru. Anda dapat mengklik Check primary IP addresses and alias IP range in nic0 untuk alamat IP.
    2. Untuk Port type, pilih Default, endpoint menggunakan port default 80 untuk semua endpoint dalam grup endpoint jaringan. Hal ini sudah cukup untuk contoh kita karena server Apache melayani permintaan di port 80.
    3. Klik Buat.
  5. Klik lagi Add network endpoint. Pilih instance VM kedua, vm-a2, dan ulangi langkah-langkah ini untuk menambahkan endpointnya ke zonal-neg-a.

  6. Ulangi semua langkah di bagian ini untuk menambahkan endpoint dari vm-c1 dan vm-c2 ke zonal-neg-c.

gcloud

  1. Buat NEG zona di zona ZONE_A1 dengan GCE_VM_IP_PORT endpoint.

    gcloud compute network-endpoint-groups create zonal-neg-a \
       --network-endpoint-type=GCE_VM_IP_PORT \
       --zone=ZONE_A1 \
       --network=lb-network \
       --subnet=backend-subnet
    

    Anda dapat menentukan --default-port saat membuat NEG, atau menentukan nomor port untuk setiap endpoint seperti yang ditunjukkan pada langkah berikutnya.

  2. Tambahkan endpoint ke NEG zonal.

    gcloud compute network-endpoint-groups update zonal-neg-a \
        --zone=ZONE_A1 \
        --add-endpoint='instance=vm-a1,port=80' \
        --add-endpoint='instance=vm-a2,port=80'
    
  3. Buat NEG zona di zona ZONE_A2 dengan GCE_VM_IP_PORT endpoint.

    gcloud compute network-endpoint-groups create zonal-neg-c \
        --network-endpoint-type=GCE_VM_IP_PORT \
        --zone=ZONE_A2 \
        --network=lb-network \
        --subnet=backend-subnet
    

    Anda dapat menentukan --default-port saat membuat NEG, atau menentukan nomor port untuk setiap endpoint seperti yang ditunjukkan pada langkah berikutnya.

  4. Tambahkan endpoint ke NEG zonal.

    gcloud compute network-endpoint-groups update zonal-neg-c \
        --zone=ZONE_A2 \
        --add-endpoint='instance=vm-c1,port=80' \
        --add-endpoint='instance=vm-c2,port=80'
    

Mengonfigurasi load balancer

Konsol

Mulai konfigurasi

  1. Di konsol Trusted Cloud , buka halaman Load balancing.

    Buka Load balancing

  2. Klik Create load balancer.
  3. Untuk Type of load balancer, pilih Network Load Balancer (TCP/UDP/SSL), lalu klik Next.
  4. Untuk Proxy or passthrough, pilih Proxy load balancer, lalu klik Next.
  5. Untuk Public facing or internal, pilih Internal, lalu klik Next.
  6. Untuk Cross-region or single region deployment, pilih Best for regional workloads, lalu klik Next.
  7. Klik Configure.

Konfigurasi dasar

  1. Untuk Name, masukkan my-int-tcp-lb.
  2. Untuk Region, pilih REGION_A.
  3. Untuk Network, pilih lb-network.

Mereservasi subnet khusus proxy

Untuk mereservasi subnet khusus proxy:

  1. Klik Reserve subnet.
  2. Untuk Name, masukkan proxy-only-subnet.
  3. Untuk Rentang alamat IP, masukkan 10.129.0.0/23.
  4. Klik Tambahkan.

Konfigurasi backend

  1. Klik Backend configuration.
  2. Untuk Backend type, pilih Zonal network endpoint group.
  3. Untuk Protocol, pilih TCP.
  4. Di daftar Health check, klik Create a health check, lalu masukkan informasi berikut:
    1. Nama: tcp-health-check
    2. Protokol: TCP
    3. Port: 80
  5. Klik Buat.
  6. Konfigurasi backend pertama:
    1. Di bagian New backend, pilih NEG zona zonal-neg-a.
    2. Pertahankan nilai default yang tersisa, lalu klik Selesai.
  7. Konfigurasi backend kedua:

    1. Klik Add backend.
    2. Di bagian New backend, pilih grup instance zonal-neg-c.
    3. Pertahankan nilai default yang tersisa, lalu klik Selesai.
  8. Di konsol Trusted Cloud , pastikan ada tanda centang di samping Backend configuration. Jika belum, periksa kembali apakah Anda telah menyelesaikan semua langkah.

Konfigurasi frontend

  1. Klik Frontend configuration.
  2. Untuk Name, masukkan int-tcp-forwarding-rule.
  3. Untuk Subnetwork, pilih backend-subnet.
  4. Untuk IP address, pilih int-tcp-ip-address.
  5. Untuk Port number, masukkan 9090. Aturan penerusan hanya meneruskan paket dengan port tujuan yang cocok.
  6. Dalam contoh ini, jangan aktifkan Proxy Protocol karena tidak berfungsi dengan software Apache HTTP Server. Untuk mengetahui informasi selengkapnya, lihat Proxy protocol.
  7. Klik Selesai.
  8. Di konsol Trusted Cloud , pastikan ada tanda centang di samping Frontend configuration. Jika belum, periksa kembali apakah Anda telah menyelesaikan semua langkah sebelumnya.

Tinjau dan selesaikan

  1. Klik Review and finalize.
  2. Periksa kembali setelan Anda.
  3. Klik Buat.

gcloud

  1. Buat health check regional untuk backend.

    gcloud compute health-checks create tcp tcp-health-check \
        --region=REGION_A \
        --use-serving-port
    
  2. Buat layanan backend.

    gcloud compute backend-services create internal-tcp-proxy-bs \
       --load-balancing-scheme=INTERNAL_MANAGED \
       --protocol=TCP \
       --region=REGION_A \
       --health-checks=tcp-health-check \
       --health-checks-region=REGION_A
    
  3. Tambahkan NEG zona di zona ZONE_A1 ke layanan backend.

    gcloud compute backend-services add-backend internal-tcp-proxy-bs \
       --network-endpoint-group=zonal-neg-a \
       --network-endpoint-group-zone=ZONE_A1 \
       --balancing-mode=CONNECTION \
       --max-connections-per-endpoint=50 \
       --region=REGION_A
    
  4. Tambahkan NEG zona di zona ZONE_A2 ke layanan backend.

    gcloud compute backend-services add-backend internal-tcp-proxy-bs \
       --network-endpoint-group=zonal-neg-c \
       --network-endpoint-group-zone=ZONE_A2 \
       --balancing-mode=CONNECTION \
       --max-connections-per-endpoint=50 \
       --region=REGION_A
    
  5. Buat proxy TCP target.

    gcloud compute target-tcp-proxies create int-tcp-target-proxy \
       --backend-service=internal-tcp-proxy-bs \
       --region=REGION_A
    
  6. Membuat aturan penerusan. Untuk --ports, tentukan satu nomor port dari 1-65535. Contoh ini menggunakan port 9090. Aturan penerusan hanya meneruskan paket dengan port tujuan yang cocok.

    gcloud compute forwarding-rules create int-tcp-forwarding-rule \
      --load-balancing-scheme=INTERNAL_MANAGED \
      --network=lb-network \
      --subnet=backend-subnet \
      --address=int-tcp-ip-address \
      --ports=9090 \
      --region=REGION_A \
      --target-tcp-proxy=int-tcp-target-proxy \
      --target-tcp-proxy-region=REGION_A
    

Menguji load balancer

Untuk menguji load balancer, buat VM klien di region yang sama dengan load balancer. Kemudian, kirim traffic dari klien ke load balancer.

Membuat VM klien

Buat VM klien (client-vm) di region yang sama dengan load balancer.

Konsol

  1. Di konsol Trusted Cloud , buka halaman VM instances.

    Buka instance VM

  2. Klik Create instance.

  3. Setel Nama ke client-vm.

  4. Setel Zona ke ZONE_A1.

  5. Klik Advanced options.

  6. Klik Networking dan konfigurasi kolom berikut:

    1. Untuk Network tags, masukkan allow-ssh.
    2. Untuk Network interfaces, pilih opsi berikut:
      • Jaringan: lb-network
      • Subnet: backend-subnet
  7. Klik Buat.

gcloud

VM klien harus berada di region dan jaringan VPC yang sama dengan load balancer. Instance tidak harus berada di subnet atau zona yang sama. Klien menggunakan subnet yang sama dengan VM backend.

gcloud compute instances create client-vm \
    --zone=ZONE_A1 \
    --image-family=debian-12 \
    --image-project=debian-cloud \
    --tags=allow-ssh \
    --subnet=backend-subnet

Mengirim traffic ke load balancer

Setelah mengonfigurasi load balancer, Anda dapat menguji pengiriman traffic ke alamat IP load balancer.

  1. Gunakan SSH untuk terhubung ke instance klien.

    gcloud compute ssh client-vm \
      --zone=ZONE_A1
    
  2. Verifikasi bahwa load balancer menyalurkan nama host backend seperti yang diharapkan.

    1. Gunakan perintah compute addresses describe untuk melihat alamat IP load balancer:

      gcloud compute addresses describe int-tcp-ip-address \
        --region=REGION_A
      

      Catat alamat IP-nya.

    2. Kirim traffic ke load balancer. Ganti IP_ADDRESS dengan alamat IP load balancer.

      curl IP_ADDRESS:9090
      

Langkah berikutnya