Di Google Cloud, Anda dapat mengintegrasikan perangkat pihak ketiga dengan cara yang sangat tersedia dan diskalasikan. Untuk melakukannya, Anda mengonfigurasi rute statis dan menetapkan next hop-nya ke Google Cloud Load Balancer Jaringan passthrough internal. Hal ini memungkinkan load balancer melakukan load balancing traffic untuk awalan tujuan ke kumpulan peralatan VM pihak ketiga yang telah diperiksa kondisinya.
Panduan ini menggunakan contoh untuk mengajarkan cara mengonfigurasi Load Balancer Jaringan passthrough internal sebagai next hop. Sebelum mengikuti panduan ini, pahami hal-hal berikut:
- Konsep Load Balancer Jaringan passthrough internal
- Load Balancer Jaringan passthrough internal sebagai next hop
Izin
Untuk mengikuti panduan ini, Anda perlu membuat instance dan mengubah jaringan dalam project. Anda harus menjadi pemilik atau editor project, atau memiliki semua peran IAM Compute Engine berikut:
Tugas | Peran yang diperlukan |
---|---|
Membuat komponen jaringan, subnet, dan load balancer | Admin Jaringan |
Menambahkan dan menghapus aturan firewall | Security Admin |
Membuat instance | Compute Instance Admin |
Untuk informasi selengkapnya, lihat panduan berikut:
Menyiapkan Load Balancer Jaringan passthrough internal sebagai next hop dengan backend umum
Panduan ini menunjukkan cara menggunakan Load Balancer Jaringan passthrough internal sebagai next hop untuk rute statis guna mengintegrasikan peralatan virtual yang diskalakan.
Solusi yang dibahas dalam panduan ini membuat VM appliance yang menjalankan Debian Linux. Contoh VM tidak melakukan pemfilteran paket apa pun, tetapi Anda dapat menambahkan fungsi tersebut dengan mengubah konfigurasi jaringan contoh ini atau dengan menggunakan software pemfilteran atau perutean paket yang berbeda.
Langkah-langkah di bagian ini menjelaskan cara mengonfigurasi resource berikut:
- Contoh jaringan VPC dan subnet kustom
- Google Cloud aturan firewall yang mengizinkan koneksi masuk ke virtual machine (VM) aplikasi backend
- Rute statis
- Dua VM klien untuk menguji koneksi
- Komponen Load Balancer Jaringan passthrough internal berikut:
- VM backend dalam grup instance terkelola (MIG)
- Health check untuk VM backend
- Layanan backend internal di region
us-west1
untuk mengelola distribusi koneksi di antara VM backend - Aturan penerusan internal dan alamat IP internal untuk frontend load balancer
Contoh ini menunjukkan load balancing ke beberapa NIC backend, seperti yang dijelaskan dalam Load balancing ke beberapa NIC.
Topologinya terlihat seperti ini:
Diagram menunjukkan beberapa resource yang dibuat oleh contoh:
- Instance aplikasi di balik Load Balancer Jaringan passthrough internal (
fr-ilb1
, dalam contoh ini). Instance aplikasi hanya memiliki alamat IP internal. - Setiap instance aplikasi mengaktifkan
tanda
can-ip-forward
. Tanpa flag ini, VM Compute Engine hanya dapat mengirimkan paket jika alamat IP sumber paket cocok dengan alamat IP internal VM, alamat IP dari rentang IP alias, atau alamat IP aturan penerusan yang me-resolve ke VM. Flagcan-ip-forward
mengubah perilaku ini sehingga VM dapat mengirimkan paket dengan alamat IP sumber apa pun. - Rute statis dengan tujuan
10.50.1.0/24
dan next hop ditetapkan ke aturan penerusan load balancer,fr-ilb1
.
Diagram juga menunjukkan alur traffic:
- Jaringan VPC
testing
memiliki rute statis untuk traffic yang ditujukan ke subnet10.50.1.0/24
. Rute ini mengarahkan traffic ke load balancer. - Load balancer meneruskan traffic ke salah satu instance aplikasi berdasarkan afinitas sesi yang dikonfigurasi. (Afinitas sesi hanya memengaruhi traffic TCP.)
Untuk kasus penggunaan tambahan, lihat Load balancer TCP/UDP internal sebagai next hop.
Mengonfigurasi jaringan, region, dan subnet
Contoh ini menggunakan jaringan VPC, region, dan subnet berikut:
Jaringan: Contoh ini memerlukan dua jaringan, masing-masing dengan setidaknya satu subnet. Setiap VM perangkat pihak ketiga backend harus memiliki minimal dua antarmuka jaringan, satu di setiap jaringan VPC. Jaringan dalam contoh ini adalah jaringan VPC mode kustom bernama
testing
danproduction
. Jaringantesting
dalam contoh ini berisi klien dan load balancer. Jaringanproduction
berisi VM target tujuan.Region: Subnet berada di region
us-west1
. Subnet harus berada di region yang sama karena instance VM adalah resource zonal.Subnet: Subnet,
testing-subnet
danproduction-subnet
, masing-masing menggunakan rentang alamat IP utama10.30.1.0/24
dan10.50.1.0/24
.
Untuk membuat contoh jaringan dan subnet, ikuti langkah-langkah berikut.
Konsol
Buat jaringan testing
dan testing-subnet
:
Di konsol Google Cloud, buka halaman jaringan VPC.
Klik Create VPC network.
Masukkan Nama
testing
.Di bagian Subnet:
- Setel Subnet creation mode ke Custom.
- Di bagian New subnet, masukkan informasi berikut:
- Nama:
testing-subnet
- Region:
us-west1
- Rentang alamat IP:
10.30.1.0/24
- Klik Selesai.
- Nama:
Klik Buat.
Buat jaringan production
dan production-subnet
:
Di konsol Google Cloud, buka halaman jaringan VPC.
Klik Create VPC network.
Masukkan Nama
production
.Di bagian Subnet:
- Setel Subnet creation mode ke Custom.
- Di bagian New subnet, masukkan informasi berikut:
- Nama:
production-subnet
- Region:
us-west1
- Rentang alamat IP:
10.50.1.0/24
- Klik Selesai.
- Nama:
Klik Create.
gcloud
Buat jaringan VPC mode kustom:
gcloud compute networks create testing --subnet-mode=custom
gcloud compute networks create production --subnet-mode=custom
Buat subnet di jaringan
testing
danproduction
di regionus-west1
:gcloud compute networks subnets create testing-subnet \ --network=testing \ --range=10.30.1.0/24 \ --region=us-west1
gcloud compute networks subnets create production-subnet \ --network=production \ --range=10.50.1.0/24 \ --region=us-west1
Mengonfigurasi aturan firewall
Contoh ini menggunakan aturan firewall berikut:
fw-allow-testing-from-both
: Aturan ingress, yang berlaku untuk semua target di jaringantesting
. Aturan ini mengizinkan traffic dari sumber dalam rentang alamat IP10.30.1.0/24
dan10.50.1.0/24
. Kedua rentang ini mencakup alamat IP internal utama VM di kedua jaringan.fw-allow-production-from-both
: Aturan ingress, yang berlaku untuk semua target di jaringanproduction
. Aturan ini mengizinkan traffic dari sumber dalam rentang alamat IP10.30.1.0/24
dan10.50.1.0/24
. Kedua rentang ini mencakup alamat IP internal utama VM di kedua jaringan.fw-allow-testing-ssh
: Aturan masuk yang diterapkan ke instance VM di jaringan VPCtesting
. Aturan ini mengizinkan konektivitas SSH masuk di TCP port22
dari alamat mana pun. Anda dapat memilih rentang IP sumber yang lebih ketat untuk aturan ini; misalnya, Anda dapat menentukan rentang IP sistem tempat Anda berencana memulai sesi SSH. Contoh ini menggunakan tag targetallow-ssh
untuk mengidentifikasi VM yang menerapkan aturan firewall.fw-allow-production-ssh
: Aturan masuk yang diterapkan ke instance VM di jaringan VPCproduction
. Aturan ini mengizinkan konektivitas SSH masuk di TCP port22
dari alamat mana pun. Seperti aturanfw-allow-testing-ssh
, Anda dapat memilih rentang IP sumber yang lebih ketat untuk aturan ini.fw-allow-health-check
: Aturan ingress untuk VM peralatan pihak ketiga yang sedang di-load balance. Aturan ini mengizinkan traffic dari sistem pemeriksaan kesehatanGoogle Cloud (130.211.0.0/22
dan35.191.0.0/16
). Contoh ini menggunakan tag targetallow-health-check
untuk mengidentifikasi instance tempat tag tersebut harus diterapkan.fw-allow-production-health-check
: Aturan ingress untuk VM aplikasi pihak ketiga yang di-load balanced. Aturan ini mengizinkan traffic dari sistem pemeriksaan kesehatanGoogle Cloud (130.211.0.0/22
dan35.191.0.0/16
). Contoh ini menggunakan tag targetallow-health-check
untuk mengidentifikasi instance tempat tag tersebut harus diterapkan.
Tanpa aturan firewall ini, aturan tolak ingress default akan memblokir traffic masuk ke instance backend. Anda harus membuat aturan firewall untuk mengizinkan health check dari rentang IP sistem probe Google Cloud . Lihat rentang IP probe untuk mengetahui informasi selengkapnya.
Konsol
Di Konsol Google Cloud, buka halaman Firewall policies.
Klik Create firewall rule dan masukkan informasi berikut untuk membuat aturan yang mengizinkan VM pengujian menerima paket dari subnet pengujian dan produksi:
- Nama:
fw-allow-testing-from-both
- Jaringan:
testing
- Prioritas:
1000
- Direction of traffic: masuk
- Tindakan terhadap kecocokan: izinkan
- Targets: Semua instance dalam jaringan
- Filter sumber: Rentang IPv4
- Rentang IPv4 sumber:
10.30.1.0/24
,10.50.1.0/24
- Protocols and ports: Allow all
- Nama:
Klik Buat.
Klik Create firewall rule dan masukkan informasi berikut untuk membuat aturan yang mengizinkan VM produksi menerima paket dari subnet pengujian dan produksi:
- Nama:
fw-allow-production-from-both
- Jaringan:
production
- Prioritas:
1000
- Direction of traffic: masuk
- Tindakan terhadap kecocokan: izinkan
- Targets: Semua instance dalam jaringan
- Filter sumber: Rentang IPv4
- Rentang IPv4 sumber:
10.30.1.0/24
,10.50.1.0/24
- Protocols and ports: Allow all
- Nama:
Klik Buat.
Klik Create firewall rule untuk membuat aturan yang mengizinkan koneksi SSH yang masuk di lingkungan pengujian:
- Nama:
fw-allow-testing-ssh
- Jaringan:
testing
- Prioritas:
1000
- Direction of traffic: masuk
- 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 dan
ketikkan:
tcp:22
- Nama:
Klik Buat.
Klik Create firewall rule untuk membuat aturan yang mengizinkan koneksi SSH yang masuk di lingkungan produksi:
- Nama:
fw-allow-production-ssh
- Jaringan:
production
- Prioritas:
1000
- Direction of traffic: masuk
- 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 dan
ketikkan:
tcp:22
- Nama:
Klik Buat.
Klik Create firewall rule untuk membuat aturan yang mengizinkan health checkGoogle Cloud di lingkungan pengujian:
- Nama:
fw-allow-health-check
- Jaringan:
testing
- Prioritas:
1000
- Direction of traffic: masuk
- Tindakan terhadap 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:
tcp
- Nama:
Klik Buat.
Klik Create firewall rule untuk membuat aturan yang mengizinkan health checkGoogle Cloud di lingkungan produksi:
- Nama:
fw-allow-production-health-check
- Jaringan:
production
- Prioritas:
1000
- Direction of traffic: masuk
- Tindakan terhadap 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:
tcp
- Nama:
Klik Buat.
gcloud
Buat aturan firewall
fw-allow-testing-subnet
untuk mengizinkan VM pengujian menerima paket dari subnettesting
danproduction
:gcloud compute firewall-rules create fw-allow-testing-from-both \ --network=testing \ --action=allow \ --direction=ingress \ --source-ranges=10.30.1.0/24,10.50.1.0/24 \ --rules=all
Buat aturan firewall
fw-allow-production-subnet
untuk mengizinkan VM produksi menerima paket dari subnettesting
danproduction
:gcloud compute firewall-rules create fw-allow-production-from-both \ --network=production \ --action=allow \ --direction=ingress \ --source-ranges=10.30.1.0/24,10.50.1.0/24 \ --rules=all
Buat aturan firewall
fw-allow-testing-ssh
untuk 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-testing-ssh \ --network=testing \ --action=allow \ --direction=ingress \ --target-tags=allow-ssh \ --rules=tcp:22
Buat aturan firewall
fw-allow-production-ssh
untuk mengizinkan konektivitas SSH ke VM dengan tag jaringanallow-ssh
.gcloud compute firewall-rules create fw-allow-production-ssh \ --network=production \ --action=allow \ --direction=ingress \ --target-tags=allow-ssh \ --rules=tcp:22
Buat aturan
fw-allow-health-check
untuk mengizinkan health check Google Cloud ke VM aplikasi pihak ketiga di jaringantesting
.gcloud compute firewall-rules create fw-allow-testing-health-check \ --network=testing \ --action=allow \ --direction=ingress \ --target-tags=allow-health-check \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --rules=tcp
Buat aturan firewall
fw-allow-production-health-check
untuk mengizinkan health checkGoogle Cloud ke VM aplikasi pihak ketiga di jaringanproduction
.gcloud compute firewall-rules create fw-allow-production-health-check \ --network=production \ --action=allow \ --direction=ingress \ --target-tags=allow-health-check \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --rules=tcp
Membuat perangkat virtual pihak ketiga
Langkah-langkah berikut menunjukkan cara membuat template instance dan grup instance regional terkelola dengan lebih dari satu antarmuka jaringan. Grup instance ini digunakan sebagai perangkat virtual pihak ketiga untuk contoh ini.
Konsol
Anda harus menggunakan gcloud
untuk langkah ini karena Anda perlu membuat template instance dengan lebih dari satu antarmuka jaringan. Konsol Google Cloud saat ini tidak mendukung pembuatan template instance dengan lebih dari satu antarmuka jaringan.
gcloud
Buat file lokal bernama
config.sh
dan masukkan konten berikut:#!/bin/bash # Enable IP forwarding: echo 1 > /proc/sys/net/ipv4/ip_forward echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/20-example.conf # Read VM network configuration: md_vm="http://metadata.google.internal/computeMetadata/v1/instance/" md_net="$md_vm/network-interfaces" nic0_gw="$(curl $md_net/0/gateway -H "Metadata-Flavor:Google" )" nic0_mask="$(curl $md_net/0/subnetmask -H "Metadata-Flavor:Google")" nic0_addr="$(curl $md_net/0/ip -H "Metadata-Flavor:Google")" nic0_id="$(ip addr show | grep $nic0_addr | awk '{print $NF}')" nic1_gw="$(curl $md_net/1/gateway -H "Metadata-Flavor:Google")" nic1_mask="$(curl $md_net/1/subnetmask -H "Metadata-Flavor:Google")" nic1_addr="$(curl $md_net/1/ip -H "Metadata-Flavor:Google")" nic1_id="$(ip addr show | grep $nic1_addr | awk '{print $NF}')" # Source based policy routing for nic1 echo "100 rt-nic1" >> /etc/iproute2/rt_tables sudo ip rule add pri 32000 from $nic1_gw/$nic1_mask table rt-nic1 sleep 1 sudo ip route add 35.191.0.0/16 via $nic1_gw dev $nic1_id table rt-nic1 sudo ip route add 130.211.0.0/22 via $nic1_gw dev $nic1_id table rt-nic1 # Use a web server to pass the health check for this example. # You should use a more complete test in production. sudo apt-get update sudo apt-get install apache2 -y sudo a2ensite default-ssl sudo a2enmod ssl echo "Example web page to pass health check" | \ tee /var/www/html/index.html sudo systemctl restart apache2
Buat template instance untuk peralatan virtual pihak ketiga Anda. Template instance harus menyertakan flag
--can-ip-forward
sehingga instance VM yang dibuat dari template dapat meneruskan paket dari instance lain di jaringantesting
danproduction
.gcloud compute instance-templates create third-party-template-multinic \ --region=us-west1 \ --network-interface subnet=testing-subnet,address="" \ --network-interface subnet=production-subnet \ --tags=allow-ssh,allow-health-check,my-network-tag \ --image-family=debian-12 \ --image-project=debian-cloud \ --can-ip-forward \ --metadata=startup-script="$(< config.sh)"
Buat grup instance terkelola untuk peralatan virtual pihak ketiga Anda. Perintah ini membuat grup instance terkelola regional, yang kemudian dapat disederhanakan secara otomatis, di
us-west1
.gcloud compute instance-groups managed create third-party-instance-group \ --region=us-west1 \ --template=third-party-template-multinic \ --size=3
Membuat resource load balancing
Langkah-langkah ini mengonfigurasi semua komponen Load Balancer Jaringan passthrough internal, dimulai dengan health check dan layanan backend, lalu komponen frontend:
Health check: Dalam contoh ini, health check HTTP memeriksa respons HTTP
200
(OK). Untuk mengetahui informasi selengkapnya, lihat bagian health check dalam ringkasan Load Balancer Jaringan passthrough internal.Layanan backend: Meskipun layanan backend contoh ini menentukan protokol TCP, saat load balancer adalah next hop untuk rute, Google Cloud akan meneruskan traffic untuk semua protokol (TCP, UDP, dan ICMP).
Aturan penerusan: Meskipun contoh aturan penerusan ini menentukan port TCP 80, saat load balancer adalah next hop untuk rute, traffic di port TCP atau UDP apa pun akan dikirim ke backend load balancer.
Alamat IP internal: Contoh ini menentukan alamat IP internal,
10.30.1.99
, untuk aturan penerusan.
Konsol
Memulai 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 Passthrough load balancer, lalu klik Next.
- Untuk Public facing or internal, pilih Internal, lalu klik Next.
- Klik Configure.
Membuat load balancer pertama
- Tetapkan Name ke
ilb1
. - Tetapkan Wilayah ke
us-west1
. - Tetapkan Network ke
testing
. - Klik Backend configuration dan buat perubahan berikut:
- Untuk Backends, di bagian New item, pilih grup instance
third-party-instance-group
, lalu klik Done. - Untuk Health check, pilih Create another health check,
masukkan informasi berikut, lalu klik Save and continue:
- Nama:
hc-http-80
- Protokol:
HTTP
- Port:
80
- Protokol proxy:
NONE
- Jalur permintaan:
/
Perhatikan bahwa saat Anda menggunakan konsol Google Cloud untuk membuat load balancer, health check bersifat global. Jika Anda ingin membuat health check regional, gunakangcloud
atau API.
- Nama:
- Untuk Session affinity, pilih Client IP.
- Pastikan ada tanda centang biru di samping Backend configuration sebelum melanjutkan. Tinjau langkah ini jika belum.
- Untuk Backends, di bagian New item, pilih grup instance
- Klik Frontend configuration. Di bagian New Frontend IP and port, buat perubahan berikut:
- Nama:
fr-ilb1
- Subnetwork:
testing-subnet
- Dari Internal IP, pilih Reserve a static internal IP address,
masukkan informasi berikut, lalu klik Reserve:
- Nama:
ip-ilb
- Static IP address: Let me choose
- Alamat IP kustom:
10.30.1.99
- Nama:
- Ports: Pilih Single, dan masukkan
80
untuk Port number. Ingat bahwa pilihan protokol dan port untuk load balancer tidak membatasi protokol dan port yang digunakan saat load balancer adalah next hop rute. - Pastikan ada tanda centang biru di samping Frontend configuration sebelum melanjutkan. Tinjau langkah ini jika belum.
- Nama:
- Klik Review and finalize. Periksa kembali setelan Anda.
- Klik Buat.
Memulai 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 Passthrough load balancer, lalu klik Next.
- Untuk Public facing or internal, pilih Internal, lalu klik Next.
- Klik Configure.
Membuat load balancer kedua
- Tetapkan Name ke
ilb2
. - Tetapkan Wilayah ke
us-west1
. - Tetapkan Network ke
production
. - Klik Backend configuration dan buat perubahan berikut:
- Untuk Backends, di bagian New item, pilih grup instance
third-party-instance-group
, lalu klik Done. - Untuk Health check, pilih
hc-http-80
. - Untuk Session affinity, pilih Client IP.
- Pastikan ada tanda centang biru di samping Backend configuration sebelum melanjutkan. Tinjau langkah ini jika belum.
- Untuk Backends, di bagian New item, pilih grup instance
- Klik Frontend configuration. Di bagian New Frontend IP and port, buat perubahan berikut:
- Nama:
fr-ilb2
- Subnetwork:
production-subnet
- Dari Internal IP, pilih Reserve a static internal IP address,
masukkan informasi berikut, lalu klik Reserve:
- Nama:
ip-ilb2
- Static IP address: Let me choose
- Alamat IP kustom:
10.50.1.99
- Nama:
- Ports: Pilih Single, dan masukkan
80
untuk Port number. Ingat bahwa pilihan protokol dan port untuk load balancer tidak membatasi protokol dan port yang digunakan saat load balancer adalah next hop rute. - Pastikan ada tanda centang biru di samping Frontend configuration sebelum melanjutkan. Tinjau langkah ini jika belum.
- Nama:
- Klik Review and finalize. Periksa kembali setelan Anda.
Klik Buat.
Konfigurasikan resource load balancer di jaringan VPC
production
.
gcloud
Buat health check HTTP baru untuk menguji konektivitas TCP ke VM di port 80.
gcloud compute health-checks create http hc-http-80 \ --region=us-west1 \ --port=80
Buat dua layanan backend internal di region
us-west1
.gcloud compute backend-services create ilb1 \ --load-balancing-scheme=internal \ --health-checks-region=us-west1 \ --health-checks=hc-http-80 \ --region=us-west1 \ --network=testing \ --session-affinity=CLIENT_IP
gcloud compute backend-services create ilb2 \ --load-balancing-scheme=internal \ --health-checks-region=us-west1 \ --health-checks=hc-http-80 \ --region=us-west1 \ --network=production \ --session-affinity=CLIENT_IP
Tambahkan grup instance yang berisi appliance virtual pihak ketiga sebagai backend di layanan backend.
gcloud compute backend-services add-backend ilb1 \ --instance-group=third-party-instance-group \ --instance-group-region=us-west1 \ --region=us-west1
gcloud compute backend-services add-backend ilb2 \ --instance-group=third-party-instance-group \ --instance-group-region=us-west1 \ --region=us-west1
Buat aturan penerusan internal dan hubungkan ke layanan backend untuk menyelesaikan konfigurasi load balancer. Ingat bahwa protokol (TCP) dan port (80) load balancer tidak membatasi port dan protokol yang diteruskan ke instance backend (aplikasi virtual pihak ketiga) saat load balancer digunakan sebagai next hop rute.
gcloud compute forwarding-rules create fr-ilb1 \ --load-balancing-scheme=internal \ --ports=80 \ --network=testing \ --subnet=testing-subnet \ --region=us-west1 \ --backend-service=ilb1 \ --address=10.30.1.99
gcloud compute forwarding-rules create fr-ilb2 \ --load-balancing-scheme=internal \ --ports=80 \ --network=production \ --subnet=production-subnet \ --region=us-west1 \ --backend-service=ilb2 \ --address=10.50.1.99
Membuat rute statis yang menentukan load balancer sebagai next hop
Buat dua rute statis yang menggunakan next hop load balancer.
Konsol
Membuat rute pertama
Di Konsol Google Cloud, buka halaman Routes.
Klik Create route.
Untuk Nama rute, masukkan
ilb-nhop-dest-10-50-1
.Pilih jaringan
testing
.Untuk Rentang IP tujuan, masukkan
10.50.1.0/24
.Untuk Instance tags, masukkan
my-network-tag
.Untuk Next hop rute, pilih Specify a forwarding rule of internal TCP/UDP load balancer.
Untuk menentukan alamat IP load balancer sebagai next hop, gunakan gcloud CLI atau API.
Tentukan nama aturan penerusan. Untuk nama aturan penerusan, pilih
fr-ilb1
.Klik Buat.
Membuat rute kedua
- Klik Create route.
- Untuk Nama rute, masukkan
ilb-nhop-dest-10-30-1
. - Pilih jaringan
testing
. - Untuk Rentang IP tujuan, masukkan
10.30.1.0/24
. Untuk Next hop rute, pilih Specify a forwarding rule of internal TCP/UDP load balancer.
Untuk menentukan alamat IP load balancer sebagai next hop, gunakan gcloud CLI atau API.
Untuk nama aturan penerusan, pilih
fr-ilb2
.Klik Buat.
gcloud
Buat rute statis dengan next hop yang ditetapkan ke setiap aturan penerusan load balancer, dan setiap rentang tujuan ditetapkan sebagaimana mestinya.
Untuk flag --next-hop-ilb
, Anda dapat menentukan nama aturan penerusan atau alamat IP aturan penerusan. Alamat IP aturan penerusan next hop dapat berada di jaringan VPC yang sama yang berisi rute atau di jaringan VPC yang di-peering. Untuk informasi selengkapnya, lihat
Jaringan dan project next hop.
Dalam contoh, rute pertama menggunakan alamat IP 10.30.1.99
, sedangkan rute kedua menggunakan nama aturan penerusan fr-ilb12
.
Anda dapat menentukan satu atau beberapa tag instance pada rute secara opsional.
Rute dapat diterapkan ke VM tertentu jika Anda menentukan tag jaringan di rute. Jika Anda tidak menentukan tag jaringan, rute tersebut berlaku untuk semua VM dalam jaringan VPC. Dalam contoh ini, rute menggunakan
my-network-tag
untuk tag jaringan rute.
gcloud compute routes create ilb-nhop-dest-10-50-1 \ --network=testing \ --destination-range=10.50.1.0/24 \ --next-hop-ilb=10.30.1.99 \ --tags=my-network-tag
gcloud compute routes create ilb-nhop-dest-10-30-1 \ --network=production \ --destination-range=10.30.1.0/24 \ --next-hop-ilb=fr-ilb2 \ --next-hop-ilb-region=us-west1
Membuat instance VM testing
Contoh ini membuat instance VM dengan alamat IP 10.30.1.100
di testing-subnet
(10.30.1.0/24
) di jaringan VPC testing
.
gcloud
Buat
testing-vm
dengan menjalankan perintah berikut.gcloud compute instances create testing-vm \ --zone=us-west1-a \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ssh,my-network-tag \ --subnet=testing-subnet \ --private-network-ip 10.30.1.100 \ --metadata=startup-script='#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo a2ensite default-ssl sudo 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 sudo systemctl restart apache2'
Membuat instance VM production
Contoh ini membuat instance VM dengan alamat IP 10.50.1.100
di production-subnet
(10.50.1.0/24
) di jaringan VPC production
.
gcloud
production-vm
dapat berada di zona mana pun di region yang sama dengan load balancer,
dan dapat menggunakan subnet apa pun di region tersebut. Dalam contoh ini, production-vm
berada di zona us-west1-a
.
Buat
production-vm
dengan menjalankan perintah berikut.gcloud compute instances create production-vm \ --zone=us-west1-a \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ssh \ --subnet=production-subnet \ --private-network-ip 10.50.1.100 \ --metadata=startup-script='#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo a2ensite default-ssl sudo 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 sudo systemctl restart apache2'
Menguji load balancing ke deployment multi-NIC
Verifikasi status backend load balancer.
gcloud compute backend-services get-health ilb1 --region us-west1
gcloud compute backend-services get-health ilb2 --region us-west1
Uji konektivitas dari VM
testing
.gcloud compute ssh testing-vm --zone=us-west1-a
curl http://10.50.1.99
exit
Uji konektivitas dari VM
production
.gcloud compute ssh production-vm --zone=us-west1-a
curl http://10.30.1.99
exit
Mengaktifkan hashing simetris
Saat menghitung hash yang dipetakan ke instance backend, Google Cloud mengabaikan arah alamat IP dan port. Nilai hash konsisten yang dihitung dari paket TCP/UDP sama, terlepas dari arah asal paket. Hal ini disebut hashing simetris.
Untuk mengaktifkan perilaku hashing ini di Load Balancer Jaringan passthrough internal yang ada, Anda harus membuat ulang aturan penerusan dan rute next hop.
Untuk informasi selengkapnya, lihat Hashing simetris.
Menghapus dan membuat ulang aturan penerusan
Konsol
Menghapus aturan penerusan dan membuat aturan baru
Di konsol Google Cloud, buka halaman Load balancing.
Klik load balancer
be-ilb
, lalu klik Edit.Klik Frontend configuration.
Arahkan kursor ke aturan penerusan, lalu klik
Hapus untuk menghapusnya.Klik Add frontend IP and port.
Di bagian New Frontend IP and port, lakukan perubahan berikut:
- Nama:
FORWARDING_RULE_NAME
- Subnetwork:
SUBNET_NAME
- Dari Internal IP, pilih
IP_ADDRESS
- Port:
PORT_NUMBER
atauALL
. - Klik Selesai.
- Pastikan ada tanda centang biru di samping Frontend configuration sebelum melanjutkan. Tinjau langkah ini jika belum.
- Nama:
Klik Review and finalize. Periksa kembali setelan Anda.
Klik Buat.
gcloud
Hapus aturan penerusan yang ada.
gcloud compute forwarding-rules delete FORWARDING_RULE_NAME \ --region=REGION
Buat aturan penerusan pengganti dengan nama yang sama.
gcloud compute forwarding-rules create FORWARDING_RULE_NAME \ --load-balancing-scheme=internal \ --ports=PORT_NUMBER or `ALL` \ --network=NETWORK_NAME \ --subnet=SUBNET_NAME \ --region=REGION \ --backend-service=BACKEND_SERVICE_NAME \ --address=IP_ADDRESS
Jika SNAT tidak diperlukan
Seperti yang ditunjukkan pada contoh sebelumnya, penafsiran alamat jaringan sumber (SNAT) tidak diperlukan jika semua hal berikut benar:
- Aturan penerusan untuk Load Balancer Jaringan passthrough internal dibuat pada atau setelah 22 Juni 2021.
- Rute statis yang mereferensikan aturan penerusan dibuat pada atau setelah 22 Juni 2021.
- Layanan backend Load Balancer Jaringan passthrough internal tidak menggunakan setelan afinitas sesi
NONE
.
Anda dapat mengonversi rute Load Balancer Jaringan passthrough internal next hop yang ada untuk menggunakan hashing simetris dengan mengikuti langkah-langkah berikut:
Pastikan layanan backend Load Balancer Jaringan passthrough internal tidak menggunakan setelan afinitas sesi
NONE
Buat aturan penerusan pengganti yang mereferensikan layanan backend yang sama. Aturan penerusan pengganti menggunakan alamat IP yang berbeda.
Buat rute statis pengganti yang mereferensikan aturan penerusan baru. Pastikan rute penggantian ini memiliki prioritas yang lebih tinggi daripada rute yang ada.
Hapus rute yang ada dengan prioritas lebih rendah (mereferensikan aturan penerusan sebelumnya), lalu hapus aturan penerusan sebelumnya.
Pembersihan
Dalam konfigurasi load balancer, hapus backend dari layanan backend.
gcloud compute backend-services remove-backend ilb1 \ --instance-group=third-party-instance-group \ --instance-group-region=us-west1 \ --region=us-west1
gcloud compute backend-services remove-backend ilb2 \ --instance-group=third-party-instance-group \ --instance-group-region=us-west1 \ --region=us-west1
Hapus rute.
gcloud compute routes delete ilb-nhop-dest-10-50-1
gcloud compute routes delete ilb-nhop-dest-10-30-1
Di konfigurasi load balancer, hapus aturan penerusan.
gcloud compute forwarding-rules delete fr-ilb1 \ --region=us-west1
gcloud compute forwarding-rules delete fr-ilb2 \ --region=us-west1
Di konfigurasi load balancer, hapus layanan backend.
gcloud compute backend-services delete ilb1 \ --region=us-west1
gcloud compute backend-services delete ilb2 \ --region=us-west1
Di konfigurasi load balancer, hapus health check.
gcloud compute health-checks delete hc-http-80 \ --region=us-west1
Jika Anda menggunakan konsol Google Cloud, pemeriksaan kesehatan bersifat global. Oleh karena itu, perintahnya adalah sebagai berikut:
gcloud compute health-checks delete hc-http-80 \ --global
Hapus grup instance terkelola.
gcloud compute instance-groups managed delete third-party-instance-group \ --region=us-west1
Hapus template instance.
gcloud compute instance-templates delete third-party-template
gcloud compute instance-templates delete third-party-template-multinic
Hapus instance pengujian dan produksi.
gcloud compute instances delete testing-vm \ --zone=us-west1-a
gcloud compute instances delete production-vm \ --zone=us-west1-a
Langkah berikutnya
- Ringkasan Load Balancer Jaringan passthrough internal
- Failover untuk Load Balancer Jaringan passthrough internal
- Menyiapkan Network Load Balancer passthrough internal dengan backend grup instance VM
- Logging dan pemantauan Load Balancer Jaringan passthrough internal
- Load Balancer Jaringan passthrough internal dan jaringan yang terhubung
- Memecahkan masalah Load Balancer Jaringan passthrough internal
- Membersihkan penyiapan load balancer