Service Extensions memungkinkan Load Balancer Aplikasi yang didukung mengirim callout dari jalur pemrosesan data ke layanan backend callout yang dikelola oleh pengguna. Hal ini membantu Load Balancer Aplikasi menggunakan logika kustom di jalur pemrosesan. Halaman ini menjelaskan cara mengonfigurasi layanan backend info pengguna yang dikelola pengguna.
Untuk mengetahui ringkasan tentang ekstensi Load Balancer Aplikasi, lihat Ringkasan ekstensi Cloud Load Balancing.
Sebelum memulai
Pastikan Anda memiliki peran pemilik atau editor project atau peran IAM Compute Engine berikut:
- Untuk membuat instance:
compute.instanceAdmin.v1 - Untuk membuat komponen Cloud Load Balancing:
compute.networkAdmin
- Untuk membuat instance:
Aktifkan API berikut: Compute Engine API dan Network Services API.
Konsol
Di konsol Google Cloud , buka halaman Enable access to APIs.
Ikuti petunjuknya.
gcloud
Gunakan perintah
gcloud services enable:gcloud services enable compute.googleapis.com networkservices.googleapis.com
Buat dan konfigurasi Load Balancer Aplikasi yang mendukung ekstensi. Untuk contoh ini, siapkan Load Balancer Aplikasi internal regional dengan backend grup instance VM. Gunakan nilai sampel yang disebutkan.
Hanya untuk ekstensi rute. Siapkan layanan backend tambahan dan perbarui peta URL untuk menambahkan pencocok host yang merutekan traffic ke layanan backend ini untuk semua traffic dengan host HTTP yang cocok dengan kondisi yang ditentukan.
Konsol
Di konsol Google Cloud , buka halaman Create an instance.
Tentukan nilai sampel berikut:
- Nama:
l7-ilb-backend2-vm - Tag:
allow-sshdanload-balanced-backend - Zona:
us-west1-a - Network:
lb-network - Subnetwork:
backend-subnet - Gambar:
debian-11 - Keluarga:
debian-cloud Advanced options > Management > Automation:
'#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl echo "Page served from second backend service" | tee /var/www/html/index.html systemctl restart apache2'
- Nama:
Buat grup instance tidak terkelola.
Tentukan nilai sampel berikut:
- Nama:
l7-ilb-backend-service2-ig - Zona:
us-west1-a
- Nama:
Tambahkan VM baru ke grup instance.
Untuk instance VM, tentukan
l7-ilb-backend2-vm.Di konsol Google Cloud , buka halaman Load balancing.
Perbarui load balancer dengan membuat layanan backend dan menambahkan backend ke layanan tersebut.
Untuk layanan backend, tentukan nilai sampel berikut:
- Nama:
l7-ilb-backend-service2 - Protokol:
HTTP - Pemeriksaan kesehatan > Nama:
l7-ilb-basic-check - Pemeriksaan kesehatan > Region:
us-west1
Untuk backend, tentukan nilai sampel berikut:
- Grup instance:
l7-ilb-backend-service2-ig - Mode penyeimbangan:
Utilization
- Nama:
Tambahkan pencocok host ke peta URL layanan backend.
Tentukan nilai sampel berikut:
- Nama:
l7-ilb-map - Host:
service-extensions.com - Jalur:
callouts - Protokol:
HTTP - Backend:
l7-ilb-backend-service2
- Nama:
gcloud
Buat instance VM. Gunakan perintah
gcloud compute instances createdengan nilai sampel berikut:gcloud compute instances create l7-ilb-backend2-vm \ --zone=us-west1-a \ --network=lb-network \ --subnet=backend-subnet \ --tags=allow-ssh,load-balanced-backend \ --image-family=debian-11 \ --image-project=debian-cloud \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl echo "Page served from second backend service" | tee /var/www/html/index.html systemctl restart apache2'Buat grup instance tidak terkelola. Gunakan perintah
gcloud compute instance-groups unmanaged createdengan nilai sampel berikut:gcloud compute instance-groups unmanaged create l7-ilb-backend-service2-ig \ --zone us-west1-a
Tambahkan VM baru ke grup instance. Gunakan perintah
gcloud compute instance-groups unmanaged add-instancesdengan nilai sampel berikut:gcloud compute instance-groups unmanaged add-instances l7-ilb-backend-service2-ig \ --zone=us-west1-a \ --instances=l7-ilb-backend2-vm
Buat layanan backend. Gunakan perintah
gcloud compute backend-services createdengan nilai sampel berikut:gcloud compute backend-services create l7-ilb-backend-service2 \ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=HTTP \ --health-checks=l7-ilb-basic-check \ --health-checks-region=us-west1 \ --region=us-west1
Tambahkan backend ke layanan backend. Gunakan perintah
gcloud compute backend-services add-backenddengan nilai sampel berikut:gcloud compute backend-services add-backend l7-ilb-backend-service2 \ --balancing-mode=UTILIZATION \ --instance-group=l7-ilb-backend-service2-ig \ --instance-group-zone=us-west1-a \ --region=us-west1
Tambahkan pencocok host ke peta URL layanan backend. Gunakan perintah
gcloud compute url-maps add-path-matcherdengan nilai sampel berikut:gcloud compute url-maps add-path-matcher l7-ilb-map \ --path-matcher-name=callouts \ --default-service=l7-ilb-backend-service2 \ --new-hosts=service-extensions.com \ --region=us-west1
Menyiapkan layanan backend info
Untuk contoh ini, server ekstensi berbasis Python dasar yang menerapkan
ext_proc gRPC API Envoy tersedia. Penampung Docker dengan server ini ada
di us-docker.pkg.dev/service-extensions-samples/callouts/python-example-basic:main
di repositori GitHub Service Extensions
dari Google Cloud. Repositori ini berisi beberapa contoh Python dan Go lainnya dari server ext_proc untuk melakukan tugas seperti mutasi header dan mutasi isi.
Untuk membuat dan menyiapkan layanan backend info, ikuti langkah-langkah berikut:
Buat instance virtual machine (VM) untuk layanan backend anotasi yang menjalankan server ekstensi Python contoh.
Konsol
Buat instance menggunakan image container.
Di konsol Google Cloud , buka halaman Create an instance.
Tentukan nilai sampel berikut:
- Nama:
callouts-vm - Zona:
us-west1-a - Network:
lb-network - Subnetwork:
backend-subnet - Tag:
allow-sshdanload-balanced-backend - Container image:
us-docker.pkg.dev/service-extensions-samples/callouts/python-example-basic:main
- Nama:
gcloud
Buat instance menggunakan image container. Gunakan perintah
gcloud compute instances create-with-containerdengan nilai sampel berikut:gcloud compute instances create-with-container callouts-vm \ --container-image=us-docker.pkg.dev/service-extensions-samples/callouts/python-example-basic:main \ --network=lb-network \ --subnet=backend-subnet \ --zone=us-west1-a \ --tags=allow-ssh,load-balanced-backend
Tambahkan VM ke grup instance tidak terkelola.
Konsol
Buat grup instance tidak terkelola.
Di konsol Google Cloud , buka halaman Instance groups.
Tentukan nilai sampel berikut:
- Nama:
callouts-ig - Zona:
us-west1-a
- Nama:
Tetapkan port untuk grup instance.
Untuk Port mapping, tentukan nama dan nilai port berikut:
http:80dangrpc:443.Tambahkan VM baru ke grup instance.
Untuk instance VM, tentukan
callouts-vm.
gcloud
Buat grup instance tidak terkelola. Gunakan perintah
gcloud compute instance-groups unmanaged createdengan nilai sampel berikut:gcloud compute instance-groups unmanaged create callouts-ig \ --zone=us-west1-a
Tetapkan port untuk grup instance. Gunakan perintah
gcloud compute instance-groups unmanaged set-named-portsdengan nilai sampel berikut:gcloud compute instance-groups unmanaged set-named-ports callouts-ig \ --named-ports=http:80,grpc:443 \ --zone=us-west1-a
Tambahkan instance VM baru ke grup instance tidak terkelola. Gunakan perintah
gcloud compute instance-groups unmanaged add-instancesdengan nilai sampel berikut:gcloud compute instance-groups unmanaged add-instances callouts-ig \ --zone=us-west1-a \ --instances=callouts-vm
Buat layanan backend callout dan tambahkan backend. Seperti server backend lainnya, server panggilan balik mungkin memerlukan aturan firewall untuk mengizinkan traffic proxy.
Konsol
Buat layanan backend panggilan yang menggunakan protokol HTTP/2 dan memiliki health check HTTP.
Di konsol Google Cloud , buka halaman Backend Cloud Load Balancing.
Tambahkan layanan backend regional dengan nilai sampel berikut:
- Nama:
l7-ilb-callout-service - Region:
us-west1 - Jenis load balancer:
Regional external Application Load Balancer (EXTERNAL_MANAGED) - Protokol:
HTTP2 - Nama port:
grpc - Pemeriksaan kesehatan > Nama:
callouts-hc - Health check > Port number:
80 - Kebijakan keamanan backend Cloud Armor:
None
- Nama:
Tambahkan grup instance dengan server ekstensi sebagai backend ke layanan backend. Grup instance menjalankan layanan
ext_proc.Tentukan nilai sampel berikut:
- Grup instance:
callouts-ig - Mode penyeimbangan:
Utilization
- Grup instance:
gcloud
Buat health check HTTP dasar untuk instance. Gunakan perintah
gcloud compute health-checks create httpdengan nilai sampel berikut:gcloud compute health-checks create http callouts-hc \ --region=us-west1 \ --port=80
Buat layanan backend panggilan yang menggunakan protokol HTTP/2. Gunakan perintah
gcloud compute backend-services create.gcloud compute backend-services create l7-ilb-callout-service \ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=HTTP2 \ --port-name=grpc \ --health-checks=callouts-hc \ --health-checks-region=us-west1 \ --region=us-west1
Tambahkan grup instance dengan server ekstensi sebagai backend ke layanan backend. Grup instance menjalankan layanan
ext_proc. Gunakan perintahgcloud compute backend-services add-backenddengan nilai sampel berikut:gcloud compute backend-services add-backend l7-ilb-callout-service \ --balancing-mode=UTILIZATION \ --instance-group=callouts-ig \ --instance-group-zone=us-west1-a \ --region=us-west1
Setelah menyiapkan layanan backend, Anda dapat mengonfigurasi ekstensi rute, otorisasi, dan traffic.