Load Balancer Jaringan proxy internal regional adalah load balancer Lapisan 4 regional berbasis proxy yang memungkinkan Anda menjalankan dan menskalakan traffic layanan TCP di balik 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 instance terkelola (MIG).
Sebelum memulai, baca Ringkasan Load Balancer Jaringan proxy internal regional.
Ringkasan
Dalam contoh ini, kita akan menggunakan load balancer untuk mendistribusikan traffic TCP di seluruh VM backend dalam dua grup instance terkelola menurut zona di region REGION_A
. Sebagai contoh, layanan ini adalah serangkaian server Apache yang dikonfigurasi untuk merespons port 110
.
Banyak browser yang tidak mengizinkan port 110
, sehingga bagian pengujian menggunakan curl
.
Dalam contoh ini, Anda mengonfigurasi deployment berikut:
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 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 | 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 satu lagi 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 dalam subnet di region yang sama dengan load balancer.
Contoh ini menggunakan jaringan, region, dan subnet VPC berikut:
Jaringan. Jaringan adalah jaringan VPC mode kustom yang bernama
lb-network
.Subnet untuk backend. Subnet bernama
backend-subnet
di regionREGION_A
menggunakan10.1.2.0/24
untuk rentang IP utamanya.Subnet untuk proxy. Subnet bernama
proxy-only-subnet
di regionREGION_A
menggunakan10.129.0.0/23
untuk rentang IP utamanya.
Untuk menunjukkan akses global, contoh ini juga membuat VM klien pengujian kedua di region yang berbeda (REGION_B) dan subnet dengan rentang alamat IP utama 10.3.4.0/24
.
Membuat jaringan dan subnet
Konsol
Di Konsol Google Cloud, buka halaman jaringan VPC.
Klik Create VPC network.
Untuk Name, masukkan
lb-network
.Di bagian Subnets, tetapkan Subnet creation mode ke Custom.
Buat subnet untuk backend load balancer. Di bagian Subnet baru, masukkan informasi berikut:
- Name:
backend-subnet
- Region:
REGION_A
- Rentang alamat IP:
10.1.2.0/24
- Name:
Klik Done.
Klik Tambahkan subnet.
Buat subnet untuk mendemonstrasikan akses global. Di bagian New subnet, masukkan informasi berikut:
- Name:
test-global-access-subnet
- Region:
REGION_B
- Rentang alamat IP:
10.3.4.0/24
- Name:
Klik Done.
Klik Create.
gcloud
Buat jaringan VPC kustom dengan perintah
gcloud compute networks create
:gcloud compute networks create lb-network --subnet-mode=custom
Buat subnet di jaringan
lb-network
di regionREGION_A
dengan perintahgcloud compute networks subnets create
:gcloud compute networks subnets create backend-subnet \ --network=lb-network \ --range=10.1.2.0/24 \ --region=REGION_A
Ganti REGION_A dengan nama region Google Cloud target.
Buat subnet di jaringan
lb-network
di regionREGION_B
dengan perintahgcloud compute networks subnets create
:gcloud compute networks subnets create test-global-access-subnet \ --network=lb-network \ --range=10.3.4.0/24 \ --region=REGION_B
Ganti REGION_B dengan nama region Google Cloud tempat Anda ingin membuat subnet kedua untuk menguji akses global.
Membuat subnet khusus proxy
Subnet khusus proxy memberikan sekumpulan alamat IP yang digunakan Google untuk menjalankan proxy Envoy atas nama Anda. Proxy tersebut 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
pada jaringan VPC lb-network
.
Konsol
Jika menggunakan Google Cloud Console, Anda dapat menunggu dan membuat subnet khusus proxy nanti di halaman Load balancing.
Jika Anda ingin membuat subnet khusus proxy sekarang, gunakan langkah-langkah berikut:
- Di Konsol Google Cloud, buka halaman jaringan VPC.
Buka jaringan VPC - Klik nama jaringan VPC Bersama:
lb-network
. - Klik Tambahkan subnet.
- Untuk Name, masukkan
proxy-only-subnet
. - Untuk Region, pilih
REGION_A
. - Tetapkan Destination ke Regional Managed Proxy.
- Untuk Rentang alamat IP, masukkan
10.129.0.0/23
. - 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
Contoh ini memerlukan aturan firewall berikut:
fw-allow-ssh
. Aturan masuk, berlaku untuk instance yang sedang di-load balanced, yang memungkinkan konektivitas SSH yang masuk di port TCP22
dari alamat apa 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 diseimbangkan dengan beban, yang memungkinkan semua traffic TCP dari sistem health check Google Cloud (di130.211.0.0/22
dan35.191.0.0/16
). Contoh ini menggunakan tag targetallow-health-check
.fw-allow-proxy-only-subnet
. Aturan ingress yang memungkinkan 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 akan berlaku untuk semua backend instance Anda di jaringan VPC. Saat membuat VM backend, pastikan untuk menyertakan tag target yang ditentukan, seperti yang ditunjukkan dalam Membuat grup instance terkelola.
Konsol
- Pada konsol Google Cloud, buka halaman Kebijakan Firewall.
Buka kebijakan Firewall - Klik Create firewall rule untuk membuat aturan guna mengizinkan koneksi
SSH masuk:
- Name:
fw-allow-ssh
- Jaringan:
lb-network
- Arah traffic: Ingress
- Tindakan jika 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
22
untuk nomor port.
- Name:
- Klik Create.
- Klik Create firewall rule untuk kedua kalinya guna membuat aturan guna mengizinkan health check Google Cloud:
- Name:
fw-allow-health-check
- Jaringan:
lb-network
- Arah traffic: Ingress
- Tindakan jika kecocokan: Izinkan
- Targets: Tag target yang ditentukan
- Tag target:
allow-health-check
- Filter sumber: Rentang IPv4
- Rentang IPv4 sumber:
130.211.0.0/22
dan35.191.0.0/16
- Protokol dan port:
- Pilih Specified protocols and ports.
- Pilih kotak centang TCP, lalu masukkan
80
untuk nomor port.
Sebagai praktik terbaik, batasi aturan ini hanya untuk protokol dan port yang cocok dengan yang digunakan oleh health check Anda. Jika Anda menggunakantcp:80
untuk protokol dan port, Google Cloud dapat menggunakan HTTP pada port80
untuk menghubungi VM Anda, tetapi tidak dapat menggunakan HTTPS pada port443
untuk menghubungi VM.
- Name:
- Klik Create.
- Klik Create firewall rule untuk ketiga kalinya guna membuat aturan agar server proxy load balancer dapat menghubungkan backend:
- Name:
fw-allow-proxy-only-subnet
- Jaringan:
lb-network
- Arah traffic: Ingress
- Tindakan jika 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.
- Centang kotak TCP, lalu masukkan
80
untuk nomor port.
- Name:
- Klik Create.
gcloud
Buat aturan firewall
fw-allow-ssh
untuk mengizinkan konektivitas SSH ke VM dengan tag jaringanallow-ssh
. Saat 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:22
Buat aturan
fw-allow-health-check
untuk 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=130.211.0.0/22,35.191.0.0/16 \ --target-tags=allow-health-check \ --rules=tcp:80
Buat aturan
fw-allow-proxy-only-subnet
untuk mengizinkan proxy Envoy region terhubung ke backend Anda. Tetapkan--source-ranges
ke 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
Guna mencadangkan alamat IP internal statis untuk load balancer, lihat Mencadangkan alamat IPv4 atau IPv6 internal statis yang baru.
Membuat grup instance terkelola
Bagian ini menunjukkan cara membuat dua backend grup instance terkelola (MIG) di region REGION_A
untuk load balancer. MIG menyediakan instance VM yang menjalankan server Apache backend untuk contoh Load Balancer Jaringan proxy internal regional ini.
Biasanya, Load Balancer Jaringan proxy internal regional tidak digunakan untuk traffic HTTP, tetapi Apache
adalah software yang umum digunakan dan mudah disiapkan untuk pengujian.
Konsol
Membuat template instance. Di Konsol Google Cloud, buka halaman Instance templates.
- Klik Create instance template.
- Untuk Name, masukkan
int-tcp-proxy-backend-template
. - Pastikan Boot disk disetel ke image Debian, seperti Debian GNU/Linux 10 (stretch). Petunjuk ini menggunakan perintah yang
hanya tersedia di Debian, seperti
apt-get
. - Klik Advanced options.
- Klik Networking dan konfigurasikan kolom berikut:
- Untuk Tag jaringan, masukkan
allow-ssh
,allow-health-check
, danallow-proxy-only-subnet
. - Untuk Network interfaces, pilih opsi berikut:
- Jaringan:
lb-network
- Subnet:
backend-subnet
- Jaringan:
- Untuk Tag jaringan, masukkan
Klik Management. Masukkan skrip berikut ke 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
Klik Create.
Membuat grup instance terkelola. Di Konsol Google Cloud, buka halaman Instance groups.
- Klik Create grup instance.
- Pilih New managed instance group (stateless). Untuk mengetahui informasi selengkapnya, lihat MIG stateless atau stateful.
- Untuk Name, masukkan
mig-a
. - Di bagian Location, pilih Single zone.
- Untuk Region, pilih
REGION_A
. - Untuk Zone, pilih
ZONE_A1
. - Pada Instance template, pilih
int-tcp-proxy-backend-template
. Tentukan jumlah instance yang ingin Anda buat dalam grup.
Untuk contoh ini, tentukan opsi berikut di bagian Autoscaling:
- Untuk Autoscaling mode, pilih
Off:do not autoscale
. - Untuk Maximum number of instances, masukkan
2
.
- Untuk Autoscaling mode, pilih
Untuk Pemetaan port, klik Tambahkan port.
- Untuk Port name, masukkan
tcp80
. - Untuk Nomor port, masukkan
80
.
- Untuk Port name, masukkan
Klik Create.
Ulangi Langkah 2 untuk membuat grup instance terkelola kedua dengan setelan berikut:
- Name:
mig-c
- Zona:
ZONE_A2
Pastikan semua setelan lainnya sama.
- Name:
gcloud
Petunjuk gcloud
dalam panduan ini mengasumsikan bahwa Anda menggunakan Cloud Shell atau lingkungan lain yang menginstal bash.
Buat template instance VM dengan server HTTP menggunakan perintah
gcloud compute instance-templates create
.gcloud compute instance-templates create int-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-10 \ --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_A1
.gcloud compute instance-groups managed create mig-a \ --zone=ZONE_A1 \ --size=2 \ --template=int-tcp-proxy-backend-template
Ganti ZONE_A1 dengan nama zona di region Google Cloud target.
Buat grup instance terkelola di zona
ZONE_A2
.gcloud compute instance-groups managed create mig-c \ --zone=ZONE_A2 \ --size=2 \ --template=int-tcp-proxy-backend-template
Ganti ZONE_A2 dengan nama zona lain di region Google Cloud target.
Mengonfigurasi load balancer
Konsol
Memulai konfigurasi Anda
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 Terhadap publik atau internal, pilih Internal, lalu klik Berikutnya.
- Untuk Cross-region or single region deployment, pilih Best for regional working, lalu klik Next.
- Klik Konfigurasikan.
Konfigurasi dasar
- Untuk Name, masukkan
my-int-tcp-lb
. - Untuk Region, pilih
REGION_A
. - Untuk Network, pilih
lb-network
.
Mereservasi subnet khusus proxy
Untuk mencadangkan subnet khusus proxy:
- Klik Reserve subnet.
- Untuk Name, masukkan
proxy-only-subnet
. - Untuk Rentang alamat IP, masukkan
10.129.0.0/23
. - Klik Tambahkan.
Konfigurasi backend
- Klik Backend configuration.
- Untuk Backend type, pilih Instance group.
- Untuk Protocol, pilih TCP.
- Untuk Port bernama, masukkan
tcp80
. - Konfigurasi backend pertama:
- Di bagian New backend, pilih grup instance
mig-a
. - Untuk Nomor port, masukkan
80
. - Pertahankan nilai default yang tersisa dan klik Done.
- Di bagian New backend, pilih grup instance
- Konfigurasi backend kedua:
- Klik Add backend.
- Di bagian New backend, pilih grup instance
mig-c
. - Untuk Nomor port, masukkan
80
. - Pertahankan nilai default yang tersisa dan klik Done.
- Konfigurasi health check:
- Di bagian Health check, pilih Create a health check.
- Tetapkan Name health check ke
tcp-health-check
. - Untuk Protocol, pilih TCP.
- Tetapkan Port ke
80
.
- Pertahankan nilai default yang tersisa lalu klik Save.
- Di konsol Google Cloud, pastikan ada tanda centang di samping Backend configuration. Jika belum, periksa kembali apakah Anda telah menyelesaikan semua langkah.
Konfigurasi frontend
- Klik Frontend configuration.
- Untuk Name, masukkan
int-tcp-forwarding-rule
. - Untuk Subnetwork, pilih backend-subnet.
- Untuk Alamat IP, pilih alamat IP yang dicadangkan sebelumnya: LB_IP_ADDRESS
- Untuk Nomor port, masukkan
110
. Aturan penerusan hanya meneruskan paket dengan port tujuan yang cocok. - Dalam contoh ini, jangan aktifkan Proxy Protocol karena tidak berfungsi dengan software Server HTTP Apache. Untuk mengetahui informasi selengkapnya, lihat Protokol proxy.
- Klik Done.
- Di konsol Google Cloud, pastikan ada tanda centang di samping Frontend configuration. Jika belum, periksa kembali apakah Anda telah menyelesaikan semua langkah sebelumnya.
Melakukan peninjauan dan penyelesaian
- Klik Review and finalize.
- Tinjau setelan konfigurasi load balancer Anda.
- Opsional: Klik Equivalent code untuk melihat permintaan REST API yang akan 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-port
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
Tambahkan grup instance ke layanan backend Anda.
gcloud compute backend-services add-backend internal-tcp-proxy-bs \ --region=REGION_A \ --instance-group=mig-a \ --instance-group-zone=ZONE_A1 \ --balancing-mode=UTILIZATION \ --max-utilization=0.8
gcloud compute backend-services add-backend internal-tcp-proxy-bs \ --region=REGION_A \ --instance-group=mig-c \ --instance-group-zone=ZONE_A2 \ --balancing-mode=UTILIZATION \ --max-utilization=0.8
Buat proxy TCP target internal.
gcloud compute target-tcp-proxies create int-tcp-target-proxy \ --backend-service=internal-tcp-proxy-bs \ --proxy-header=NONE \ --region=REGION_A
Jika Anda ingin mengaktifkan header proxy, tetapkan ke
PROXY_V1
, bukanNONE
. Dalam contoh ini, jangan aktifkan protokol Proxy karena protokol tersebut tidak berfungsi dengan software Server HTTP Apache. 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 int-tcp-forwarding-rule \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=lb-network \ --subnet=backend-subnet \ --region=REGION_A \ --target-tcp-proxy=int-tcp-target-proxy \ --target-tcp-proxy-region=REGION_A \ --address=int-tcp-ip-address \ --ports=110
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
Di konsol Google Cloud, buka halaman Instance VM.
Klik Create instance.
Tetapkan Nama ke
client-vm
.Setel Zona ke
ZONE_A1
.Klik Advanced options.
Klik Networking dan konfigurasikan kolom berikut:
- Untuk Tag jaringan, masukkan
allow-ssh
. - Untuk Network interfaces, pilih opsi berikut:
- Jaringan:
lb-network
- Subnet:
backend-subnet
- Jaringan:
- Untuk Tag jaringan, masukkan
Klik Create.
gcloud
VM klien harus berada di jaringan dan region VPC yang sama dengan load balancer. IP tersebut tidak perlu 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-10 \ --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.
Gunakan SSH untuk terhubung ke instance klien.
gcloud compute ssh client-vm \ --zone=ZONE_A1
Pastikan load balancer menayangkan nama host backend seperti yang diharapkan.
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.
Mengirim traffic ke load balancer. Ganti IP_ADDRESS dengan alamat IP load balancer.
curl IP_ADDRESS:110
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.
Aktifkan akses global
Anda dapat mengaktifkan akses global untuk load balancer agar dapat diakses oleh klien di semua region. Backend dari load balancer contoh Anda harus tetap berada di satu region (REGION_A
).
Anda tidak dapat mengubah aturan penerusan regional yang ada untuk mengaktifkan akses global. Anda harus membuat aturan penerusan baru untuk tujuan ini. Selain itu, setelah dibuat dengan akses global yang diaktifkan, aturan penerusan tidak dapat diubah. Untuk menonaktifkan akses global, Anda harus membuat aturan penerusan akses regional baru dan menghapus aturan penerusan akses global sebelumnya.
Untuk mengonfigurasi akses global, buat perubahan konfigurasi berikut.
Konsol
Buat aturan penerusan baru untuk load balancer:
Di Konsol Google Cloud, buka halaman Load balancing.
Di kolom Name, klik load balancer.
Klik Frontend configuration.
Klik Add frontend IP and port.
Masukkan detail nama dan subnet untuk aturan penerusan baru.
Untuk Subnetwork, pilih backend-subnet.
Untuk alamat IP, Anda dapat memilih alamat IP yang sama dengan aturan penerusan yang ada, mencadangkan alamat IP baru, atau menggunakan alamat IP efemeral. Berbagi alamat IP yang sama di beberapa aturan penerusan hanya dapat dilakukan jika Anda menetapkan tanda alamat IP
--purpose
keSHARED_LOADBALANCER_VIP
saat membuat alamat IP.Untuk Nomor port, masukkan
110
.Untuk Akses global, pilih Aktifkan.
Klik Done.
Klik Perbarui.
gcloud
Buat aturan penerusan baru untuk load balancer dengan tanda
--allow-global-access
.gcloud compute forwarding-rules create int-tcp-forwarding-rule-global-access \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=lb-network \ --subnet=backend-subnet \ --region=REGION_A \ --target-tcp-proxy=int-tcp-target-proxy \ --target-tcp-proxy-region=REGION_A \ --address=int-tcp-ip-address \ --ports=110 \ --allow-global-access
Anda dapat menggunakan perintah
gcloud compute forwarding-rules describe
untuk menentukan apakah aturan penerusan telah mengaktifkan akses global atau tidak. Misalnya:gcloud compute forwarding-rules describe int-tcp-forwarding-rule-global-access \ --region=REGION_A \ --format="get(name,region,allowGlobalAccess)"
Saat akses global diaktifkan, kata
True
akan muncul di output setelah nama dan region aturan penerusan.
Buat VM klien untuk menguji akses global
Konsol
Di konsol Google Cloud, buka halaman Instance VM.
Klik Create instance.
Tetapkan Nama ke
test-global-access-vm
.Setel Zona ke
ZONE_B1
.Klik Advanced options.
Klik Networking dan konfigurasikan kolom berikut:
- Untuk Tag jaringan, masukkan
allow-ssh
. - Untuk Network interfaces, pilih opsi berikut:
- Jaringan:
lb-network
- Subnet:
test-global-access-subnet
- Jaringan:
- Untuk Tag jaringan, masukkan
Klik Create.
gcloud
Buat VM klien di zona ZONE_B1
.
gcloud compute instances create test-global-access-vm \ --zone=ZONE_B1 \ --image-family=debian-10 \ --image-project=debian-cloud \ --tags=allow-ssh \ --subnet=test-global-access-subnet
Ganti ZONE_B1 dengan nama zona di region REGION_B.
Menghubungkan ke VM klien dan menguji konektivitas
Gunakan
ssh
untuk terhubung ke instance klien:gcloud compute ssh test-global-access-vm \ --zone=ZONE_B1
Gunakan perintah
gcloud compute addresses describe
untuk mendapatkan alamat IP load balancer:gcloud compute addresses describe int-tcp-ip-address \ --region=REGION_A
Catat alamat IP-nya.
Kirim traffic ke load balancer; ganti IP_ADDRESS dengan alamat IP load balancer:
curl IP_ADDRESS:110
Protokol PROXY untuk menyimpan informasi koneksi klien
Load Balancer Jaringan proxy mengakhiri koneksi TCP dari klien dan membuat koneksi baru ke instance. Secara default, informasi porta dan IP klien asli tidak dipertahankan.
Untuk menyimpan dan mengirim informasi koneksi asli ke instance Anda, aktifkan protokol PROXY versi 1. Protokol ini mengirimkan header tambahan yang berisi alamat IP sumber, alamat IP tujuan, dan nomor port ke instance sebagai bagian dari permintaan.
Pastikan instance backend Load Balancer Jaringan proxy menjalankan server yang mendukung header protokol PROXY. Jika server tidak dikonfigurasi untuk mendukung header protokol PROXY, instance backend akan menampilkan respons kosong.
Jika menetapkan protokol PROXY untuk traffic pengguna, Anda juga dapat menetapkannya untuk health check. Jika Anda memeriksa konten kondisi dan penayangan di port yang sama, tetapkan --proxy-header
health check agar cocok dengan setelan load balancer.
Header protokol PROXY biasanya berupa satu baris teks yang dapat dibaca pengguna dalam format berikut:
PROXY TCP4 <client IP> <load balancing IP> <source port> <dest port>\r\n
Contoh berikut menunjukkan protokol PROXY:
PROXY TCP4 192.0.2.1 198.51.100.1 15221 110\r\n
Pada contoh sebelumnya, IP klien adalah 192.0.2.1
, IP load balancing adalah 198.51.100.1
, port klien adalah 15221
, dan port tujuannya adalah 110
.
Jika IP klien tidak diketahui, load balancer menghasilkan header protokol PROXY dalam format berikut:
PROXY UNKNOWN\r\n
Mengupdate header protokol PROXY untuk proxy target
Anda tidak dapat memperbarui header protokol PROXY di proxy target yang ada. Anda harus membuat proxy target baru dengan setelan yang diperlukan untuk header protokol PROXY. Gunakan langkah-langkah berikut untuk membuat frontend baru dengan setelan yang diperlukan:
Konsol
Di konsol Google Cloud, buka halaman Load balancing.
- Klik nama load balancer yang ingin diedit.
- Klik Edit untuk load balancer Anda.
- Klik Frontend configuration.
- Hapus IP dan port frontend lama.
- Klik Add frontend IP and port.
- Untuk Name, masukkan
int-tcp-forwarding-rule
. - Untuk Subnetwork, pilih backend-subnet.
- Untuk Alamat IP, pilih alamat IP yang dicadangkan sebelumnya: LB_IP_ADDRESS
- Untuk Nomor port, masukkan
110
. Aturan penerusan hanya meneruskan paket dengan port tujuan yang cocok. - Ubah nilai bidang Protokol proxy ke Aktif.
- Klik Done.
- Untuk Name, masukkan
- Klik Update untuk menyimpan perubahan.
gcloud
Dalam perintah berikut, edit kolom
--proxy-header
dan tetapkan keNONE
atauPROXY_V1
, bergantung pada kebutuhan Anda.gcloud compute target-tcp-proxies create TARGET_PROXY_NAME \ --backend-service=BACKEND_SERVICE \ --proxy-header=[NONE | PROXY_V1] \ --region=REGION
Hapus aturan penerusan yang ada.
gcloud compute forwarding-rules delete int-tcp-forwarding-rule \ --region=REGION
Membuat aturan penerusan baru dan mengaitkannya dengan proxy target.
gcloud compute forwarding-rules create int-tcp-forwarding-rule \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=lb-network \ --subnet=backend-subnet \ --region=REGION \ --target-tcp-proxy=TARGET_PROXY_NAME \ --target-tcp-proxy-region=REGION \ --address=LB_IP_ADDRESS \ --ports=110
Mengaktifkan afinitas sesi
Contoh konfigurasi ini akan membuat layanan backend tanpa afinitas sesi.
Prosedur ini menunjukkan cara mengupdate layanan backend untuk contoh Load Balancer Jaringan proxy internal regional, sehingga layanan backend menggunakan afinitas IP klien atau afinitas cookie yang dihasilkan.
Saat 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 dari aturan penerusan internal).
Konsol
Untuk mengaktifkan afinitas sesi IP klien:
- Di Konsol Google Cloud, buka halaman Load balancing.
Buka Load balancing - Click Backends.
- Klik internal-tcp-proxy-bs (nama layanan backend yang Anda buat untuk contoh ini), lalu klik Edit.
- Di halaman Backend service details, klik Advanced configuration.
- Di bagian Afinitas sesi, pilih IP Klien dari menu.
- Klik Perbarui.
gcloud
Gunakan perintah gcloud berikut untuk memperbarui layanan backend internal-tcp-proxy-bs
, dengan menentukan afinitas sesi IP klien:
gcloud compute backend-services update internal-tcp-proxy-bs \ --region=REGION_A \ --session-affinity=CLIENT_IP
Aktifkan pengosongan koneksi
Anda dapat mengaktifkan pengosongan koneksi pada layanan backend untuk memastikan gangguan yang minimal bagi pengguna saat instance yang menyalurkan traffic dihentikan, dihapus secara manual, atau dihapus oleh penskalaan otomatis. Untuk mempelajari lebih lanjut pengosongan koneksi, baca dokumentasi Mengaktifkan pengosongan koneksi.
Langkah selanjutnya
- Untuk mempelajari cara kerja Load Balancer Jaringan proxy internal regional, lihat Ringkasan Load Balancer Jaringan proxy internal regional.
- Guna menyiapkan pemantauan untuk Load Balancer Jaringan proxy internal regional Anda, lihat Menggunakan pemantauan.
- Bersihkan penyiapan load balancer.