Panduan ini memberikan petunjuk untuk membuat deployment Network Load Balancer passthrough eksternal berbobot untuk setiap instance virtual machine (VM) menggunakan layanan backend regional.
Dalam tutorial ini, Anda akan membuat grup instance dengan tiga instance VM dan menetapkan
bobot untuk setiap instance. Anda membuat health check HTTP untuk melaporkan bobot instance backend. Load balancing berbobot diaktifkan di layanan
backend dengan kebijakan load balancer lokalitas sebagai
WEIGHTED_MAGLEV
.
Sebelum memulai
- Baca Ringkasan Load Balancer Jaringan passthrough eksternal berbasis layanan backend.
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 Google Cloud CLI sebelumnya, jalankan
gcloud init
terlebih dahulu untuk melakukan autentikasi.Aktifkan compute API.
gcloud services enable compute.googleapis.com
Membuat jaringan VPC, subnet, dan aturan firewall
Buat jaringan VPC, subnet, dan aturan firewall traffic masuk untuk mengizinkan koneksi ke VM backend load balancer Anda.
Buat jaringan VPC dan subnet.
a. Untuk membuat jaringan VPC, jalankan perintah
gcloud compute networks create
:gcloud compute networks create NETWORK_NAME --subnet-mode custom
b. Dalam contoh ini, rentang alamat IPv4 utama subnet adalah
10.10.0.0/24
. Untuk membuat subnet, jalankan perintahgcloud compute networks subnets create
:gcloud compute networks subnets create SUBNET_NAME \ --network=NETWORK_NAME \ --range=10.10.0.0/24 \ --region=us-central1
Ganti kode berikut:
NETWORK_NAME
: nama jaringan VPC yang akan dibuat.SUBNET_NAME
: nama subnetwork yang akan dibuat.
Buat aturan firewall izin masuk untuk mengizinkan paket yang dikirim ke port TCP tujuan 80 dan 443 dikirim ke VM backend. Dalam contoh ini, aturan firewall mengizinkan koneksi dari alamat IP sumber mana pun. Aturan firewall berlaku untuk VM dengan tag jaringan
network-lb-tag
.Untuk membuat aturan firewall, jalankan perintah
gcloud compute firewall-rules create
:gcloud compute firewall-rules create FIREWALL_RULE_NAME \ --direction=INGRESS \ --priority=1000 \ --network=NETWORK_NAME \ --action=ALLOW \ --rules=tcp:80,tcp:443 \ --source-ranges=0.0.0.0/0 \ --target-tags=network-lb-tag
Ganti
FIREWALL_RULE_NAME
dengan nama aturan firewall yang akan dibuat.
Membuat instance VM dan menetapkan bobot
Buat tiga instance VM dan tetapkan bobot:
Konfigurasikan tiga instance VM backend untuk menampilkan bobot di header
X-Load-Balancing-Endpoint-Weight
dengan respons HTTP. Untuk tutorial ini, Anda akan mengonfigurasi satu instance backend untuk melaporkan bobot nol, instance backend kedua untuk melaporkan bobot 100, dan instance backend ketiga untuk melaporkan bobot 900.Untuk membuat instance, jalankan perintah
gcloud compute instances create
:gcloud compute instances create instance-0 \ --zone=us-central1-a \ --tags=network-lb-tag \ --image-family=debian-12 \ --image-project=debian-cloud \ --subnet=SUBNET_NAME \ --metadata=load-balancing-weight=0,startup-script='#! /bin/bash apt-get update apt-get install apache2 -y ln -sr /etc/apache2/mods-available/headers.load /etc/apache2/mods-enabled/headers.load vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://169.254.169.254/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html lb_weight="$(curl -H "Metadata-Flavor:Google" \ http://169.254.169.254/computeMetadata/v1/instance/attributes/load-balancing-weight)" echo "Header set X-Load-Balancing-Endpoint-Weight \"$lb_weight\"" | \ tee /etc/apache2/conf-enabled/headers.conf systemctl restart apache2'
gcloud compute instances create instance-100 \ --zone=us-central1-a \ --tags=network-lb-tag \ --image-family=debian-12 \ --image-project=debian-cloud \ --subnet=SUBNET_NAME \ --metadata=load-balancing-weight=100,startup-script='#! /bin/bash apt-get update apt-get install apache2 -y ln -sr /etc/apache2/mods-available/headers.load /etc/apache2/mods-enabled/headers.load vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://169.254.169.254/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html lb_weight="$(curl -H "Metadata-Flavor:Google" \ http://169.254.169.254/computeMetadata/v1/instance/attributes/load-balancing-weight)" echo "Header set X-Load-Balancing-Endpoint-Weight \"$lb_weight\"" | \ tee /etc/apache2/conf-enabled/headers.conf systemctl restart apache2'
gcloud compute instances create instance-900 \ --zone=us-central1-a \ --tags=network-lb-tag \ --image-family=debian-12 \ --image-project=debian-cloud \ --subnet=SUBNET_NAME \ --metadata=load-balancing-weight=900,startup-script='#! /bin/bash apt-get update apt-get install apache2 -y ln -sr /etc/apache2/mods-available/headers.load /etc/apache2/mods-enabled/headers.load vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://169.254.169.254/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html lb_weight="$(curl -H "Metadata-Flavor:Google" \ http://169.254.169.254/computeMetadata/v1/instance/attributes/load-balancing-weight)" echo "Header set X-Load-Balancing-Endpoint-Weight \"$lb_weight\"" | \ tee /etc/apache2/conf-enabled/headers.conf systemctl restart apache2'
Membuat grup instance
Dalam tutorial ini, Anda akan memberikan petunjuk untuk membuat grup instance tidak terkelola
yang berisi ketiga instance VM(instance-0
, instance-100
, dan instance-900
).
Untuk membuat grup instance, jalankan perintah
gcloud compute instance-groups unmanaged create
:gcloud compute instance-groups unmanaged create INSTANCE_GROUP \ --zone=us-central1-a
gcloud compute instance-groups unmanaged add-instances INSTANCE_GROUP \ --zone=us-central1-a \ --instances=instance-0,instance-100,instance-900
Ganti
INSTANCE_GROUP
dengan nama grup instance yang akan dibuat.
Membuat health check HTTP
Dalam tutorial ini, Anda akan memberikan petunjuk untuk membuat health check HTTP guna membaca respons HTTP yang berisi bobot VM backend."
Untuk membuat health check HTTP, jalankan perintah
gcloud compute health-checks create
:gcloud compute health-checks create http HTTP_HEALTH_CHECK_NAME \ --region=us-central1
Ganti
HTTP_HEALTH_CHECK_NAME
dengan nama pemeriksaan status HTTP yang akan dibuat.
Buat layanan backend
Contoh berikut memberikan petunjuk untuk membuat layanan backend eksternal regional yang dikonfigurasi untuk menggunakan load balancing berbobot.
Buat layanan backend dengan health check HTTP dan tetapkan kebijakan load balancer lokalitas ke
WEIGHTED_MAGLEV
.Untuk membuat layanan backend, jalankan perintah
gcloud compute backend-services create
:gcloud compute backend-services create BACKEND_SERVICE_NAME \ --load-balancing-scheme=external \ --protocol=tcp \ --region=us-central1 \ --health-checks=HTTP_HEALTH_CHECK_NAME \ --health-checks-region=us-central1 \ --locality-lb-policy=WEIGHTED_MAGLEV
Ganti
BACKEND_SERVICE_NAME
dengan nama layanan backend yang akan dibuat.
Tambahkan grup instance ke layanan backend.
Untuk menambahkan grup instance, jalankan perintah
gcloud compute backend-services add-backend
:gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --instance-group=INSTANCE_GROUP \ --instance-group-zone=us-central1-a \ --region=us-central1
Cadangkan alamat IP eksternal regional untuk load balancer.
Untuk mencadangkan satu atau beberapa alamat IP, jalankan perintah
gcloud compute addresses create
:gcloud compute addresses create ADDRESS_NAME \ --region us-central1
Ganti
ADDRESS_NAME
dengan nama alamat IP yang akan dibuat.Gunakan perintah
compute addresses describe
untuk melihat hasilnya. Perhatikan alamat IP eksternal statis yang dipesan (IP_ADDRESS
).gcloud compute addresses describe ADDRESS_NAME
Buat aturan penerusan menggunakan alamat IP eksternal regional yang dicadangkan, yaitu
IP_ADDRESS
. Hubungkan aturan penerusan ke layanan backend.Untuk membuat aturan penerusan, jalankan perintah
gcloud compute forwarding-rules create
:gcloud compute forwarding-rules create FORWARDING_RULE \ --region=us-central1 \ --ports=80 \ --address=IP_ADDRESS \ --backend-service=BACKEND_SERVICE_NAME
Ganti kode berikut:
FORWARDING_RULE
: nama aturan penerusan yang akan dibuat.IP_ADDRESS
: alamat IP yang akan ditetapkan ke instance. Gunakan alamat IP eksternal statis yang dicadangkan, bukan nama alamat.
Memverifikasi bobot backend menggunakan API layanan backend
Pastikan bobot backend dilaporkan dengan benar ke health check HTTP.
Untuk mendapatkan bobot backend (beserta status responsivitas) dari layanan backend, jalankan perintah
gcloud compute backend-services get-health
:gcloud compute backend-services get-health BACKEND_SERVICE_NAME \ --region=us-central1
Outputnya adalah sebagai berikut:
backend: https://www.googleapis.com/compute/projects/project-name/{project}/zones/us-central1-a/instanceGroups/{instance-group-name} status: healthStatus: - forwardingRule: https://www.googleapis.com/compute/projects/{project}/regions/us-central1/forwardingRules/{firewall-rule-name} forwardingRuleIp: 34.135.46.66 healthState: HEALTHY instance: https://www.googleapis.com/compute/projects/{project}/zones/us-central1-a/instances/instance-0 ipAddress: 10.10.0.5 port: 80 weight: '0' - forwardingRule: https://www.googleapis.com/compute/projects/{project}/regions/us-central1/forwardingRules/{firewall-rule-name} forwardingRuleIp: 34.135.46.66 healthState: HEALTHY instance: https://www.googleapis.com/compute/projects/{project}/zones/us-central1-a/instances/instance-100 ipAddress: 10.10.0.6 port: 80 weight: '100' - forwardingRule: https://www.googleapis.com/compute/projects/{project}/regions/us-central1/forwardingRules/{firewall-rule-name} forwardingRuleIp: 34.135.46.66 healthState: HEALTHY instance: https://www.googleapis.com/compute/projects/{project}/zones/us-central1-a/instances/instance-900 ipAddress: 10.10.0.7 port: 80 weight: '900' kind: compute#backendServiceGroupHealth