Mengonfigurasi layanan backend info yang dikelola pengguna

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

  1. Pastikan Anda memiliki peran pemilik atau editor project atau peran IAM Compute Engine berikut:

  2. Aktifkan API berikut: Compute Engine API dan Network Services API.

    Konsol

    1. Di konsol Google Cloud , buka halaman Enable access to APIs.

      Buka Mengaktifkan akses ke API

    2. Ikuti petunjuknya.

    gcloud

    Gunakan perintah gcloud services enable:

    gcloud services enable compute.googleapis.com networkservices.googleapis.com
    
  3. 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.

  4. Buat VM klien untuk pengujian.

  5. 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

    1. Di konsol Google Cloud , buka halaman Create an instance.

      Buka halaman Buat instance

      Tentukan nilai sampel berikut:

      • Nama: l7-ilb-backend2-vm
      • Tag: allow-ssh dan load-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'
        
    2. Buat grup instance tidak terkelola.

      Tentukan nilai sampel berikut:

      • Nama: l7-ilb-backend-service2-ig
      • Zona: us-west1-a
    3. Tambahkan VM baru ke grup instance.

      Untuk instance VM, tentukan l7-ilb-backend2-vm.

    4. Di konsol Google Cloud , buka halaman Load balancing.

      Buka Load balancing

    5. 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
    6. 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

    gcloud

    1. Buat instance VM. Gunakan perintah gcloud compute instances create dengan 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'
      
    2. Buat grup instance tidak terkelola. Gunakan perintah gcloud compute instance-groups unmanaged create dengan nilai sampel berikut:

      gcloud compute instance-groups unmanaged create l7-ilb-backend-service2-ig \
        --zone us-west1-a
      
    3. Tambahkan VM baru ke grup instance. Gunakan perintah gcloud compute instance-groups unmanaged add-instances dengan nilai sampel berikut:

      gcloud compute instance-groups unmanaged add-instances l7-ilb-backend-service2-ig \
        --zone=us-west1-a \
        --instances=l7-ilb-backend2-vm
      
    4. Buat layanan backend. Gunakan perintah gcloud compute backend-services create dengan 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
      
    5. Tambahkan backend ke layanan backend. Gunakan perintah gcloud compute backend-services add-backend dengan 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
      
    6. Tambahkan pencocok host ke peta URL layanan backend. Gunakan perintah gcloud compute url-maps add-path-matcher dengan 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:

  1. Buat instance virtual machine (VM) untuk layanan backend anotasi yang menjalankan server ekstensi Python contoh.

    Konsol

    Buat instance menggunakan image container.

    1. Di konsol Google Cloud , buka halaman Create an instance.

      Buka halaman Buat instance

    2. Tentukan nilai sampel berikut:

      • Nama: callouts-vm
      • Zona: us-west1-a
      • Network: lb-network
      • Subnetwork: backend-subnet
      • Tag: allow-ssh dan load-balanced-backend
      • Container image: us-docker.pkg.dev/service-extensions-samples/callouts/python-example-basic:main

    gcloud

    Buat instance menggunakan image container. Gunakan perintah gcloud compute instances create-with-container dengan 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
    
  2. Tambahkan VM ke grup instance tidak terkelola.

    Konsol

    Buat grup instance tidak terkelola.

    1. Di konsol Google Cloud , buka halaman Instance groups.

      Buka Instance groups

      Tentukan nilai sampel berikut:

      • Nama: callouts-ig
      • Zona: us-west1-a
    2. Tetapkan port untuk grup instance.

      Untuk Port mapping, tentukan nama dan nilai port berikut: http:80 dan grpc:443.

    3. Tambahkan VM baru ke grup instance.

      Untuk instance VM, tentukan callouts-vm.

    gcloud

    1. Buat grup instance tidak terkelola. Gunakan perintah gcloud compute instance-groups unmanaged create dengan nilai sampel berikut:

      gcloud compute instance-groups unmanaged create callouts-ig \
        --zone=us-west1-a
      
    2. Tetapkan port untuk grup instance. Gunakan perintah gcloud compute instance-groups unmanaged set-named-ports dengan nilai sampel berikut:

      gcloud compute instance-groups unmanaged set-named-ports callouts-ig \
        --named-ports=http:80,grpc:443 \
        --zone=us-west1-a
      
    3. Tambahkan instance VM baru ke grup instance tidak terkelola. Gunakan perintah gcloud compute instance-groups unmanaged add-instances dengan nilai sampel berikut:

      gcloud compute instance-groups unmanaged add-instances callouts-ig \
        --zone=us-west1-a \
        --instances=callouts-vm
      
  3. 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.

    1. Di konsol Google Cloud , buka halaman Backend Cloud Load Balancing.

      Buka Backend

    2. 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
    3. 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

    gcloud

    1. Buat health check HTTP dasar untuk instance. Gunakan perintah gcloud compute health-checks create http dengan nilai sampel berikut:

      gcloud compute health-checks create http callouts-hc \
        --region=us-west1 \
        --port=80
      
    2. 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
      
    3. Tambahkan grup instance dengan server ekstensi sebagai backend ke layanan backend. Grup instance menjalankan layanan ext_proc. Gunakan perintah gcloud compute backend-services add-backend dengan 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.

Langkah berikutnya