Halaman ini memberikan petunjuk untuk membuat Load Balancer Jaringan passthrough internal guna melakukan load balancing pada traffic untuk beberapa protokol.
Agar dapat mengonfigurasi load balancer untuk beberapa protokol, termasuk TCP dan UDP, buat aturan penerusan dengan protokol yang ditetapkan ke L3_DEFAULT
. Aturan
penerusan ini mengarah ke layanan backend dengan protokol yang ditetapkan ke
UNSPECIFIED
.
Dalam contoh ini, kami menggunakan satu Load Balancer Jaringan passthrough internal untuk mendistribusikan traffic di seluruh VM backend di region us-west1
. Load balancer ini 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 ringkasan lengkap tentang alat ini, baca ringkasan gcloud CLI. Anda dapat menemukan perintah yang terkait dengan load balancing di referensi API dan gcloud CLI.
Jika Anda belum pernah menjalankan gcloud CLI, jalankan perintah
gcloud init
terlebih dahulu untuk melakukan autentikasi. - Pelajari bash.
Izin
Untuk mendapatkan izin yang Anda perlukan guna menyelesaikan panduan ini, minta administrator Anda untuk memberi Anda peran IAM berikut pada project:
-
Untuk membuat resource load balancer:
Admin Load Balancer Compute (
roles/compute.loadBalancerAdmin
) -
Untuk membuat instance Compute Engine dan grup instance:
Admin Instance Compute (
roles/compute.instanceAdmin.v1
) -
Untuk membuat komponen jaringan:
Admin Jaringan Compute (
roles/compute.networkAdmin
)
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses.
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 Anda hanya ingin menangani lalu lintas IPv4. Namun, traffic IPv6 memerlukan subnet mode kustom. - Subnet single-stack (
stack-type
yang ditetapkan keIPv4
), yang diperlukan untuk traffic IPv4. Saat membuat subnet stack tunggal pada jaringan VPC mode kustom, Anda memilih rentang subnet IPv4 untuk subnet tersebut. Untuk traffic IPv6, kami memerlukan subnet dual-stack (stack-type
yang ditetapkan keIPv4_IPv6
). Saat membuat subnet dual stack pada jaringan VPC mode kustom, Anda memilih jenis akses IPv6 untuk subnet tersebut. 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 akan ditetapkan secara otomatis. Google menyediakan blok CIDR IPv6 dengan ukuran 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 zona. - 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 Jenis akses IPv6, 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 Subnet baru, masukkan informasi berikut:
- Name:
lb-subnet
- Region:
us-west1
- Jenis stack IP: IPv4 (stack tunggal)
- Rentang alamat IP:
10.1.2.0/24
- Name:
- 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 tanda
--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 traffic IPv4 saja, 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:
Membuat 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 masuk, yang berlaku untuk semua target dalam jaringan VPC, yang memungkinkan 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 masuk, berlaku untuk semua target dalam jaringan VPC, yang memungkinkan traffic dari sumber dalam rentang IPv6 yang dikonfigurasi di subnet. Aturan ini mengizinkan lalu lintas IPv6 yang masuk dari klien mana pun yang terletak di {i>subnet<i}.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 hanya dapat menentukan rentang IP sistem tempat Anda memulai sesi SSH. Contoh ini menggunakan tag targetallow-ssh
untuk mengidentifikasi VM yang harus diberi tag tersebut.fw-allow-health-check
: Aturan masuk, yang berlaku untuk instance yang mengalami load balancing, yang memungkinkan 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-health-check-ipv6
: Aturan masuk, yang berlaku untuk instance yang di-load balanced, yang memungkinkan traffic dari sistem health check Google Cloud (2600:2d00:1:b029::/64
). Contoh ini menggunakan tag targetallow-health-check-ipv6
untuk mengidentifikasi instance yang 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 TCP, UDP, dan ICMP IPv4 untuk menjangkau grup instance backend
ig-a
:- Klik Create firewall rule.
- Name:
fw-allow-lb-access
- Jaringan:
lb-network
- Prioritas:
1000
- Direction of traffic: Masuk
- Action on match: Izinkan
- Target: Semua instance dalam jaringan
- Filter sumber: Rentang IPv4
- Rentang IPv4 sumber:
10.1.2.0/24
- Protocols and ports: pilih Specified protocols and ports.
- Pilih TCP dan masukkan
ALL
. - Pilih UDP.
- Pilih Lainnya dan masukkan
ICMP
.
- Pilih TCP dan masukkan
Klik Create.
Untuk mengizinkan koneksi SSH masuk:
- Klik Create firewall rule.
- Name:
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
- Filter sumber: Rentang IPv4
- Rentang IPv4 sumber:
0.0.0.0/0
- Protocols and ports: pilih Specified protocols and ports, lalu ketik
tcp:22
.
Klik Create.
Agar traffic TCP, UDP, dan ICMP IPv6 dapat menjangkau grup instance backend
ig-a
:- Klik Create firewall rule.
- Name:
fw-allow-lb-access-ipv6
- Jaringan:
lb-network
- Prioritas:
1000
- Direction of traffic: Masuk
- Action on match: Izinkan
- Target: 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 dan masukkan
0-65535
. - Pilih UDP.
- Pilih Lainnya dan masukkan
58
untuk protokol ICMPv6.
- Pilih TCP dan masukkan
Klik Create.
Untuk mengizinkan health check IPv6 Google Cloud:
- Klik Create firewall rule.
- Name:
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
- Protokol dan port: Izinkan semua
Klik Create.
Untuk mengizinkan health check IPv4 Google Cloud:
- Klik Create firewall rule
- Name:
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
- Filter sumber: Rentang IPv4
- Rentang IPv4 sumber:
130.211.0.0/22
dan35.191.0.0/16
- Protokol dan port: Izinkan semua
Klik Create.
gcloud
Untuk mengizinkan traffic TCP IPv4 untuk mencapai 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
Agar traffic IPv6 dapat 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 harus membuat grup instance Compute Engine yang terkelola menurut zona dan menginstal server web Apache.
Untuk menangani traffic IPv4 dan IPv6, konfigurasikan VM backend menjadi
dual-stack. 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, baca bagian Ringkasan Load Balancer Jaringan passthrough internal: Aturan penerusan.
Jika Anda ingin menggunakan VM yang ada sebagai backend, perbarui 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.
Demi kemudahan instruksi, 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.
- Klik Create instance template.
- Untuk Name, masukkan
vm-a1
. - Pastikan Boot disk disetel ke image Debian, seperti Debian GNU/Linux 10 (buster). Petunjuk ini menggunakan perintah yang
hanya tersedia di Debian, seperti
apt-get
. - Klik Networking, disks, security, management, sole tenancy.
Klik Management dan 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
Klik Networking.
- Untuk Tag jaringan, tambahkan
allow-ssh
danallow-health-check-ipv6
. - Untuk Network interfaces, klik antarmuka default, lalu
konfigurasikan kolom berikut:
- Jaringan:
lb-network
- Subjaringan:
lb-subnet
- Jenis stack IP: IPv4 dan 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 10 (buster). Petunjuk ini menggunakan perintah yang
hanya tersedia di Debian, seperti
apt-get
. - Klik Networking, disks, security, management, sole tenancy.
Klik Management dan 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
Klik Networking.
- Untuk Tag jaringan, tambahkan
allow-ssh
danallow-health-check
. - Untuk Network interfaces, klik antarmuka default, lalu
konfigurasikan kolom berikut:
- Jaringan:
lb-network
- Subjaringan:
lb-subnet
- Jenis stack IP: IPv4 (stack tunggal)
- Jaringan:
- Untuk Tag jaringan, tambahkan
Klik Create.
Membuat grup instance terkelola. Buka halaman Grup instance di konsol Google Cloud.
- Klik Create grup instance.
- Pilih Grup instance terkelola baru (stateless). Untuk mengetahui 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 Autoscaling:
- 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 yang menginstal bash.
Buat template instance VM dengan server HTTP menggunakan 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-10 \ --image-project=debian-cloud \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html 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-10 \ --image-project=debian-cloud \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html sed -ire "s/^Listen 80$/Listen 8080/g" /etc/apache2/ports.conf systemctl restart apache2'
Buat grup instance terkelola di zona tersebut 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 akan 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
.Setel Zone ke
us-west1-a
.Klik Pengelolaan, keamanan, disk, jaringan, tenancy tunggal, lalu lakukan perubahan berikut:
- Klik Networking dan tambahkan
allow-ssh
ke Tag jaringan. - Di bagian Network interfaces, klik Edit, lakukan
perubahan berikut, lalu klik Done:
- Jaringan:
lb-network
- Subnet:
lb-subnet
- Jenis stack IP: IPv4 dan IPv6 (dual-stack)
- IP internal utama: Ephemeral (otomatis)
- IP Eksternal: Efemeral
- Jaringan:
- Klik Networking dan tambahkan
Klik Create.
gcloud
VM klien 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,
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-10 \ --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
.Klik Advanced options.
Klik Networking dan konfigurasikan kolom berikut:
- Untuk Tag jaringan, masukkan
allow-ssh
. - Untuk Network interfaces, pilih opsi berikut:
- Jaringan:
lb-network
- Subnet:
lb-subnet
- Jaringan:
- Untuk Tag jaringan, masukkan
Klik Create.
gcloud
VM klien 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,
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-10 \ --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
Membuat health check HTTP untuk port 80. Health check ini digunakan untuk memverifikasi kondisi backend di grup instance
ig-a
.gcloud compute health-checks create http hc-http-80 \ --region=us-west1 \ --port=80
Buat layanan backend dengan protokol yang disetel 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
Menghubungkan ke instance VM klien.
gcloud compute ssh vm-client-ipv6 --zone=us-west1-a
Jelaskan
fr-ilb-ipv6
aturan penerusan 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 efemeral 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 ini:curl -m 10 -s http://[fd20:1db0:b882:802:0:46:0:0]:80
gcloud:IPv4
Menghubungkan ke instance VM klien.
gcloud compute ssh vm-client --zone=us-west1-a
Jelaskan
fr-ilb
aturan penerusan IPv4.gcloud compute forwarding-rules describe fr-ilb --region=us-west1
Buat permintaan web ke load balancer dengan menggunakan
curl
untuk menghubungi alamat IP-nya. Ulangi permintaan tersebut sehingga Anda dapat melihat bahwa respons berasal dari VM backend yang berbeda. Nama VM yang menghasilkan respons ditampilkan dalam teks di 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 melayani 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
Menghubungkan ke instance VM klien.
gcloud compute ssh vm-client-ipv6 --zone=us-west1-a
Mencoba melakukan ping ke alamat IPv6 load balancer. Ganti
IPV6_ADDRESS
dengan alamat IPv6 efemeral 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
Menghubungkan ke instance VM klien.
gcloud compute ssh vm-client --zone=us-west1-a
Mencoba melakukan ping ke alamat IPv4 load balancer. Perhatikan bahwa Anda mendapatkan respons dan perintah
ping
berfungsi dalam contoh ini.ping 10.1.2.99
Output-nya 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 sebagai contoh. Dengan konfigurasi ini, beberapa aturan penerusan internal dapat menggunakan alamat IP yang sama dengan protokol dan port yang berbeda.
Backend dari load balancer contoh Anda harus tetap 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
Cadangkan alamat IPv4 internal statis
Cadangkan alamat IP internal statis untuk 10.1.2.99
dan tetapkan flag --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
yang
memiliki alamat IP. 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
Konfigurasi 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 pada 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
Membuat aturan penerusan untuk layanan backend. Gunakan alamat IP internal statis yang dicadangkan (
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 } }
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", "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 pada port 53
.
gcloud
Buat layanan backend dengan protokol yang disetel 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
Membuat aturan penerusan untuk layanan backend. Gunakan alamat IP internal statis yang dicadangkan (
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 dari load balancer ketiga untuk menggunakan alamat IP internal statis yang dicadangkan.
gcloud
Buat aturan penerusan dengan protokol yang ditetapkan ke L3_DEFAULT
untuk menangani semua traffic protokol IPv4 lain yang didukung. Gunakan alamat IP internal statis yang dicadangkan (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, baca 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 Monitoring 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.
- Bersihkan penyiapan load balancing.