Halaman ini memberikan petunjuk untuk membuat Load Balancer Jaringan passthrough internal guna melakukan load balancing traffic untuk beberapa protokol.
Untuk mengonfigurasi load balancer untuk beberapa protokol, termasuk TCP dan UDP, Anda
membuat aturan penerusan dengan protokol yang ditetapkan ke
L3_DEFAULT
. Aturan
penerusan ini mengarah ke layanan backend dengan protokol yang disetel ke
UNSPECIFIED
.
Dalam contoh ini, kita menggunakan satu Load Balancer Jaringan passthrough internal untuk mendistribusikan traffic di seluruh VM backend di region us-west1
. Load balancer memiliki aturan penerusan dengan protokol
L3_DEFAULT
untuk menangani
TCP, UDP, ICMP, ICMPv6, SCTP, ESP, AH, dan GRE
.
Sebelum memulai
- Instal Google Cloud CLI. Untuk mengetahui ringkasan lengkap alat ini,
lihat ringkasan gcloud CLI. Anda dapat
menemukan perintah yang terkait dengan load balancing di
referensi API dan gcloud CLI.
Jika Anda belum menjalankan gcloud CLI sebelumnya, jalankan terlebih dahulu
perintah
gcloud init
untuk melakukan autentikasi. - Pelajari bash.
Izin
Untuk mendapatkan izin yang Anda perlukan untuk menyelesaikan panduan ini, minta administrator untuk memberi Anda peran IAM berikut pada project:
-
Untuk membuat resource load balancer:
Compute Load Balancer Admin (
roles/compute.loadBalancerAdmin
) -
Untuk membuat instance dan grup instance Compute Engine:
Compute Instance Admin (
roles/compute.instanceAdmin.v1
) -
Untuk membuat komponen jaringan:
Compute Network Admin (
roles/compute.networkAdmin
)
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Menyiapkan load balancer untuk traffic L3_DEFAULT
Langkah-langkah di bagian ini menjelaskan konfigurasi berikut:
- Contoh yang menggunakan jaringan VPC mode kustom bernama
lb-network
. Anda dapat menggunakan jaringan mode otomatis jika hanya ingin menangani traffic IPv4. Namun, traffic IPv6 memerlukan subnet mode kustom. - Subnet single-stack (
stack-type
ditetapkan keIPv4
), yang diperlukan untuk traffic IPv4. Saat membuat subnet satu stack di jaringan VPC mode kustom, Anda memilih rentang subnet IPv4 untuk subnet. Untuk traffic IPv6, kami memerlukan subnet dual-stack (stack-type
ditetapkan keIPv4_IPv6
). Saat membuat subnet dual stack di jaringan VPC mode kustom, Anda memilih jenis akses IPv6 untuk subnet. Untuk contoh ini, kita menetapkan parameteripv6-access-type
subnet keINTERNAL
. Artinya, VM baru di subnet ini dapat diberi alamat IPv4 internal dan alamat IPv6 internal. - Aturan firewall yang mengizinkan koneksi masuk ke VM backend.
- Grup instance backend dan komponen load balancer yang digunakan untuk contoh ini berada di region dan subnet ini:
- Region:
us-west1
- Subnet:
lb-subnet
, dengan rentang alamat IPv4 utama10.1.2.0/24
. Meskipun Anda memilih rentang alamat IPv4 yang dikonfigurasi di subnet, rentang alamat IPv6 ditetapkan secara otomatis. Google menyediakan blok CIDR IPv6 berukuran tetap (/64).
- Region:
- VM backend dalam grup instance terkelola di zona
us-west1-a
. - VM klien untuk menguji koneksi ke backend.
- Load Balancer Jaringan passthrough internal dengan komponen berikut:
- Health check untuk layanan backend.
- Layanan backend di region
us-west1
dengan protokol yang ditetapkan keUNSPECIFIED
untuk mengelola distribusi koneksi ke grup instance zonal. - Aturan penerusan dengan protokol yang ditetapkan ke
L3_DEFAULT
dan port yang ditetapkan keALL
.
Mengonfigurasi jaringan, region, dan subnet
Untuk mengonfigurasi subnet dengan rentang IPv6 internal, aktifkan rentang IPv6 internal ULA jaringan Virtual Private Cloud (VPC). Rentang subnet IPv6 internal dialokasikan dari rentang ini. Untuk membuat contoh jaringan dan subnet, ikuti langkah-langkah berikut:
Konsol
Untuk mendukung traffic IPv4 dan IPv6, gunakan langkah-langkah berikut:
Di konsol Google Cloud, buka halaman jaringan VPC.
Klik Create VPC network.
Untuk Name, masukkan
lb-network
.Jika Anda ingin mengonfigurasi rentang alamat IPv6 internal pada subnet di jaringan ini, selesaikan langkah-langkah berikut:
- Untuk VPC network ULA internal IPv6 range, pilih Enabled.
- Untuk Allocate internal IPv6 range, pilih Automatically atau Manually.
Untuk Mode pembuatan subnet, klik Kustom.
Di bagian New subnet tentukan parameter konfigurasi berikut untuk subnet:
- Untuk Name, masukkan
lb-subnet
. - Untuk Region, pilih
us-west1
. - Untuk membuat subnet stack ganda, pilih IPv4 and IPv6 (dual-stack) untuk IP stack type.
- Untuk IPv4 range, masukkan
10.1.2.0/24
. - Untuk IPv6 access type, pilih Internal.
- Untuk Name, masukkan
Klik Done.
Klik Create.
Untuk mendukung traffic IPv4, gunakan langkah-langkah berikut:
Di konsol Google Cloud, buka halaman jaringan VPC.
Klik Create VPC network.
Untuk Name, masukkan
lb-network
.Di bagian Subnet:
- Setel Subnet creation mode ke Custom.
- Di bagian New subnet, masukkan informasi berikut:
- Nama:
lb-subnet
- Region:
us-west1
- Jenis stack IP: IPv4 (single-stack)
- Rentang alamat IP:
10.1.2.0/24
- Nama:
- Klik Done.
Klik Create.
gcloud
Untuk traffic IPv4 dan IPv6, gunakan perintah berikut:
Untuk membuat jaringan VPC mode kustom baru, jalankan perintah
gcloud compute networks create
.Untuk mengonfigurasi rentang IPv6 internal pada subnet apa pun di jaringan ini, gunakan flag
--enable-ula-internal-ipv6
. Opsi ini menetapkan awalan ULA/48
dari dalam rentangfd20::/20
yang digunakan oleh Google Cloud untuk rentang subnet IPv6 internal.gcloud compute networks create lb-network \ --subnet-mode=custom \ --enable-ula-internal-ipv6
Dalam
lb-network
, buat subnet untuk backend di regionus-west1
.Untuk membuat subnet, jalankan perintah
gcloud compute networks subnets create
:gcloud compute networks subnets create lb-subnet \ --network=lb-network \ --range=10.1.2.0/24 \ --region=us-west1 \ --stack-type=IPV4_IPV6 --ipv6-access-type=INTERNAL
Untuk hanya traffic IPv4, gunakan perintah berikut:
Untuk membuat jaringan VPC kustom, gunakan perintah
gcloud compute networks create
:gcloud compute networks create lb-network --subnet-mode=custom
Untuk membuat subnet bagi backend di region
us-west1
dalam jaringanlb-network
, gunakan perintahgcloud compute networks subnets create
.gcloud compute networks subnets create lb-subnet \ --network=lb-network \ --range=10.1.2.0/24 \ --region=us-west1
API
Untuk traffic IPv4 dan IPv6, gunakan perintah berikut:
Buat jaringan VPC mode kustom baru. Buat permintaan
POST
ke metodenetworks.insert
.Untuk mengonfigurasi rentang IPv6 internal pada subnet apa pun di jaringan ini, tetapkan
enableUlaInternalIpv6
ketrue
. Opsi ini menetapkan rentang/48
dari dalam rentangfd20::/20
yang digunakan oleh Google untuk rentang subnet IPv6 internal.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks { "autoCreateSubnetworks": false, "name": "lb-network", "mtu": MTU, "enableUlaInternalIpv6": true, }
Ganti kode berikut:
PROJECT_ID
: ID project tempat jaringan VPC dibuat.MTU
: unit transmisi maksimum jaringan. MTU dapat berupa1460
(default) atau1500
. Tinjau ringkasan unit transmisi maksimum sebelum menetapkan MTU ke1500
.
Buat permintaan
POST
ke metodesubnetworks.insert
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks { "ipCidrRange": "10.1.2.0/24", "network": "lb-network", "name": "lb-subnet" "stackType": IPV4_IPV6, "ipv6AccessType": Internal }
Untuk traffic IPv4 saja, gunakan langkah-langkah berikut:
Buat permintaan
POST
ke metodenetworks.insert
. GantiPROJECT_ID
dengan ID project Google Cloud Anda.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks { "name": "lb-network", "autoCreateSubnetworks": false }
Buat dua permintaan
POST
ke metodesubnetworks.insert
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks { "name": "lb-subnet", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "ipCidrRange": "10.1.2.0/24", "privateIpGoogleAccess": false }
Mengonfigurasi aturan firewall
Contoh ini menggunakan aturan firewall berikut:
fw-allow-lb-access
: Aturan ingress, yang berlaku untuk semua target di jaringan VPC, yang mengizinkan traffic dari sumber dalam rentang10.1.2.0/24
. Aturan ini mengizinkan traffic masuk dari klien mana pun yang terletak di subnet.fw-allow-lb-access-ipv6
: Aturan ingress, yang berlaku untuk semua target di jaringan VPC, yang mengizinkan traffic dari sumber dalam rentang IPv6 yang dikonfigurasi di subnet. Aturan ini mengizinkan traffic IPv6 masuk dari klien mana pun yang terletak di subnet.fw-allow-ssh
: Aturan ingress, yang berlaku untuk instance yang di-load balanced, yang memungkinkan konektivitas SSH yang masuk pada TCP port 22 dari alamat mana pun. Anda dapat memilih rentang IP sumber yang lebih ketat untuk aturan ini—misalnya, Anda dapat menentukan hanya rentang IP sistem tempat Anda memulai sesi SSH. Contoh ini menggunakan tag targetallow-ssh
untuk mengidentifikasi VM tempat tag tersebut harus diterapkan.fw-allow-health-check
: Aturan ingress, yang berlaku untuk instance yang di-load balance, yang 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 tempat tag tersebut harus diterapkan.fw-allow-health-check-ipv6
: Aturan ingress, yang berlaku untuk instance yang di-load balance, yang mengizinkan traffic dari sistem health check Google Cloud (2600:2d00:1:b029::/64
). Contoh ini menggunakan tag targetallow-health-check-ipv6
untuk mengidentifikasi instance tempat tag tersebut harus diterapkan.
Tanpa aturan firewall ini, aturan tolak ingress default akan memblokir traffic masuk ke instance backend.
Konsol
Di Konsol Google Cloud, buka halaman Firewall policies.
Untuk mengizinkan traffic IPv4 TCP, UDP, dan ICMP menjangkau grup instance backend
ig-a
:- Klik Create firewall rule.
- Nama:
fw-allow-lb-access
- Jaringan:
lb-network
- Prioritas:
1000
- Direction of traffic: Masuk
- Action on match: Izinkan
- Targets: Semua instance dalam jaringan
- Source filter: Rentang IPv4
- Rentang IPv4 sumber:
10.1.2.0/24
- Protocols and ports: pilih Specified protocols and ports.
- Pilih TCP, lalu masukkan
ALL
. - Pilih UDP.
- Pilih Lainnya dan masukkan
ICMP
.
- Pilih TCP, lalu masukkan
Klik Create.
Untuk mengizinkan koneksi SSH yang masuk:
- Klik Create firewall rule.
- Nama:
fw-allow-ssh
- Jaringan:
lb-network
- Prioritas:
1000
- Direction of traffic: Masuk
- Action on match: Izinkan
- Targets: Tag target yang ditentukan
- Tag target:
allow-ssh
- Source filter: Rentang IPv4
- Rentang IPv4 sumber:
0.0.0.0/0
- Protocols and ports: pilih Specified protocols and ports,
lalu ketik
tcp:22
.
Klik Create.
Untuk mengizinkan traffic IPv6 TCP, UDP, dan ICMP menjangkau grup instance backend
ig-a
:- Klik Create firewall rule.
- Nama:
fw-allow-lb-access-ipv6
- Jaringan:
lb-network
- Prioritas:
1000
- Direction of traffic: Masuk
- Action on match: Izinkan
- Targets: Semua instance dalam jaringan
- Filter sumber: Rentang IPv6
- Rentang IPv6 sumber: IPV6_ADDRESS ditetapkan di
lb-subnet
- Protocols and ports: pilih Specified protocols and ports.
- Pilih TCP, lalu masukkan
0-65535
. - Pilih UDP.
- Pilih Other dan untuk protokol ICMPv6, masukkan
58
.
- Pilih TCP, lalu masukkan
Klik Create.
Untuk mengizinkan health check IPv6 Google Cloud:
- Klik Create firewall rule.
- Nama:
fw-allow-health-check-ipv6
- Jaringan:
lb-network
- Prioritas:
1000
- Direction of traffic: Masuk
- Action on match: Izinkan
- Targets: Tag target yang ditentukan
- Tag target:
allow-health-check-ipv6
- Filter sumber: Rentang IPv6
- Rentang IPv6 sumber:
2600:2d00:1:b029::/64
- Protocols and ports: Allow all
Klik Create.
Untuk mengizinkan health check IPv4 Google Cloud:
- Klik Create firewall rule
- Nama:
fw-allow-health-check
- Jaringan:
lb-network
- Prioritas:
1000
- Direction of traffic: Masuk
- Action on match: Izinkan
- Targets: Tag target yang ditentukan
- Tag target:
allow-health-check
- Source filter: Rentang IPv4
- Rentang IPv4 sumber:
130.211.0.0/22
dan35.191.0.0/16
- Protocols and ports: Allow all
Klik Create.
gcloud
Untuk mengizinkan traffic TCP IPv4 menjangkau grup instance backend
ig-a
, buat aturan berikut:gcloud compute firewall-rules create fw-allow-lb-access \ --network=lb-network \ --action=allow \ --direction=ingress \ --source-ranges=10.1.2.0/24 \ --rules=tcp,udp,icmp
Buat aturan firewall
fw-allow-ssh
untuk mengizinkan konektivitas SSH ke VM menggunakan 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
Untuk mengizinkan traffic IPv6 menjangkau grup instance backend
ig-a
, buat aturan berikut:gcloud compute firewall-rules create fw-allow-lb-access-ipv6 \ --network=lb-network \ --action=allow \ --direction=ingress \ --source-ranges=IPV6_ADDRESS \ --rules=all
Ganti
IPV6_ADDRESS
dengan alamat IPv6 yang ditetapkan dilb-subnet
.Buat aturan firewall
fw-allow-health-check
untuk mengizinkan health check Google Cloud.gcloud compute firewall-rules create fw-allow-health-check \ --network=lb-network \ --action=allow \ --direction=ingress \ --target-tags=allow-health-check \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --rules=tcp,udp,icmp
Buat aturan
fw-allow-health-check-ipv6
untuk mengizinkan health check IPv6 Google Cloud.gcloud compute firewall-rules create fw-allow-health-check-ipv6 \ --network=lb-network \ --action=allow \ --direction=ingress \ --target-tags=allow-health-check-ipv6 \ --source-ranges=2600:2d00:1:b029::/64 \ --rules=tcp,udp,icmp
API
Untuk membuat aturan firewall
fw-allow-lb-access
, buat permintaanPOST
ke metodefirewalls.insert
. GantiPROJECT_ID
dengan ID project Google Cloud Anda.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls { "name": "fw-allow-lb-access", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "priority": 1000, "sourceRanges": [ "10.1.2.0/24" ], "allPorts": true, "allowed": [ { "IPProtocol": "tcp" }, { "IPProtocol": "udp" }, { "IPProtocol": "icmp" } ], "direction": "INGRESS", "logConfig": { "enable": false }, "disabled": false }
Buat aturan firewall
fw-allow-lb-access-ipv6
dengan membuat permintaanPOST
ke metodefirewalls.insert
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls { "name": "fw-allow-lb-access-ipv6", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "priority": 1000, "sourceRanges": [ "IPV6_ADDRESS" ], "allPorts": true, "allowed": [ { "IPProtocol": "tcp" }, { "IPProtocol": "udp" }, { "IPProtocol": "58" } ], "direction": "INGRESS", "logConfig": { "enable": false }, "disabled": false }
Ganti IPV6_ADDRESS dengan alamat IPv6 yang ditetapkan di
lb-subnet
.Untuk membuat aturan firewall
fw-allow-ssh
, buat permintaanPOST
ke metodefirewalls.insert
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls { "name": "fw-allow-ssh", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "priority": 1000, "sourceRanges": [ "0.0.0.0/0" ], "targetTags": [ "allow-ssh" ], "allowed": [ { "IPProtocol": "tcp", "ports": [ "22" ] } ], "direction": "INGRESS", "logConfig": { "enable": false }, "disabled": false }
Untuk membuat aturan firewall
fw-allow-health-check
, buat permintaanPOST
ke metodefirewalls.insert
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls { "name": "fw-allow-health-check", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "priority": 1000, "sourceRanges": [ "130.211.0.0/22", "35.191.0.0/16" ], "targetTags": [ "allow-health-check" ], "allowed": [ { "IPProtocol": "tcp" }, { "IPProtocol": "udp" }, { "IPProtocol": "icmp" } ], "direction": "INGRESS", "logConfig": { "enable": false }, "disabled": false }
Buat aturan firewall
fw-allow-health-check-ipv6
dengan membuat permintaanPOST
ke metodefirewalls.insert
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls { "name": "fw-allow-health-check-ipv6", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "priority": 1000, "sourceRanges": [ "2600:2d00:1:b029::/64" ], "targetTags": [ "allow-health-check-ipv6" ], "allowed": [ { "IPProtocol": "tcp" }, { "IPProtocol": "udp" } ], "direction": "INGRESS", "logConfig": { "enable": false }, "disabled": false }
Membuat VM backend dan grup instance
Untuk skenario load balancing ini, Anda akan membuat grup instance terkelola zona Compute Engine dan menginstal server web Apache.
Untuk menangani traffic IPv4 dan IPv6, konfigurasikan VM backend menjadi
stack ganda. Tetapkan stack-type
VM ke IPv4_IPv6
. VM juga mewarisi setelan ipv6-access-type
(dalam contoh ini, INTERNAL
) dari subnet. Untuk mengetahui detail selengkapnya tentang persyaratan IPv6, lihat Ringkasan Load Balancer Jaringan passthrough internal: Aturan penerusan.
Jika Anda ingin menggunakan VM yang ada sebagai backend, update VM menjadi dual-stack menggunakan perintah gcloud compute instances network-interfaces update.
Instance yang berpartisipasi sebagai VM backend untuk Load Balancer Jaringan passthrough internal harus menjalankan Lingkungan Tamu Linux, Lingkungan Tamu Windows, atau proses lain yang menyediakan fungsi yang setara.
Untuk memudahkan petunjuk, VM backend menjalankan Debian GNU/Linux 10.
Membuat grup instance
Konsol
Untuk mendukung traffic IPv4 dan IPv6, gunakan langkah-langkah berikut:
Membuat template instance. Di konsol Google Cloud, buka halaman Instance templates.
Buka halaman Template instance
- Klik Create instance template.
- Untuk Name, masukkan
vm-a1
. - 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
. - Luaskan bagian Advanced options.
Luaskan bagian Management, lalu salin skrip berikut ke kolom Startup script. Skrip startup juga mengonfigurasi server Apache untuk memproses port
8080
, bukan port80
.#! /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 sed -ire 's/^Listen 80$/Listen 8080/g' /etc/apache2/ports.conf systemctl restart apache2
Luaskan bagian Networking, lalu tentukan hal berikut:
- Untuk Tag jaringan, tambahkan
allow-ssh
danallow-health-check-ipv6
. - Untuk Network interfaces, klik antarmuka default dan
konfigurasi kolom berikut:
- Jaringan:
lb-network
- Subnetwork:
lb-subnet
- IP stack type: IPv4 and IPv6 (dual-stack)
- Jaringan:
- Untuk Tag jaringan, tambahkan
Klik Create.
Untuk mendukung traffic IPv4, gunakan langkah-langkah berikut:
Membuat template instance. Di konsol Google Cloud, buka halaman Instance templates.
Klik Create instance template.
- Untuk Name, masukkan
vm-a1
. - 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
. - Luaskan bagian Advanced options.
Luaskan bagian Management, lalu salin skrip berikut ke kolom Startup script. Skrip startup juga mengonfigurasi server Apache untuk memproses port
8080
, bukan port80
.#! /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 sed -ire 's/^Listen 80$/Listen 8080/g' /etc/apache2/ports.conf systemctl restart apache2
Luaskan bagian Networking, lalu tentukan hal berikut:
- Untuk Tag jaringan, tambahkan
allow-ssh
danallow-health-check
. - Untuk Network interfaces, klik antarmuka default dan konfigurasikan kolom berikut:
- Jaringan:
lb-network
- Subnetwork:
lb-subnet
- Jenis stack IP: IPv4 (single-stack)
- Jaringan:
- Untuk Tag jaringan, tambahkan
Klik Create.
- Untuk Name, masukkan
Membuat grup instance terkelola. Buka halaman Grup instance di konsol Google Cloud.
- Klik Create instance group.
- Pilih New managed instance group (stateless). Untuk informasi selengkapnya, lihat MIG stateless atau stateful.
- Untuk Name, masukkan
ig-a
. - Untuk Location, pilih Single zone.
- Untuk Region, pilih
us-west1
. - Untuk Zone, pilih
us-west1-a
. - Untuk Instance template, pilih
vm-a1
. Tentukan jumlah instance yang ingin Anda buat dalam grup.
Untuk contoh ini, tentukan opsi berikut di bagian Penskalaan otomatis:
- Untuk Autoscaling mode, pilih
Off:do not autoscale
. - Untuk Maximum number of instances, masukkan
2
.
- Untuk Autoscaling mode, pilih
Klik Create.
gcloud
Petunjuk gcloud
dalam panduan ini mengasumsikan bahwa Anda menggunakan Cloud
Shell atau lingkungan lain dengan bash yang diinstal.
Buat template instance VM dengan server HTTP dengan perintah
gcloud compute instance-templates create
.Skrip startup juga mengonfigurasi server Apache untuk memproses port
8080
, bukan port80
.Untuk menangani traffic IPv4 dan IPv6, gunakan perintah berikut.
gcloud compute instance-templates create vm-a1 \ --region=us-west1 \ --network=lb-network \ --subnet=lb-subnet \ --ipv6-network-tier=PREMIUM \ --stack-type=IPv4_IPv6 \ --tags=allow-ssh \ --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 sed -ire "s/^Listen 80$/Listen 8080/g" /etc/apache2/ports.conf systemctl restart apache2'
Atau, jika Anda ingin menangani hanya traffic IPv4, gunakan perintah berikut.
gcloud compute instance-templates create vm-a1 \ --region=us-west1 \ --network=lb-network \ --subnet=lb-subnet \ --tags=allow-ssh \ --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 sed -ire "s/^Listen 80$/Listen 8080/g" /etc/apache2/ports.conf systemctl restart apache2'
Buat grup instance terkelola di zona dengan perintah
gcloud compute instance-groups managed create
.gcloud compute instance-groups managed create ig-a \ --zone us-west1-a \ --size 2 \ --template vm-a1
api
Untuk menangani traffic IPv4 dan IPv6, gunakan langkah-langkah berikut:.
Buat VM dengan membuat permintaan
POST
ke metodeinstances.insert
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name": "vm-a1", "tags": { "items": [ "allow-health-check-ipv6", "allow-ssh" ] }, "machineType": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/machineTypes/e2-standard-2", "canIpForward": false, "networkInterfaces": [ { "stackType": "IPV4_IPV6", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks/lb-subnet", "accessConfigs": [ { "type": "ONE_TO_ONE_NAT", "name": "external-nat", "networkTier": "PREMIUM" } ] } ], "disks": [ { "type": "PERSISTENT", "boot": true, "mode": "READ_WRITE", "autoDelete": true, "deviceName": "vm-a1", "initializeParams": { "sourceImage": "projects/debian-cloud/global/images/DEBIAN_IMAGE_NAME", "diskType": "projects/PROJECT_ID/zones/ZONE/diskTypes/pd-standard", "diskSizeGb": "10" } } ], "metadata": { "items": [ { "key": "startup-script", "value": "#! /bin/bash\napt-get update\napt-get install apache2 -y\na2ensite default-ssl\na2enmod ssl\nvm_hostname="$(curl -H "Metadata-Flavor:Google" \\\nhttp://metadata.google.internal/computeMetadata/v1/instance/name)"\necho "Page served from: $vm_hostname" | \\\ntee /var/www/html/index.html\nsed -ire "s/^Listen 80$/Listen 8080/g" /etc/\\napache2/ports.conf\nsystemctl restart apache2" } ] }, "scheduling": { "preemptible": false }, "deletionProtection": false }
Untuk menangani traffic IPv4, gunakan langkah-langkah berikut.
Buat VM dengan membuat permintaan
POST
ke metodeinstances.insert
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name": "vm-a1", "tags": { "items": [ "allow-health-check", "allow-ssh" ] }, "machineType": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/machineTypes/e2-standard-2", "canIpForward": false, "networkInterfaces": [ { "stackType": "IPV4", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks/lb-subnet", "accessConfigs": [ { "type": "ONE_TO_ONE_NAT", "name": "external-nat", "networkTier": "PREMIUM" } ] } ], "disks": [ { "type": "PERSISTENT", "boot": true, "mode": "READ_WRITE", "autoDelete": true, "deviceName": "vm-a1", "initializeParams": { "sourceImage": "projects/debian-cloud/global/images/DEBIAN_IMAGE_NAME", "diskType": "projects/PROJECT_ID/zones/ZONE/diskTypes/pd-standard", "diskSizeGb": "10" } } ], "metadata": { "items": [ { "key": "startup-script", "value": "#! /bin/bash\napt-get update\napt-get install apache2 -y\na2ensite default-ssl\na2enmod ssl\nvm_hostname="$(curl -H "Metadata-Flavor:Google" \\\nhttp://metadata.google.internal/computeMetadata/v1/instance/name)"\necho "Page served from: $vm_hostname" | \\\ntee /var/www/html/index.html\nsed -ire "s/^Listen 80$/Listen 8080/g" /etc/\\napache2/ports.conf\nsystemctl restart apache2" } ] }, "scheduling": { "preemptible": false }, "deletionProtection": false }
Buat grup instance dengan membuat permintaan
POST
ke metodeinstanceGroups.insert
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/instanceGroups { "name": "ig-a", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks/lb-subnet" }
Tambahkan instance ke setiap grup instance dengan membuat permintaan
POST
ke metodeinstanceGroups.addInstances
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/instanceGroups/ig-a/addInstances { "instances": [ { "instance": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/instances/vm-a1" } ] }
Membuat VM klien
Contoh ini membuat VM klien di region yang sama dengan VM backend (server). Klien digunakan untuk memvalidasi konfigurasi load balancer dan menunjukkan perilaku yang diharapkan seperti yang dijelaskan di bagian pengujian.
Untuk traffic IPv4 dan IPv6:
Konsol
Di konsol Google Cloud, buka halaman Instance VM.
Klik Create instance.
Tetapkan Name ke
vm-client-ipv6
.Tetapkan Zona ke
us-west1-a
.Luaskan bagian Advanced options, lalu lakukan perubahan berikut:
- Luaskan Networking, lalu tambahkan
allow-ssh
ke Network tags. - Di bagian Network interfaces, klik Edit, buat
perubahan berikut, lalu klik Done:
- Jaringan:
lb-network
- Subnet:
lb-subnet
- IP stack type: IPv4 and IPv6 (dual-stack)
- Primary internal IP: Ephemeral (otomatis)
- External IP: Sementara
- Jaringan:
- Luaskan Networking, lalu tambahkan
Klik Create.
gcloud
VM klien 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,
klien berada di zona us-west1-a
, dan menggunakan subnet
yang sama dengan VM backend.
gcloud compute instances create vm-client-ipv6 \ --zone=us-west1-a \ --image-family=debian-12 \ --image-project=debian-cloud \ --stack-type=IPV4_IPV6 \ --tags=allow-ssh \ --subnet=lb-subnet
api
Buat permintaan POST
ke metode instances.insert
.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/instances { "name": "vm-client-ipv6", "tags": { "items": [ "allow-ssh" ] }, "machineType": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/machineTypes/e2-standard-2", "canIpForward": false, "networkInterfaces": [ { "stackType": "IPV4_IPV6", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks/lb-subnet", "accessConfigs": [ { "type": "ONE_TO_ONE_NAT", "name": "external-nat", "networkTier": "PREMIUM" } ] } ], "disks": [ { "type": "PERSISTENT", "boot": true, "mode": "READ_WRITE", "autoDelete": true, "deviceName": "vm-client", "initializeParams": { "sourceImage": "projects/debian-cloud/global/images/debian-image-name", "diskType": "projects/PROJECT_ID/zones/us-west1-a/diskTypes/pd-standard", "diskSizeGb": "10" } } ], "scheduling": { "preemptible": false }, "deletionProtection": false }
Untuk traffic IPv4:
Konsol
Di konsol Google Cloud, buka halaman Instance VM.
Klik Create instance.
Untuk Name, masukkan
vm-client
.Untuk Zone, masukkan
us-west1-a
.Luaskan bagian Advanced options.
Luaskan Networking, lalu konfigurasikan kolom berikut:
- Untuk Network tags, masukkan
allow-ssh
. - Untuk Network interfaces, pilih dari daftar berikut:
- Jaringan:
lb-network
- Subnet:
lb-subnet
- Jaringan:
- Untuk Network tags, masukkan
Klik Create.
gcloud
VM klien 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,
klien berada di zona us-west1-a
, dan menggunakan subnet
yang sama dengan VM backend.
gcloud compute instances create vm-client \ --zone=us-west1-a \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ssh \ --subnet=lb-subnet
API
Buat permintaan POST
ke metode instances.insert
.
Ganti PROJECT_ID
dengan ID project Google Cloud Anda.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/instances { "name": "vm-client", "tags": { "items": [ "allow-ssh" ] }, "machineType": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/machineTypes/e2-standard-2", "canIpForward": false, "networkInterfaces": [ { "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks/lb-subnet", "accessConfigs": [ { "type": "ONE_TO_ONE_NAT", "name": "external-nat", "networkTier": "PREMIUM" } ] } ], "disks": [ { "type": "PERSISTENT", "boot": true, "mode": "READ_WRITE", "autoDelete": true, "deviceName": "vm-client", "initializeParams": { "sourceImage": "projects/debian-cloud/global/images/debian-image-name", "diskType": "projects/PROJECT_ID/zones/us-west1-a/diskTypes/pd-standard", "diskSizeGb": "10" } } ], "scheduling": { "preemptible": false }, "deletionProtection": false }
Mengonfigurasi komponen load balancer
Membuat load balancer untuk beberapa protokol.
gcloud
Buat health check HTTP untuk port 80. Health check ini digunakan untuk memverifikasi kondisi backend dalam grup instance
ig-a
.gcloud compute health-checks create http hc-http-80 \ --region=us-west1 \ --port=80
Buat layanan backend dengan protokol yang ditetapkan ke
UNSPECIFIED
:gcloud compute backend-services create be-ilb-l3-default \ --load-balancing-scheme=internal \ --protocol=UNSPECIFIED \ --region=us-west1 \ --health-checks=hc-http-80 \ --health-checks-region=us-west1
Tambahkan grup instance ke layanan backend:
gcloud compute backend-services add-backend be-ilb-l3-default \ --region=us-west1 \ --instance-group=ig-a \ --instance-group-zone=us-west1-a
Untuk traffic IPv6: Buat aturan penerusan dengan protokol yang ditetapkan ke
L3_DEFAULT
untuk menangani semua traffic protokol IPv6 yang didukung. Semua port harus dikonfigurasi dengan aturan penerusanL3_DEFAULT
.gcloud compute forwarding-rules create fr-ilb-ipv6 \ --region=us-west1 \ --load-balancing-scheme=internal \ --subnet=lb-subnet \ --ip-protocol=L3_DEFAULT \ --ports=ALL \ --backend-service=be-ilb-l3-default \ --backend-service-region=us-west1 \ --ip-version=IPV6
Untuk traffic IPv4: Buat aturan penerusan dengan protokol yang ditetapkan ke
L3_DEFAULT
untuk menangani semua traffic protokol IPv4 yang didukung. Semua port harus dikonfigurasi dengan aturan penerusanL3_DEFAULT
. Gunakan10.1.2.99
sebagai alamat IP internal.gcloud compute forwarding-rules create fr-ilb-l3-default \ --region=us-west1 \ --load-balancing-scheme=internal \ --network=lb-network \ --subnet=lb-subnet \ --address=10.1.2.99 \ --ip-protocol=L3_DEFAULT \ --ports=ALL \ --backend-service=be-ilb-l3-default \ --backend-service-region=us-west1
API
Buat health check dengan membuat permintaan
POST
ke metoderegionHealthChecks.insert
. GantiPROJECT_ID
dengan ID project Google Cloud Anda.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/regionHealthChecks { "name": "hc-http-80", "type": "HTTP", "httpHealthCheck": { "port": 80 } }
Buat layanan backend regional dengan membuat permintaan
POST
ke metoderegionBackendServices.insert
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/backendServices { "name": "be-ilb-l3-default", "backends": [ { "group": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/instanceGroups/ig-a", "balancingMode": "CONNECTION" } ], "healthChecks": [ "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/healthChecks/hc-http-80" ], "loadBalancingScheme": "INTERNAL", "protocol": "UNSPECIFIED", "connectionDraining": { "drainingTimeoutSec": 0 } }
Untuk traffic IPv6: Buat aturan penerusan dengan membuat permintaan
POST
ke metodeforwardingRules.insert
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/forwardingRules { "name": "fr-ilb-ipv6", "IPProtocol": "L3_DEFAULT", "allPorts": true, "loadBalancingScheme": "INTERNAL", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks/lb-subnet", "backendService": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/backendServices/be-ilb-l3-default", "ipVersion": "IPV6", "networkTier": "PREMIUM" }
Untuk traffic IPv4: Buat aturan penerusan dengan membuat permintaan
POST
ke metodeforwardingRules.insert
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/forwardingRules { "name": "fr-ilb-l3-default", "IPAddress": "10.1.2.99", "IPProtocol": "L3_DEFAULT", "allPorts": true, "loadBalancingScheme": "INTERNAL", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks/lb-subnet", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "backendService": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/backendServices/be-ilb-l3-default", "networkTier": "PREMIUM" }
Menguji load balancer
Pengujian berikut menunjukkan cara memvalidasi konfigurasi load balancer dan mempelajari perilaku yang diharapkan.
Menguji koneksi dari VM klien
Pengujian ini menghubungi load balancer dari VM klien terpisah; yaitu, bukan dari VM backend load balancer.
gcloud:IPv6
Hubungkan ke instance VM klien.
gcloud compute ssh vm-client-ipv6 --zone=us-west1-a
Deskripsikan aturan penerusan IPv6
fr-ilb-ipv6
. PerhatikanIPV6_ADDRESS
dalam deskripsi.gcloud compute forwarding-rules describe fr-ilb-ipv6 --region=us-west1
Dari klien dengan konektivitas IPv6, jalankan perintah berikut. Ganti
IPV6_ADDRESS
dengan alamat IPv6 sementara di aturan penerusanfr-ilb-ipv6
.curl -m 10 -s http://IPV6_ADDRESS:80
Misalnya, jika alamat IPv6 yang ditetapkan adalah
[fd20:1db0:b882:802:0:46:0:0/96]:80
, perintahnya akan terlihat seperti:curl -m 10 -s http://[fd20:1db0:b882:802:0:46:0:0]:80
gcloud:IPv4
Hubungkan ke instance VM klien.
gcloud compute ssh vm-client --zone=us-west1-a
Deskripsikan aturan penerusan IPv4
fr-ilb
.gcloud compute forwarding-rules describe fr-ilb --region=us-west1
Buat permintaan web ke load balancer menggunakan
curl
untuk menghubungi alamat IP-nya. Ulangi permintaan sehingga Anda dapat melihat bahwa respons berasal dari VM backend yang berbeda. Nama VM yang menghasilkan respons akan ditampilkan dalam teks dalam respons HTML berdasarkan konten/var/www/html/index.html
di setiap VM backend. Respons yang diharapkan akan terlihat sepertiPage served from: vm-a1
.curl http://10.1.2.99
Aturan penerusan dikonfigurasi untuk menayangkan port
80
dan53
. Untuk mengirim traffic ke port tersebut, tambahkan titik dua (:
) dan nomor port setelah alamat IP, seperti ini:curl http://10.1.2.99:80
Melakukan ping ke alamat IP load balancer
Pengujian ini menunjukkan perilaku yang diharapkan: Anda dapat melakukan ping ke alamat IP load balancer.
gcloud:IPv6
Hubungkan ke instance VM klien.
gcloud compute ssh vm-client-ipv6 --zone=us-west1-a
Coba ping alamat IPv6 load balancer. Ganti
IPV6_ADDRESS
dengan alamat IPv6 sementara di aturan penerusanfr-ilb-ipv6
.Perhatikan bahwa Anda mendapatkan respons dan perintah
ping
berfungsi dalam contoh ini.ping6 IPV6_ADDRESS
Misalnya, jika alamat IPv6 yang ditetapkan adalah
[2001:db8:1:1:1:1:1:1/96]
, perintahnya adalah sebagai berikut:ping6 2001:db8:1:1:1:1:1:1
Outputnya mirip dengan hal berikut ini:
@vm-client: ping
IPV6_ADDRESS
PINGIPV6_ADDRESS
(IPV6_ADDRESS
) 56(84) bytes of data. 64 bytes fromIPV6_ADDRESS
: icmp_seq=1 ttl=64 time=1.58 ms
gcloud:IPv4
Hubungkan ke instance VM klien.
gcloud compute ssh vm-client --zone=us-west1-a
Coba ping alamat IPv4 load balancer. Perhatikan bahwa Anda mendapatkan respons dan perintah
ping
berfungsi dalam contoh ini.ping 10.1.2.99
Outputnya adalah sebagai berikut:
@vm-client: ping 10.1.2.99 PING 10.1.2.99 (10.1.2.99) 56(84) bytes of data. 64 bytes from 10.1.2.99: icmp_seq=1 ttl=64 time=1.58 ms 64 bytes from 10.1.2.99: icmp_seq=2 ttl=64 time=0.242 ms 64 bytes from 10.1.2.99: icmp_seq=3 ttl=64 time=0.295 ms
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.
Anda dapat mencadangkan alamat IP internal statis untuk contoh Anda. Konfigurasi ini
memungkinkan beberapa aturan penerusan internal menggunakan alamat IP yang sama dengan
protokol dan port yang berbeda.
Backend contoh load balancer Anda masih harus berada di region
us-west1
.
Diagram berikut menunjukkan arsitektur untuk contoh ini.
Anda juga dapat mempertimbangkan untuk menggunakan konfigurasi aturan penerusan berikut:
Aturan penerusan dengan beberapa port:
- Protokol
TCP
dengan port80,8080
- Protokol
L3_DEFAULT
dengan portALL
- Protokol
Aturan penerusan dengan semua port:
- Protokol
TCP
dengan portALL
- Protokol
L3_DEFAULT
dengan portALL
- Protokol
Mencadangkan alamat IPv4 internal statis
Cadangkan alamat IP internal statis untuk 10.1.2.99
dan tetapkan
tanda --purpose
-nya ke SHARED_LOADBALANCER_VIP
. Flag --purpose
diperlukan agar banyak aturan penerusan dapat menggunakan alamat IP internal
yang sama.
gcloud
Gunakan perintah gcloud compute addresses create
:
gcloud compute addresses create internal-lb-ipv4 \ --region us-west1 \ --subnet lb-subnet \ --purpose SHARED_LOADBALANCER_VIP \ --addresses 10.1.2.99
API
Panggil
metode addresses.insert
.
Ganti PROJECT_ID
dengan ID project Google Cloud Anda.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/addresses
Isi permintaan harus menyertakan addressType
, yang harus berupa INTERNAL
, name
alamat, dan subnetwork
tempat alamat IP tersebut berada. Anda harus menentukan address
sebagai 10.1.2.99
.
{ "addressType": "INTERNAL", "name": "internal-lb-ipv4", "subnetwork": "regions/us-west1/subnetworks/lb-subnet", "purpose": "SHARED_LOADBALANCER_VIP", "address": "10.1.2.99" }
Mengonfigurasi komponen load balancer
Konfigurasikan tiga load balancer dengan komponen berikut:
- Load balancer pertama memiliki aturan penerusan dengan protokol
TCP
dan port80
. Traffic TCP yang tiba di alamat IP internal pada port80
ditangani oleh aturan penerusanTCP
. - Load balancer kedua memiliki aturan penerusan dengan protokol
UDP
dan port53
. Traffic UDP yang tiba di alamat IP internal pada port53
ditangani oleh aturan penerusanUDP
. - Load balancer ketiga memiliki aturan penerusan dengan protokol
L3_DEFAULT
dan portALL
. Semua traffic lain yang tidak cocok dengan aturan penerusanTCP
atauUDP
ditangani oleh aturan penerusanL3_DEFAULT
. - Ketiga load balancer tersebut memiliki alamat IP internal statis yang sama
(
internal-lb-ipv4
) dalam aturan penerusannya.
Membuat load balancer pertama
Buat load balancer pertama untuk traffic TCP di port 80
.
gcloud
Buat layanan backend untuk traffic TCP:
gcloud compute backend-services create be-ilb \ --load-balancing-scheme=internal \ --protocol=tcp \ --region=us-west1 \ --health-checks=hc-http-80 \ --health-checks-region=us-west1
Tambahkan grup instance ke layanan backend:
gcloud compute backend-services add-backend be-ilb \ --region=us-west1 \ --instance-group=ig-a \ --instance-group-zone=us-west1-a
Buat aturan penerusan untuk layanan backend. Gunakan alamat IP internal statis yang direservasi (
internal-lb-ipv4
) untuk alamat IP internal.gcloud compute forwarding-rules create fr-ilb \ --region=us-west1 \ --load-balancing-scheme=internal \ --network=lb-network \ --subnet=lb-subnet \ --address=internal-lb-ipv4 \ --ip-protocol=TCP \ --ports=80 \ --backend-service=be-ilb \ --backend-service-region=us-west1
API
Buat layanan backend regional dengan membuat permintaan
POST
ke metoderegionBackendServices.insert
. GantiPROJECT_ID
dengan ID project Google Cloud Anda.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/backendServices { "name": "be-ilb", "backends": [ { "group": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/instanceGroups/ig-a", "balancingMode": "CONNECTION" } ], "healthChecks": [ "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/healthChecks/hc-http-80" ], "loadBalancingScheme": "INTERNAL", "protocol": "TCP", "connectionDraining": { "drainingTimeoutSec": 0 } }
Create the forwarding rule by making a
POST
request to theforwardingRules.insert
method:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/forwardingRules { "name": "fr-ilb", "IPAddress": "internal-lb-ipv4", "IPProtocol": "TCP", "ports": [ "80" ], "loadBalancingScheme": "INTERNAL", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks/lb-subnet", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "backendService": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/backendServices/be-ilb", "networkTier": "PREMIUM" }
Membuat load balancer kedua
Buat load balancer kedua untuk traffic UDP di port 53
.
gcloud
Buat layanan backend dengan protokol yang ditetapkan ke
UDP
:gcloud compute backend-services create be-ilb-udp \ --load-balancing-scheme=internal \ --protocol=UDP \ --region=us-west1 \ --health-checks=hc-http-80 \ --health-checks-region=us-west1
Tambahkan grup instance ke layanan backend:
gcloud compute backend-services add-backend be-ilb-udp \ --region=us-west1 \ --instance-group=ig-a \ --instance-group-zone=us-west1-a
Buat aturan penerusan untuk layanan backend. Gunakan alamat IP internal statis yang direservasi (
internal-lb-ipv4
) untuk alamat IP internal.gcloud compute forwarding-rules create fr-ilb-udp \ --region=us-west1 \ --load-balancing-scheme=internal \ --network=lb-network \ --subnet=lb-subnet \ --address=internal-lb-ipv4 \ --ip-protocol=UDP \ --ports=53 \ --backend-service=be-ilb-udp \ --backend-service-region=us-west1
API
Buat layanan backend regional dengan membuat permintaan
POST
ke metoderegionBackendServices.insert
. GantiPROJECT_ID
dengan ID project Google Cloud Anda.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/backendServices { "name": "be-ilb-udp", "backends": [ { "group": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/instanceGroups/ig-a", "balancingMode": "CONNECTION" } ], "healthChecks": [ "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/healthChecks/hc-http-80" ], "loadBalancingScheme": "INTERNAL", "protocol": "UDP", "connectionDraining": { "drainingTimeoutSec": 0 } }
Buat aturan penerusan dengan membuat permintaan
POST
ke metodeforwardingRules.insert
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/forwardingRules { "name": "fr-ilb-udp", "IPAddress": "internal-lb-ipv4", "IPProtocol": "UDP", "ports": [ "53" ], "loadBalancingScheme": "INTERNAL", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks/lb-subnet", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "backendService": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/backendServices/be-ilb-udp", "networkTier": "PREMIUM" }
Membuat load balancer ketiga
Buat aturan penerusan load balancer ketiga untuk menggunakan alamat IP internal statis yang direservasi.
gcloud
Buat aturan penerusan dengan protokol yang ditetapkan ke L3_DEFAULT
untuk menangani
semua traffic protokol IPv4 lainnya yang didukung. Gunakan alamat IP internal statis yang direservasi (internal-lb-ipv4
) sebagai alamat IP internal.
gcloud compute forwarding-rules create fr-ilb-l3-default \ --region=us-west1 \ --load-balancing-scheme=internal \ --network=lb-network \ --subnet=lb-subnet \ --address=internal-lb-ipv4 \ --ip-protocol=L3_DEFAULT \ --ports=ALL \ --backend-service=be-ilb-l3-default \ --backend-service-region=us-west1
API
Buat aturan penerusan dengan membuat permintaan POST
ke metode forwardingRules.insert
.
Ganti PROJECT_ID
dengan ID project Google Cloud Anda.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/forwardingRules { "name": "fr-ilb-l3-default", "IPAddress": "internal-lb-ipv4", "IPProtocol": "L3_DEFAULT", "ports": [ "ALL" ], "loadBalancingScheme": "INTERNAL", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks/lb-subnet", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "backendService": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/backendServices/be-ilb-l3-default", "networkTier": "PREMIUM" }
Menguji load balancer
Untuk menguji load balancer, ikuti langkah-langkah di bagian sebelumnya.
Langkah selanjutnya
- Untuk mempelajari konsep penting, lihat Ringkasan Load Balancer Jaringan passthrough internal.
- Untuk mempelajari cara mengonfigurasi failover, lihat Mengonfigurasi failover untuk Load Balancer Jaringan passthrough internal.
- Untuk mempelajari cara mengonfigurasi logging dan pemantauan untuk Load Balancer Jaringan passthrough internal, lihat Logging dan pemantauan Load Balancer Jaringan passthrough internal.
- Untuk mempelajari pemecahan masalah, lihat Memecahkan masalah Load Balancer Jaringan passthrough internal.
- Membersihkan penyiapan load balancing.