Network Load Balancer proxy eksternal regional adalah load balancer Lapisan 4 regional berbasis proxy yang memungkinkan Anda menjalankan dan menskalakan traffic layanan TCP di satu region di balik alamat IP regional eksternal. Load balancer ini mendistribusikan traffic TCP eksternal dari internet ke backend di region yang sama.
Sebelum memulai, baca Ringkasan Load Balancer Jaringan proxy eksternal.
Panduan ini berisi petunjuk untuk menyiapkan Load Balancer Jaringan proxy eksternal regional dengan backend grup instance terkelola (MIG). Untuk contoh ini, Anda akan mengonfigurasi deployment yang ditunjukkan dalam diagram berikut.
Untuk contoh ini, kita akan menggunakan load balancer untuk mendistribusikan traffic TCP di seluruh VM backend dalam dua grup instance terkelola zonal di Region A. Untuk
tujuan contoh, layanan ini adalah serangkaian server Apache yang dikonfigurasi
untuk merespons di port 110. Banyak browser tidak mengizinkan port 110, sehingga bagian pengujian menggunakan curl.
Load Balancer Jaringan proxy eksternal regional adalah load balancer regional. Semua komponen load balancer harus berada di region yang sama dengan load balancer.
Izin
Untuk mengikuti panduan ini, Anda harus dapat membuat instance dan mengubah jaringan dalam sebuah 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 | Compute Network Admin
(roles/compute.networkAdmin) |
| Menambahkan dan menghapus aturan firewall | Compute Security Admin
(roles/compute.securityAdmin) |
| Membuat instance | Compute Instance Admin
(roles/compute.instanceAdmin) |
Untuk mendapatkan informasi selengkapnya, lihat panduan berikut:
Opsional: Menggunakan alamat BYOIP
Dengan fitur bawa IP Anda sendiri (BYOIP), Anda dapat mengimpor alamat publik Anda sendiri keGoogle Cloud untuk menggunakan alamat tersebut dengan resource Google Cloud . Misalnya, jika Anda mengimpor alamat IPv4 Anda sendiri, Anda dapat menetapkannya ke aturan penerusan saat mengonfigurasi load balancer. Saat Anda mengikuti petunjuk dalam dokumen ini untuk mengonfigurasi load balancer, berikan alamat BYOIP sebagai alamat IP.
Untuk mengetahui informasi selengkapnya tentang penggunaan BYOIP, lihat Membawa alamat IP Anda sendiri.
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 ini bersifat regional. Traffic dalam jaringan VPC dirutekan ke load balancer jika sumber traffic berada di subnet di region yang sama dengan load balancer.
Contoh ini menggunakan jaringan VPC, region, dan subnet berikut:
Jaringan: jaringan VPC mode kustom bernama
lb-networkSubnet untuk backend: subnet bernama
backend-subnetdi Region A yang menggunakan10.1.2.0/24untuk rentang alamat IP utamanyaSubnet untuk proxy: subnet bernama
proxy-only-subnetdi Region B yang menggunakan10.129.0.0/23untuk rentang alamat IP primernya
Buat jaringan dan subnet
Konsol
Di konsol Google Cloud , buka halaman VPC networks.
Klik Create VPC network.
Untuk Name, masukkan
lb-network.Di bagian Subnets, setel Subnet creation mode ke Custom.
Buat subnet untuk backend load balancer. Di bagian New subnet, masukkan informasi berikut:
- Nama:
backend-subnet - Region:
REGION_A - Rentang alamat IP:
10.1.2.0/24
- Nama:
Klik Done.
Klik Create.
gcloud
Untuk membuat jaringan VPC kustom, gunakan perintah
gcloud compute networks create:gcloud compute networks create lb-network --subnet-mode=custom
Untuk membuat subnet di jaringan
lb-networkdi regionREGION_A, gunakan perintahgcloud 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 A jaringan VPC lb-network.
Konsol
Jika menggunakan konsol Google 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:
Di konsol Google Cloud , buka halaman VPC networks.
Klik nama jaringan VPC:
lb-network.Klik Tambahkan subnet.
Untuk Name, masukkan
proxy-only-subnet.Untuk Region, pilih
REGION_A.Tetapkan Purpose ke Regional Managed Proxy.
Untuk Rentang alamat IP, masukkan
10.129.0.0/23.Klik Tambahkan.
gcloud
Untuk membuat subnet khusus proxy, gunakan 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 akan membuat aturan firewall berikut:
fw-allow-ssh. Aturan ingress, yang berlaku untuk instance yang di-load balance, yang memungkinkan konektivitas SSH yang masuk pada TCP port22dari 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 memulai sesi SSH. Contoh ini menggunakan tag targetallow-ssh.fw-allow-health-check. Aturan ingress, yang berlaku untuk instance yang di-load balance, yang mengizinkan semua traffic TCP dari Google Cloud rentang pemeriksaan kondisi. Contoh ini menggunakan tag targetallow-health-check.fw-allow-proxy-only-subnet. Aturan ingress yang mengizinkan koneksi dari subnet khusus proxy untuk menjangkau backend.
Tanpa aturan firewall ini, aturan tolak ingress default akan memblokir traffic masuk ke instance backend.
Tag target menentukan instance backend. Tanpa tag target, aturan firewall berlaku untuk semua instance backend Anda di jaringan VPC. Saat membuat VM backend, pastikan untuk menyertakan tag target yang ditentukan, seperti yang ditunjukkan dalam Membuat grup instance terkelola.
Konsol
Di konsol Google Cloud , buka halaman Firewall policies.
Klik Create firewall rule untuk membuat aturan yang mengizinkan koneksi SSH yang masuk. Lengkapi kolom berikut:
- Nama:
fw-allow-ssh - Network:
lb-network - 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 - Protokol dan port:
- Pilih Specified protocols and ports.
- Pilih kotak centang TCP, lalu masukkan
22untuk nomor port.
- Nama:
Klik Create.
Klik Create firewall rule untuk kedua kalinya guna membuat aturan yang mengizinkan Google Cloud health check:
- Nama:
fw-allow-health-check - Network:
lb-network - Direction of traffic: Ingress
- Tindakan terhadap kecocokan: Izinkan
- Targets: Tag target yang ditentukan
- Tag target:
allow-health-check - Filter sumber: Rentang IPv4
- Rentang IPv4 sumber:
35.191.0.0/16,130.211.0.0/22 Protocols and ports:
- Pilih Specified protocols and ports.
- Pilih kotak centang TCP, lalu masukkan
80untuk nomor port.
Sebagai praktik terbaik, batasi aturan ini hanya pada protokol dan port yang cocok dengan yang digunakan oleh health check Anda. Jika Anda menggunakan
tcp:80untuk protokol dan port, Google Cloud dapat menggunakan HTTP di port80untuk menghubungi VM Anda, tetapi tidak dapat menggunakan HTTPS di port443untuk menghubungi VM.
- Nama:
Klik Create.
Klik Create firewall rule untuk ketiga kalinya guna membuat aturan yang mengizinkan server proxy load balancer terhubung ke backend:
- Nama:
fw-allow-proxy-only-subnet - Network:
lb-network - 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 - Protokol dan port:
- Pilih Specified protocols and ports.
- Pilih kotak centang TCP, lalu masukkan
80untuk nomor port.
- Nama:
Klik Create.
gcloud
Buat aturan firewall
fw-allow-sshuntuk mengizinkan konektivitas SSH ke VM dengan tag jaringanallow-ssh. Jika Anda menghapussource-ranges, Google 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:22Buat aturan
fw-allow-health-checkuntuk mengizinkan health check Google Cloud. Contoh ini mengizinkan semua traffic TCP dari penguji health check; namun, Anda juga dapat mengonfigurasi kumpulan port yang lebih sempit untuk memenuhi kebutuhan Anda.gcloud compute firewall-rules create fw-allow-health-check \ --network=lb-network \ --action=allow \ --direction=ingress \ --source-ranges=35.191.0.0/16,130.211.0.0/22\ --target-tags=allow-health-check \ --rules=tcp:80Buat aturan
fw-allow-proxy-only-subnetuntuk mengizinkan proxy Envoy di region terhubung ke backend Anda. Tetapkan--source-rangeske rentang yang dialokasikan dari subnet khusus proxy Anda—dalam contoh ini,10.129.0.0/23.gcloud compute firewall-rules create fw-allow-proxy-only-subnet \ --network=lb-network \ --action=allow \ --direction=ingress \ --source-ranges=10.129.0.0/23 \ --target-tags=allow-proxy-only-subnet \ --rules=tcp:80
Mencadangkan alamat IP load balancer
Cadangkan alamat IP statis untuk load balancer.
Konsol
Di konsol Google Cloud , buka halaman Reserve a static address.
Pilih nama untuk alamat baru.
Untuk Network Service Tier, pilih Standard.
Untuk IP version, pilih IPv4. Alamat IPv6 tidak didukung.
Untuk Jenis, pilih Regional.
Untuk Region, pilih
REGION_A.Biarkan opsi Dilampirkan ke ditetapkan ke Tidak ada. Setelah Anda membuat load balancer, alamat IP ini dilampirkan ke aturan penerusan load balancer.
Klik Reserve untuk mereservasi alamat IP.
gcloud
Untuk mencadangkan alamat IP eksternal statis, gunakan perintah
gcloud compute addresses create:gcloud compute addresses create ADDRESS_NAME \ --region=REGION_A \ --network-tier=STANDARDGanti
ADDRESS_NAMEdengan nama yang ingin Anda beri untuk alamat ini.Untuk melihat hasilnya, gunakan perintah
gcloud compute addresses describe:gcloud compute addresses describe ADDRESS_NAME
Membuat grup instance terkelola
Bagian ini menunjukkan cara membuat dua backend grup instance terkelola (MIG) di Region A untuk load balancer. MIG menyediakan instance VM yang menjalankan server Apache backend untuk contoh ini. Biasanya, Network Load Balancer proxy eksternal regional tidak digunakan untuk traffic HTTP, tetapi software Apache umumnya digunakan untuk pengujian.
Konsol
Buat template instance.
Di konsol Google Cloud , buka halaman Instance templates.
Klik Buat template instance .
Untuk Name, masukkan
ext-reg-tcp-proxy-backend-template.Pastikan Boot disk disetel ke image Debian, seperti Debian GNU/Linux 12 (bookworm). Petunjuk ini menggunakan perintah yang hanya tersedia di Debian, seperti
apt-get.Klik Advanced options.
Klik Networking dan konfigurasi kolom berikut:
- Untuk Network tags, masukkan
allow-ssh,allow-health-check, danallow-proxy-only-subnet. - Untuk Network interfaces, pilih opsi berikut:
- Network:
lb-network - Subnet:
backend-subnet
- Network:
- Untuk Network tags, masukkan
Klik Management. Masukkan skrip berikut ke dalam kolom 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
Klik Create.
Membuat grup instance terkelola
Di konsol Google Cloud , buka halaman Instance groups.
Klik Create instance group.
Pilih New managed instance group (stateless). Untuk mengetahui informasi selengkapnya, lihat Membuat MIG dengan disk stateful.
Untuk Name, masukkan
mig-a.Untuk Location, pilih Single zone.
Untuk Region, pilih
REGION_A.Untuk Zone, pilih
ZONE_A.Untuk Template instance, pilih
ext-reg-tcp-proxy-backend-template.Tentukan jumlah instance yang ingin Anda buat dalam grup.
Untuk contoh ini, tentukan opsi berikut untuk Penskalaan otomatis:
- Untuk Autoscaling mode, pilih
Off:do not autoscale. - Untuk Maximum number of instances, masukkan
2.
- Untuk Autoscaling mode, pilih
Untuk Port mapping, klik Add port.
- Untuk Port name, masukkan
tcp80. - Untuk Port number, masukkan
80.
- Untuk Port name, masukkan
Klik Create.
Untuk membuat grup instance terkelola kedua, ulangi langkah-langkah Membuat grup instance terkelola dan gunakan setelan berikut:
- Nama:
mig-b - Zona:
ZONE_B
Pertahankan semua setelan lainnya.
- Nama:
gcloud
Petunjuk Google Cloud CLI dalam panduan ini mengasumsikan bahwa Anda menggunakan
Cloud Shell atau lingkungan lain dengan bash terinstal.
Untuk membuat template instance VM dengan server HTTP, gunakan perintah
gcloud compute instance-templates create:gcloud compute instance-templates create ext-reg-tcp-proxy-backend-template \ --region=REGION_A \ --network=lb-network \ --subnet=backend-subnet \ --tags=allow-ssh,allow-health-check,allow-proxy-only-subnet \ --image-family=debian-12 \ --image-project=debian-cloud \ --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'Buat grup instance terkelola di zona
ZONE_A:gcloud compute instance-groups managed create mig-a \ --zone=ZONE_A \ --size=2 \ --template=ext-reg-tcp-proxy-backend-templateBuat grup instance terkelola di zona
ZONE_B:gcloud compute instance-groups managed create mig-b \ --zone=ZONE_B \ --size=2 \ --template=ext-reg-tcp-proxy-backend-template
Mengonfigurasi load balancer
Konsol
Mulai konfigurasi
Di konsol Google Cloud , buka halaman Load balancing.
- Klik Create load balancer.
- Untuk Type of load balancer, pilih Network Load Balancer (TCP/UDP/SSL), lalu klik Next.
- Untuk Proxy or passthrough, pilih Proxy load balancer, lalu klik Next.
- Untuk Public facing or internal, pilih Public facing (external), lalu klik Next.
- Untuk Global or single region deployment, pilih Best for regional workloads, lalu klik Next.
- Klik Configure.
Konfigurasi dasar
- Untuk Name, masukkan
my-ext-tcp-lb. - Untuk Region, pilih
REGION_A. - Untuk Network, pilih
lb-network.
Mereservasi subnet khusus proxy
- Klik Reserve.
- Di kolom Name, masukkan
proxy-only-subnet. - Di kolom IP address range, masukkan
10.129.0.0/23. - Klik Tambahkan.
Mengonfigurasi backend
- Klik Backend configuration.
- Di daftar Backend type, pilih Instance group.
- Di daftar Protocol, pilih TCP.
- Di kolom Named port, masukkan
tcp80. - Konfigurasi health check:
- Dalam daftar Health check, pilih Create a health check.
- Di kolom Name, masukkan
tcp-health-check. - Di daftar Protocol, pilih TCP.
- Di kolom Port, masukkan
80. - Klik Create.
- Konfigurasi backend pertama:
- Untuk New backend, pilih grup instance
mig-a. - Untuk Port numbers, masukkan
80. - Pertahankan nilai default yang tersisa, lalu klik Done.
- Untuk New backend, pilih grup instance
- Konfigurasi backend kedua:
- Klik Add backend.
- Untuk New backend, pilih grup instance
mig-b. - Untuk Port numbers, masukkan
80. - Pertahankan nilai default yang tersisa, lalu klik Done.
- Pertahankan nilai default yang tersisa, lalu klik Simpan.
- Di konsol Google Cloud , pastikan ada tanda centang di samping Backend configuration. Jika belum, periksa kembali apakah Anda telah menyelesaikan semua langkah.
Mengonfigurasi frontend
- Klik Frontend configuration.
- Untuk Name, masukkan
ext-reg-tcp-forwarding-rule. - Untuk Network Service Tier, pilih Standard.
- Untuk IP address, pilih alamat IP yang dicadangkan sebelumnya: LB_IP_ADDRESS
- Untuk Port number, masukkan
110. Aturan penerusan hanya meneruskan paket dengan port tujuan yang cocok. - Untuk Proxy protocol, pilih Off karena protokol PROXY tidak berfungsi dengan software Apache HTTP Server. Untuk mengetahui informasi selengkapnya, lihat protokol PROXY.
- Klik Done.
- Di konsol Google Cloud , pastikan ada tanda centang di samping Frontend configuration. Jika tidak ada, periksa kembali apakah Anda telah menyelesaikan semua langkah sebelumnya.
Tinjau dan selesaikan
- Klik Review and finalize.
- Tinjau setelan konfigurasi load balancer Anda.
- Opsional: Klik Equivalent code untuk melihat permintaan REST API yang digunakan untuk membuat load balancer.
- Klik Create.
gcloud
Membuat health check regional:
gcloud compute health-checks create tcp tcp-health-check \ --region=REGION_A \ --use-serving-portBuat layanan backend:
gcloud compute backend-services create ext-reg-tcp-proxy-bs \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=TCP \ --port-name=tcp80 \ --region=REGION_A \ --health-checks=tcp-health-check \ --health-checks-region=REGION_ATambahkan grup instance ke layanan backend Anda:
gcloud compute backend-services add-backend ext-reg-tcp-proxy-bs \ --region=REGION_A \ --instance-group=mig-a \ --instance-group-zone=ZONE_A \ --balancing-mode=UTILIZATION \ --max-utilization=0.8gcloud compute backend-services add-backend ext-reg-tcp-proxy-bs \ --region=REGION_A \ --instance-group=mig-b \ --instance-group-zone=ZONE_B \ --balancing-mode=UTILIZATION \ --max-utilization=0.8Buat proxy TCP target:
gcloud compute target-tcp-proxies create ext-reg-tcp-target-proxy \ --backend-service=ext-reg-tcp-proxy-bs \ --proxy-header=NONE \ --region=REGION_AJika Anda ingin mengaktifkan header proxy, tetapkan ke
PROXY_V1, bukanNONE. Dalam contoh ini, jangan aktifkan protokol PROXY karena tidak berfungsi dengan software Apache HTTP Server. Untuk mengetahui informasi selengkapnya, lihat protokol PROXY.Membuat aturan penerusan. Untuk
--ports, tentukan satu nomor port dari 1-65535. Contoh ini menggunakan port110. Aturan penerusan hanya meneruskan paket dengan port tujuan yang cocok.gcloud compute forwarding-rules create ext-reg-tcp-forwarding-rule \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network-tier=STANDARD \ --network=lb-network \ --region=REGION_A \ --target-tcp-proxy=ext-reg-tcp-target-proxy \ --target-tcp-proxy-region=REGION_A \ --address=LB_IP_ADDRESS \ --ports=110
Menguji load balancer
Setelah mengonfigurasi load balancer, Anda dapat menguji pengiriman traffic ke alamat IP load balancer.
Dapatkan alamat IP load balancer.
Untuk mendapatkan alamat IPv4, jalankan perintah berikut:
gcloud compute addresses describe ADDRESS_NAME
Kirim traffic ke load balancer dengan menjalankan perintah berikut. Ganti
LB_IP_ADDRESSdengan alamat IPv4 load balancer Anda.curl -m1 LB_IP_ADDRESS:9090
Opsi konfigurasi tambahan
Bagian ini memperluas contoh konfigurasi untuk memberikan opsi konfigurasi alternatif dan tambahan. Semua tugas bersifat opsional. Anda dapat melakukannya dalam urutan apa pun.
Membuat load balancer dengan rute TLS
Bagian ini menunjukkan cara membuat load balancer yang dapat menggunakan perutean berbasis SNI. Perutean berbasis SNI memungkinkan Load Balancer Jaringan proxy Anda merutekan traffic ke layanan backend tertentu berdasarkan nama host Server Name Indication (SNI) yang diberikan selama handshake TLS.
Untuk membuat load balancer ini, kita menggunakan jaringan, subnet, dan aturan firewall yang sama yang dibuat sebelumnya di halaman ini. Anda mengonfigurasi deployment yang ditunjukkan dalam diagram berikut:
Membuat backend grup instance terkelola
Bagian ini menunjukkan cara membuat backend grup instance terkelola (MIG) untuk load balancer. MIG menyediakan instance VM yang menjalankan server backend untuk contoh ini.
Petunjuk Google Cloud CLI dalam panduan ini mengasumsikan bahwa Anda menggunakan
Cloud Shell atau lingkungan lain dengan bash terinstal.
Buat template instance dengan layanan HTTPS "echo" yang diekspos di port 443.
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --region=REGION_A \ --network=NETWORK \ --subnet=SUBNET_A \ --stack-type=IPv4_ONLY \ --tags=allow-ssh,allow-health-check,allow-proxy-only-subnet \ --image-family=debian-12 \ --image-project=debian-cloud \ --metadata=startup-script='#! /bin/bash sudo sed -i "s/^#DNS=.*/DNS=8.8.8.8 8.8.4.4/" /etc/systemd/resolved.conf sudo systemctl restart systemd-resolved sudo rm -rf /var/lib/apt/lists/* sudo apt-get -y clean sudo apt-get -y update sudo apt-get -y install ca-certificates curl gnupg software-properties-common sudo curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add - sudo add-apt-repository -y "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable" sudo apt-get -y update sudo apt-get -y install docker-ce sudo which docker echo "{ \"registry-mirrors\": [\"https://mirror.gcr.io\"] }" | sudo tee -a /etc/docker/daemon.json sudo service docker restart sudo docker run -e HTTPS_PORT=9999 -p 443:9999 --rm -dt mendhak/http-https-echo:22'Ganti kode berikut:
INSTANCE_TEMPLATE_NAME: nama untuk template instance.REGION_A: region untuk template instance.NETWORK: nama jaringan.SUBNET_A: nama subnetwork.
Buat grup instance terkelola berdasarkan template instance:
gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --zone=ZONE_A \ --size=2 \ --template=INSTANCE_TEMPLATE_NAME
Ganti
ZONE_Adengan zona untuk grup instance.Tetapkan nama port penayangan untuk grup instance terkelola:
gcloud compute instance-groups managed set-named-ports INSTANCE_GROUP_NAME \ --named-ports=PORT_NAME:PORT_NUMBER \ --zone=ZONE_A
Ganti kode berikut:
PORT_NAME: nama untuk port penayangan—misalnya,tcp443.PORT_NUMBER: nomor port untuk port penayangan—misalnya,443.
Mengonfigurasi firewall
Konfigurasi aturan firewall untuk mengizinkan traffic dari load balancer dan dari probe health check ke instance backend.
gcloud compute firewall-rules create FIREWALL_RULE_NAME \
--network=NETWORK \
--action=allow \
--direction=ingress \
--source-ranges=35.191.0.0/16,130.211.0.0/22 \
--target-tags=allow-health-check \
--rules=tcp:443
Ganti FIREWALL_RULE_NAME dengan nama untuk aturan firewall.
Mengonfigurasi load balancer
Buat health check HTTPS:
gcloud compute health-checks create http HTTPS_HEALTH_CHECK_NAME \ --region=REGION_A \ --port=HC_PORTGanti kode berikut:
HTTPS_HEALTH_CHECK_NAME: nama untuk health check.HC_PORT: port untuk health check—misalnya,443.REGION_A: region untuk health check.
Buat layanan backend:
gcloud compute backend-services create BACKEND_SERVICE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=TCP \ --port-name=PORT_NAME \ --health-checks=HTTPS_HEALTH_CHECK_NAME \ --health-checks-region=REGION_A \ --region=REGION_AGanti kode berikut:
BACKEND_SERVICE_NAME: nama untuk layanan backend.PORT_NAME: nama port untuk layanan backend. Gunakan port bernama yang sama yang dikonfigurasi di grup instance—misalnya,tcp443.HTTPS_HEALTH_CHECK_NAME: nama health check HTTPS.
Tambahkan grup instance backend ke layanan backend Anda:
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --balancing-mode=UTILIZATION \ --max-utilization=0.8 --instance-group=INSTANCE_GROUP_NAME \ --instance-group-zone=ZONE_A \ --region=REGION_AGanti kode berikut:
INSTANCE_GROUP_NAME: nama grup instance backend.ZONE_A: zona grup instance.
Buat proxy TCP target.
gcloud beta compute target-tcp-proxies create TARGET_TCP_PROXY_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --proxy-header=NONE \ --region=REGION_AGanti
TARGET_TCP_PROXY_NAMEdengan nama proxy TCP target.Buat spesifikasi rute TLS dan simpan ke file YAML.
cat <<EOF | tee YAML_FILE_NAME name: TLS_ROUTE_NAME targetProxies: - projects/PROJECT_NUMBER/locations/REGION_A/targetTcpProxies/TARGET_TCP_PROXY rules: - matches: - sniHost: - example.com action: destinations: - serviceName: projects/PROJECT_NUMBER/locations/REGION_A/backendServices/BACKEND_SERVICE_NAME EOFGanti kode berikut:
YAML_FILE_NAME: nama untuk file YAML—misalnya,tls-route.yaml.TLS_ROUTE_NAME: nama untuk rute TLS.PROJECT_NUMBER: nomor project.
Gunakan file spesifikasi YAML untuk membuat resource rute TLS.
gcloud network-services tls-routes import TLS_ROUTE_NAME \ --source=YAML_FILE_NAME \ --location=REGION_A
Membuat aturan penerusan.
gcloud compute forwarding-rules create FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network-tier=STANDARD \ --network=NETWORK \ --region=REGION_A \ --target-tcp-proxy=TARGET_TCP_PROXY_NAME \ --target-tcp-proxy-region=REGION_A \ --address=IP_ADDRESS \ --ports=PORT_NUMBER
Ganti kode berikut:
FORWARDING_RULE_NAME: nama untuk aturan penerusan.NETWORK: nama jaringan.SUBNET_A: nama subnetwork di region yang sama dengan load balancer.IP_ADDRESS: alamat IP load balancer.PORT_NUMBER: port yang digunakan oleh aturan penerusan—misalnya,443.
Menguji load balancer
Setelah mengonfigurasi load balancer, Anda dapat menguji pengiriman traffic ke alamat IP load balancer.
Pastikan Anda dapat mengakses layanan HTTPS melalui load balancer.
curl https://example.com --resolve example.com:443:IP_ADDRESS -k
Anda akan melihat perintah yang menampilkan respons dari salah satu VM di grup instance terkelola dengan output berikut yang dicetak ke konsol.
"path": "/", "headers": { "host": "example.com", "user-agent": "curl/7.81.0", "accept": "*/*" }, "method": "GET", "body": "", "fresh": false, "hostname": "example.com", "ip": "::ffff:10.142.0.2", "ips": [], "protocol": "https", "query": {}, "subdomains": [], "xhr": false, "os": { "hostname": "0cd3aec9b351" }, "connection": { "servername": "example.com" }Anda dapat memverifikasi lebih lanjut bahwa jika Anda memberikan nama host SNI yang berbeda yang tidak cocok dengan rute TLS, atau jika Anda tidak memberikan nama host SNI sama sekali, permintaan akan dibatalkan.
- Jalankan pengujian dengan nama host SNI yang tidak cocok dengan example.com, untuk memastikan bahwa koneksi ditolak.
curl https://unknown.com --resolve unknown.com:443:IP_ADDRESS -k
- Jalankan pengujian dengan koneksi teks biasa tanpa TLS, untuk memastikan bahwa koneksi ditolak.
curl example.com:443 --resolve example.com:443:IP_ADDRESS -k
Perintah ini menampilkan error berikut.
curl: (35) OpenSSL SSL_connect: Connection reset by peer in connection
Anda akan melihat kode error
connection_refuseddi logproxyStatussaat load balancer menolak koneksi tidak valid tersebut.
Mengaktifkan afinitas sesi
Contoh konfigurasi membuat layanan backend tanpa afinitas sesi.
Prosedur ini menunjukkan cara memperbarui layanan backend untuk contoh load balancer yang dibuat sebelumnya sehingga layanan backend menggunakan afinitas IP klien atau afinitas cookie yang dihasilkan.
Jika afinitas IP klien diaktifkan, load balancer akan mengarahkan permintaan klien tertentu ke VM backend yang sama berdasarkan hash yang dibuat dari alamat IP klien dan alamat IP load balancer (alamat IP internal aturan penerusan internal).
Untuk mengaktifkan afinitas sesi IP klien, selesaikan langkah-langkah berikut.
Konsol
Di konsol Google Cloud , buka halaman Load balancing.
Klik Backend.
Klik
ext-reg-tcp-proxy-bs(nama layanan backend yang Anda buat untuk contoh ini), lalu klik Edit.Di halaman Backend service details, klik Advanced configuration.
Untuk Afinitas sesi, pilih IP Klien.
Klik Update.
gcloud
Untuk memperbarui layanan backend ext-reg-tcp-proxy-bs dan menentukan afinitas sesi IP klien, gunakan perintah gcloud compute backend-services update ext-reg-tcp-proxy-bs:
gcloud compute backend-services update ext-reg-tcp-proxy-bs \
--region=REGION_A \
--session-affinity=CLIENT_IP
Langkah berikutnya
- Mengonversi Load Balancer Jaringan proxy ke IPv6
- Ringkasan Load Balancer Jaringan proxy eksternal.
- Logging dan pemantauan Load Balancer Jaringan Proxy.
- Membersihkan penyiapan load balancer.