Di Google Cloud, Anda dapat mengintegrasikan peralatan pihak ketiga dengan cara yang sangat tersedia dan diskalakan. Untuk melakukannya, konfigurasikan rute statis kustom dan tetapkan hop berikutnya ke Load Balancer Jaringan passthrough internal Google Cloud. Dengan demikian, load balancer dapat melakukan load balancing terhadap traffic untuk awalan tujuan ke kumpulan peralatan VM pihak ketiga yang telah diperiksa kondisinya.
Panduan ini menggunakan contoh untuk mengajari Anda cara mengonfigurasi Load Balancer Jaringan passthrough internal agar menjadi hop berikutnya. 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 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:
Menyiapkan Load Balancer Jaringan passthrough internal sebagai hop berikutnya dengan backend umum
Panduan ini menunjukkan cara menggunakan Load Balancer Jaringan passthrough internal sebagai next hop untuk rute statis kustom agar dapat mengintegrasikan peralatan virtual yang diskalakan.
Solusi yang dibahas dalam panduan ini membuat VM appliance yang menjalankan Debian Linux. Contoh VM ini tidak melakukan pemfilteran paket apa pun, tetapi Anda dapat menambahkan fungsi tersebut dengan mengubah konfigurasi jaringan contoh ini atau dengan menggunakan software pemfilteran paket atau perutean yang berbeda.
Langkah-langkah di bagian ini menjelaskan cara mengonfigurasi resource berikut:
- Contoh jaringan VPC dan subnet kustom
- Aturan firewall Google Cloud yang mengizinkan koneksi masuk ke virtual machine (VM) peralatan backend
- Rute statis kustom
- 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 ini menampilkan beberapa resource yang dibuat oleh contoh tersebut:
- Instance aplikasi di belakang Load Balancer Jaringan passthrough internal (dalam contoh ini,
fr-ilb1
). Instance aplikasi hanya memiliki alamat IP internal. - Setiap instance aplikasi telah mengaktifkan flag
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 dari aturan penerusan yang mengarah ke VM. Flagcan-ip-forward
mengubah perilaku ini sehingga VM dapat mengirimkan paket dengan alamat IP sumber apa pun. - Rute statis kustom dengan tujuan
10.50.1.0/24
dan next hop yang ditetapkan ke aturan penerusan load balancer,fr-ilb1
.
Diagram juga menunjukkan alur traffic:
- Jaringan VPC
testing
memiliki rute statis kustom 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 lainnya, lihat Load balancer TCP/UDP internal sebagai hop berikutnya.
Mengonfigurasi jaringan, region, dan subnet
Contoh ini menggunakan jaringan, region, dan subnet VPC berikut:
Jaringan: Contoh ini memerlukan dua jaringan, masing-masing dengan setidaknya satu subnet. Setiap VM alat 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 merupakan resource zona.Subnet: Subnet,
testing-subnet
danproduction-subnet
, 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 Subnet baru, masukkan informasi berikut:
- Name:
testing-subnet
- Region:
us-west1
- Rentang alamat IP:
10.30.1.0/24
- Klik Done.
- Name:
Klik Create.
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 Subnet baru, masukkan informasi berikut:
- Name:
production-subnet
- Region:
us-west1
- Rentang alamat IP:
10.50.1.0/24
- Klik Done.
- Name:
Klik Create.
gcloud
Buat jaringan VPC 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 masuk, 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 masuk, 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 ingress yang diterapkan ke instance VM di jaringan VPCtesting
. Aturan ini mengizinkan konektivitas SSH yang masuk pada port TCP22
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 ingin memulai sesi SSH. Contoh ini menggunakan tag targetallow-ssh
untuk mengidentifikasi VM yang menerapkan aturan firewall.fw-allow-production-ssh
: Aturan ingress yang diterapkan ke instance VM di jaringan VPCproduction
. Aturan ini mengizinkan konektivitas SSH yang masuk pada port TCP22
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 alat pihak ketiga yang melakukan load balancing. Aturan ini mengizinkan traffic dari sistem health check Google Cloud (130.211.0.0/22
dan35.191.0.0/16
). Contoh ini menggunakan tag targetallow-health-check
untuk mengidentifikasi instance yang harus diterapkan.fw-allow-production-health-check
: Aturan ingress untuk VM alat pihak ketiga yang melakukan load balancing. Aturan ini mengizinkan traffic dari sistem health check Google Cloud (130.211.0.0/22
dan35.191.0.0/16
). Contoh ini menggunakan tag targetallow-health-check
untuk mengidentifikasi instance yang 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 pemeriksaan Google Cloud. Lihat memeriksa rentang IP untuk informasi selengkapnya.
Konsol
Di Konsol Google Cloud, buka halaman Firewall policies.
Klik Create firewall rule dan masukkan informasi berikut untuk membuat aturan agar VM pengujian dapat menerima paket dari pengujian dan subnet produksi:
- Name:
fw-allow-testing-from-both
- Jaringan:
testing
- Prioritas:
1000
- Arah traffic: masuk
- Tindakan terhadap kecocokan: izinkan
- Target: Semua instance dalam jaringan
- Filter sumber: Rentang IPv4
- Rentang IPv4 sumber:
10.30.1.0/24
,10.50.1.0/24
- Protokol dan port: Izinkan semua
- Name:
Klik Create.
Klik Create firewall rule dan masukkan informasi berikut untuk membuat aturan agar VM produksi bisa menerima paket dari pengujian dan subnet produksi:
- Name:
fw-allow-production-from-both
- Jaringan:
production
- Prioritas:
1000
- Arah traffic: masuk
- Tindakan terhadap kecocokan: izinkan
- Target: Semua instance dalam jaringan
- Filter sumber: Rentang IPv4
- Rentang IPv4 sumber:
10.30.1.0/24
,10.50.1.0/24
- Protokol dan port: Izinkan semua
- Name:
Klik Create.
Klik Create firewall rule untuk membuat aturan guna mengizinkan koneksi SSH yang masuk di lingkungan pengujian:
- Name:
fw-allow-testing-ssh
- Jaringan:
testing
- Prioritas:
1000
- Arah 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 ketik:
tcp:22
- Name:
Klik Create.
Klik Create firewall rule untuk membuat aturan guna mengizinkan koneksi SSH masuk di lingkungan production:
- Name:
fw-allow-production-ssh
- Jaringan:
production
- Prioritas:
1000
- Arah 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 ketik:
tcp:22
- Name:
Klik Create.
Klik Create firewall rule untuk membuat aturan guna mengizinkan health check Google Cloud di lingkungan pengujian:
- Name:
fw-allow-health-check
- Jaringan:
testing
- Prioritas:
1000
- Arah 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
- Name:
Klik Create.
Klik Create firewall rule untuk membuat aturan guna mengizinkan health check Google Cloud di lingkungan production:
- Name:
fw-allow-production-health-check
- Jaringan:
production
- Prioritas:
1000
- Arah 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
- Name:
Klik Create.
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
. Saat 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 alat 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 check Google Cloud ke VM alat 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 peralatan 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 appliance 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 sisipkan 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. Template instance harus menyertakan flag
--can-ip-forward
sehingga instance VM yang dibuat dari template tersebut 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-10 \ --image-project=debian-cloud \ --can-ip-forward \ --metadata=startup-script="$(< config.sh)"
Membuat grup instance terkelola untuk peralatan virtual pihak ketiga. Perintah ini membuat grup instance terkelola regional, yang kemudian dapat diskalakan secara otomatis, dalam
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
200
HTTP (OK). Untuk mengetahui informasi selengkapnya, baca bagian health check pada ringkasan Load Balancer Jaringan passthrough internal.Layanan backend: Meskipun layanan backend contoh ini menentukan protokol TCP, saat load balancer adalah next hop untuk suatu rute, Google Cloud akan meneruskan traffic untuk semua protokol (TCP, UDP, dan ICMP).
Aturan penerusan: Meskipun aturan penerusan contoh ini menentukan TCP port 80, jika load balancer adalah next hop untuk suatu rute, traffic di port TCP atau UDP mana 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 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 Passthrough load balancer lalu klik Next.
- Untuk Hubung publik atau internal, pilih Internal lalu klik Berikutnya.
- Klik Konfigurasikan.
Membuat load balancer pertama
- Tetapkan Name ke
ilb1
. - Setel Region ke
us-west1
. - Setel Network ke
testing
. - Klik Backend configuration dan buat perubahan berikut:
- Untuk Backends, di bagian New item, pilih grup instance
third-party-instance-group
dan klik Done. - Untuk Health check, pilih Buat health check lain, masukkan informasi berikut, lalu klik Simpan dan lanjutkan:
- Name:
hc-http-80
- Protokol:
HTTP
- Port:
80
- Protokol proxy:
NONE
- Request path:
/
Perhatikan bahwa saat Anda menggunakan Konsol Google Cloud untuk membuat load balancer, health check akan bersifat global. Jika Anda ingin membuat health check regional, gunakangcloud
atau API.
- Name:
- Untuk Afinitas sesi, pilih IP Klien.
- Pastikan ada tanda centang biru di samping Konfigurasi Backend 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, lakukan perubahan berikut:
- Name:
fr-ilb1
- Subjaringan:
testing-subnet
- Dari Internal IP, pilih Reserve a static internal IP address, masukkan informasi berikut, lalu klik Reserve:
- Name:
ip-ilb
- Alamat IP statis: Biarkan saya pilih
- Alamat IP kustom:
10.30.1.99
- Name:
- Ports: Pilih Single, lalu masukkan
80
untuk Port number. Perlu diingat bahwa pilihan protokol dan port untuk load balancer tidak membatasi protokol dan port yang digunakan saat load balancer adalah hop berikutnya dari sebuah rute. - Pastikan ada tanda centang biru di samping Konfigurasi Frontend sebelum melanjutkan. Tinjau langkah ini jika belum.
- Name:
- Klik Review and finalize. Periksa kembali setelan Anda.
- Klik Create.
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 Passthrough load balancer lalu klik Next.
- Untuk Hubung publik atau internal, pilih Internal lalu klik Berikutnya.
- Klik Konfigurasikan.
Membuat load balancer kedua
- Tetapkan Name ke
ilb2
. - Setel Region ke
us-west1
. - Setel Network ke
production
. - Klik Backend configuration dan buat perubahan berikut:
- Untuk Backends, di bagian New item, pilih grup instance
third-party-instance-group
dan klik Done. - Untuk Health check, pilih
hc-http-80
. - Untuk Afinitas sesi, pilih IP Klien.
- Pastikan ada tanda centang biru di samping Konfigurasi Backend 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, lakukan perubahan berikut:
- Name:
fr-ilb2
- Subjaringan:
production-subnet
- Dari Internal IP, pilih Reserve a static internal IP address, masukkan informasi berikut, lalu klik Reserve:
- Name:
ip-ilb2
- Alamat IP statis: Biarkan saya pilih
- Alamat IP kustom:
10.50.1.99
- Name:
- Ports: Pilih Single, lalu masukkan
80
untuk Port number. Perlu diingat bahwa pilihan protokol dan port untuk load balancer tidak membatasi protokol dan port yang digunakan saat load balancer adalah hop berikutnya dari sebuah rute. - Pastikan ada tanda centang biru di samping Konfigurasi Frontend sebelum melanjutkan. Tinjau langkah ini jika belum.
- Name:
- Klik Review and finalize. Periksa kembali setelan Anda.
Klik Create.
Mengonfigurasi resource load balancer di jaringan VPC
production
.
gcloud
Buat health check HTTP baru untuk menguji konektivitas TCP ke VM di 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 peralatan 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
Membuat aturan penerusan internal dan menghubungkannya ke layanan backend untuk menyelesaikan konfigurasi load balancer. Perlu diingat bahwa protokol (TCP) dan port (80) load balancer tidak membatasi port dan protokol yang diteruskan ke backend instance (peralatan virtual pihak ketiga) saat load balancer digunakan sebagai hop rute berikutnya.
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 hop berikutnya
Buat dua rute statis kustom yang ditampilkan next-hop-ilb
.
Konsol
Membuat rute pertama
Di Konsol Google Cloud, buka halaman Routes.
Klik Create route.
Untuk Name 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 Define 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 Create.
Membuat rute kedua
- Klik Create route.
- Untuk Name 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 Define 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 Create.
gcloud
Membuat rute lanjutan dengan hop berikutnya 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. Jika Anda menentukan alamat IP, alamat IP ini dapat dipelajari di semua pembanding tanpa harus mengekspor rute kustom. Dalam contoh, rute pertama menggunakan alamat IP 10.30.1.99
, sedangkan rute kedua menggunakan nama aturan penerusan fr-ilb12
.
Secara opsional, Anda dapat menentukan satu atau beberapa tag instance pada
rute.
Rute ini dapat berlaku untuk VM tertentu jika Anda menentukan tag jaringan pada rute. Jika Anda tidak menentukan tag jaringan apa pun, rute tersebut akan berlaku untuk semua VM di 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-10 \ --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 dalam 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-10 \ --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
Memverifikasi kondisi backend load balancer.
gcloud compute backend-services get-health ilb1 --region us-west1
gcloud compute backend-services get-health ilb2 --region us-west1
Menguji konektivitas dari VM
testing
.gcloud compute ssh testing-vm --zone=us-west1-a
curl http://10.50.1.99
exit
Menguji 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 paket tersebut berasal. Tindakan ini disebut hashing simetris.
Untuk mengaktifkan perilaku hashing ini pada Load Balancer Jaringan passthrough internal yang ada, Anda harus membuat ulang aturan penerusan dan rute next-hop.
Untuk mengetahui informasi selengkapnya, lihat Hashing simetris.
Menghapus dan membuat ulang aturan penerusan
Konsol
Menghapus aturan penerusan dan membuat yang baru
Di Konsol Google Cloud, buka halaman Load balancing.
Klik load balancer
be-ilb
, lalu klik Edit.Klik Frontend configuration.
Tahan kursor ke aturan penerusan Anda, lalu klik
Delete untuk menghapusnya.Klik Add frontend IP and port.
Di bagian New Frontend IP and port, lakukan perubahan berikut:
- Name:
FORWARDING_RULE_NAME
- Subjaringan:
SUBNET_NAME
- Dari Internal IP, pilih
IP_ADDRESS
- Port:
PORT_NUMBER
atauALL
. - Klik Done.
- Pastikan ada tanda centang biru di samping Konfigurasi Frontend sebelum melanjutkan. Tinjau langkah ini jika belum.
- Name:
Klik Review and finalize. Periksa kembali setelan Anda.
Klik Create.
gcloud
Menghapus 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
Ketika SNAT tidak diperlukan
Seperti yang ditunjukkan dalam contoh sebelumnya, penafsiran alamat jaringan sumber (SNAT) tidak diperlukan jika semua hal berikut berlaku:
- Aturan penerusan untuk Load Balancer Jaringan passthrough internal dibuat pada atau setelah 22 Juni 2021.
- Rute statis kustom yang merujuk ke 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 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 merujuk ke layanan backend yang sama. Aturan penerusan pengganti menggunakan alamat IP yang berbeda.
Buat rute statis kustom pengganti yang merujuk ke aturan penerusan baru. Pastikan rute pengganti ini memiliki prioritas yang lebih tinggi daripada rute yang ada.
Menghapus rute yang ada dengan prioritas lebih rendah (merujuk aturan penerusan sebelumnya), lalu menghapus aturan penerusan sebelumnya.
Pembersihan
Di 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
Pada 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, health check ini 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 beberapa template instance.
gcloud compute instance-templates delete third-party-template
gcloud compute instance-templates delete third-party-template-multinic
Menghapus 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 selanjutnya
- Ringkasan Load Balancer Jaringan passthrough internal
- Failover untuk Load Balancer Jaringan passthrough internal
- Menyiapkan Load Balancer Jaringan 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