Menyiapkan Load Balancer Aplikasi internal lintas region dengan konektivitas hybrid

Halaman ini menunjukkan cara men-deploy Load Balancer Aplikasi internal lintas region untuk melakukan load balancing traffic ke endpoint jaringan yang berada di lokal atau di cloud publik lainnya dan dapat dijangkau menggunakan konektivitas hybrid.

Jika Anda belum melakukannya, tinjau Ringkasan NEG konektivitas hybrid untuk memahami persyaratan jaringan guna menyiapkan load balancing hybrid.

Ringkasan penyiapan

Contoh ini menyiapkan Load Balancer Aplikasi internal lintas region untuk backend NEG konektivitas zona dan hybrid campuran, seperti yang ditunjukkan pada gambar berikut:

Contoh Load Balancer Aplikasi internal lintas-region untuk backend NEG konektivitas zonal dan hybrid campuran.
Contoh Load Balancer Aplikasi internal lintas region untuk backend NEG konektivitas zonal dan campuran (klik untuk memperbesar).

Anda harus mengonfigurasi konektivitas hybrid sebelum menyiapkan deployment load balancing hybrid. Bergantung pada pilihan produk konektivitas hybrid Anda, gunakan Cloud VPN atau Cloud Interconnect (Dedicated atau Partner).

Menyiapkan resource sertifikat SSL

Buat resource sertifikat SSL Pengelola Sertifikat seperti yang dijelaskan dalam hal berikut:

Sebaiknya gunakan sertifikat yang dikelola Google.

Izin

Untuk menyiapkan load balancing hybrid, Anda harus memiliki izin berikut:

  • Di Google Cloud

    • Izin untuk membuat konektivitas hybrid antara Google Cloud dan lingkungan lokal Anda atau lingkungan cloud lainnya. Untuk daftar izin yang diperlukan, lihat dokumentasi produk Network Connectivity yang relevan.
    • Izin untuk membuat NEG konektivitas hybrid dan load balancer. Peran Admin Load Balancer Compute (roles/compute.loadBalancerAdmin) berisi izin yang diperlukan untuk melakukan tugas yang dijelaskan dalam panduan ini.
  • Di lingkungan lokal atau lingkungan cloud non-Google Cloud lainnya

    • Izin untuk mengonfigurasi endpoint jaringan yang memungkinkan layanan di lingkungan lokal atau lingkungan cloud lainnya dapat dijangkau dari Google Cloud menggunakan kombinasi IP:Port. Untuk informasi selengkapnya, hubungi administrator jaringan lingkungan Anda.
    • Izin untuk membuat aturan firewall di lingkungan lokal atau lingkungan cloud lainnya agar pemeriksaan health check Google dapat menjangkau endpoint.

Selain itu, untuk menyelesaikan petunjuk di halaman ini, Anda perlu membuat NEG konektivitas hybrid, load balancer, dan NEG zona (serta endpoint-nya) untuk berfungsi sebagai backend berbasis Google Cloud untuk load balancer.

Anda harus menjadi Pemilik atau Editor project, atau memiliki peran IAM Compute Engine berikut.

Tugas Peran yang diperlukan
Membuat komponen jaringan, subnet, dan load balancer Compute Network Admin (roles/compute.networkAdmin)
Menambahkan dan menghapus aturan firewall Compute Security Admin (roles/compute.securityAdmin)
Membuat instance Compute Instance Admin (roles/compute.instanceAdmin)

Membuat konektivitas hybrid

Lingkungan Google Cloud dan lokal Anda atau lingkungan cloud lainnya harus terhubung melalui konektivitas hybrid menggunakan lampiran VLAN Cloud Interconnect atau tunnel Cloud VPN dengan Cloud Router. Sebaiknya gunakan koneksi dengan ketersediaan tinggi.

Cloud Router yang diaktifkan dengan perutean dinamis global mempelajari endpoint tertentu melalui Border Gateway Protocol (BGP) dan memprogramnya ke dalam jaringan VPC Google Cloud Anda. Pemilihan rute dinamis regional tidak didukung. Rute statis juga tidak didukung.

Jaringan VPC yang Anda gunakan untuk mengonfigurasi Cloud Interconnect atau Cloud VPN adalah jaringan yang sama dengan yang Anda gunakan untuk mengonfigurasi deployment load balancing hybrid. Pastikan rentang CIDR subnet jaringan VPC Anda tidak bertentangan dengan rentang CIDR jarak jauh. Jika alamat IP tumpang-tindih, rute subnet akan diprioritaskan daripada konektivitas jarak jauh.

Untuk mengetahui petunjuknya, lihat dokumentasi berikut:

Menyiapkan lingkungan Anda yang berada di luar Google Cloud

Lakukan langkah-langkah berikut untuk menyiapkan lingkungan lokal atau lingkungan cloud lainnya untuk load balancing campuran:

  • Konfigurasikan endpoint jaringan untuk mengekspos layanan on-premise ke Google Cloud (IP:Port).
  • Konfigurasikan aturan firewall di lingkungan lokal atau lingkungan cloud lainnya.
  • Konfigurasikan Cloud Router untuk mengiklankan rute tertentu yang diperlukan ke lingkungan pribadi Anda.

Menyiapkan endpoint jaringan

Setelah menyiapkan konektivitas hybrid, Anda akan mengonfigurasi satu atau beberapa endpoint jaringan dalam lingkungan lokal atau lingkungan cloud lainnya yang dapat dijangkau melalui Cloud Interconnect atau Cloud VPN menggunakan kombinasi IP:port. Kombinasi IP:port ini dikonfigurasi sebagai satu atau beberapa endpoint untuk NEG konektivitas campuran yang dibuat di Google Cloud nanti dalam proses ini.

Jika ada beberapa jalur ke endpoint IP, pemilihan rute akan mengikuti perilaku yang dijelaskan dalam ringkasan Cloud Router.

Menyiapkan aturan firewall

Aturan firewall berikut harus dibuat di lingkungan lokal atau lingkungan cloud lainnya:

  • Buat aturan firewall izinkan traffic masuk di lingkungan lokal atau cloud lainnya untuk mengizinkan traffic dari subnet khusus proxy wilayah untuk menjangkau endpoint.
  • Mencantumkan rentang pemeriksaan health check Google dalam daftar yang diizinkan tidak diperlukan untuk NEG hibrida. Namun, jika Anda menggunakan kombinasi NEG campuran dan zonal dalam satu layanan backend, Anda harus mengizinkan rentang probe pemeriksaan kesehatan Google untuk NEG zonal.

Konfigurasikan Cloud Router untuk mengumumkan rentang IP kustom berikut ke lingkungan lokal atau lingkungan cloud lainnya:

  • Rentang subnet khusus proxy region.

Menyiapkan lingkungan Google Cloud

Untuk langkah-langkah berikut, pastikan Anda menggunakan jaringan VPC yang sama (disebut NETWORK dalam prosedur ini) yang digunakan untuk mengonfigurasi konektivitas hybrid di antara lingkungan.

Selain itu, pastikan region yang digunakan (disebut REGION_A dan REGION_B dalam prosedur ini) sama dengan region yang digunakan untuk membuat tunnel Cloud VPN atau lampiran VLAN Cloud Interconnect.

Secara opsional, Anda dapat mengonfigurasi kebijakan pemilihan rute DNS jenis GEO untuk merutekan traffic klien ke VIP load balancer di region yang paling dekat dengan klien selama pemadaman regional.

Mengonfigurasi subnet backend

Gunakan subnet ini untuk membuat backend NEG zonal load balancer:

Konsol

  1. Di Konsol Google Cloud, buka halaman jaringan VPC.

    Buka jaringan VPC

  2. Buka jaringan yang digunakan untuk mengonfigurasi konektivitas hybrid di antara lingkungan.

  3. Di bagian Subnet:

    • Setel Subnet creation mode ke Custom.
    • Di bagian New subnet, masukkan informasi berikut:
      • Berikan Name untuk subnet.
      • Pilih Region: REGION_A
      • Masukkan rentang alamat IP.
    • Klik Done.
  4. Klik Create.

  5. Untuk menambahkan lebih banyak subnet di region yang berbeda, klik Add subnet dan ulangi langkah-langkah sebelumnya untuk REGION_B

gcloud

  1. Buat subnet di jaringan yang digunakan untuk mengonfigurasi konektivitas hybrid di antara lingkungan.

    gcloud compute networks subnets create SUBNET_A \
        --network=NETWORK \
        --range=LB_SUBNET_RANGE1 \
        --region=REGION_A
    
    gcloud compute networks subnets create SUBNET_B \
        --network=NETWORK \
        --range=LB_SUBNET_RANGE2 \
        --region=REGION_B
    

API

Buat permintaan POST ke metode subnetworks.insert. Ganti PROJECT_ID dengan project ID Anda.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_A/subnetworks

{
 "name": "SUBNET_A",
 "network": "projects/PROJECT_ID/global/networks/NETWORK",
 "ipCidrRange": "LB_SUBNET_RANGE1",
 "region": "projects/PROJECT_ID/regions/REGION_A",
}

Buat permintaan POST ke metode subnetworks.insert. Ganti PROJECT_ID dengan project ID Anda.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_B/subnetworks

{
 "name": "SUBNET_B",
 "network": "projects/PROJECT_ID/global/networks/NETWORK",
 "ipCidrRange": "LB_SUBNET_RANGE2",
 "region": "projects/PROJECT_ID/regions/REGION_B",
}

Ganti kode berikut:

  • SUBNET_A dan SUBNET_B: nama subnet
  • LB_SUBNET_RANGE1 dan LB_SUBNET_RANGE2: rentang alamat IP untuk subnet
  • REGION_A dan REGION_B: region tempat Anda mengonfigurasi load balancer

Mengonfigurasi subnet khusus proxy

Subnet khusus proxy menyediakan kumpulan alamat IP yang digunakan Google untuk menjalankan proxy Envoy atas nama Anda. Proxy menghentikan koneksi dari klien dan membuat koneksi baru ke backend.

Subnet khusus proxy ini digunakan oleh semua load balancer regional berbasis Envoy di region yang sama pada jaringan VPC. Hanya boleh ada satu subnet khusus proxy yang aktif untuk tujuan tertentu, per wilayah, per jaringan.

Konsol

Jika menggunakan konsol Google Cloud, Anda dapat menunggu dan membuat subnet khusus proxy nanti di halaman Load balancing.

Jika Anda ingin membuat subnet khusus proxy sekarang, gunakan langkah-langkah berikut:

  1. Di konsol Google Cloud, buka halaman jaringan VPC.

    Buka jaringan VPC

  2. Klik nama jaringan VPC.
  3. Di tab Subnets, klik Add subnet.
  4. Berikan Nama untuk subnet khusus proxy.
  5. Dalam daftar Region, pilih REGION_A.
  6. Di daftar Tujuan, pilih Proxy Terkelola Lintas Wilayah.
  7. Di kolom IP address range, masukkan 10.129.0.0/23.
  8. Klik Tambahkan.

Membuat subnet khusus proxy di REGION_B

  1. Klik Tambahkan subnet.
  2. Berikan Nama untuk subnet khusus proxy.
  3. Dalam daftar Region, pilih REGION_B.
  4. Di daftar Tujuan, pilih Proxy Terkelola Lintas Wilayah.
  5. Di kolom IP address range, masukkan 10.130.0.0/23.
  6. Klik Tambahkan.

gcloud

Buat subnet khusus proxy dengan perintah gcloud compute networks subnets create.

    gcloud compute networks subnets create PROXY_SN_A \
        --purpose=GLOBAL_MANAGED_PROXY \
        --role=ACTIVE \
        --region=REGION_A \
        --network=NETWORK \
        --range=PROXY_ONLY_SUBNET_RANGE1
    
    gcloud compute networks subnets create PROXY_SN_B \
        --purpose=GLOBAL_MANAGED_PROXY \
        --role=ACTIVE \
        --region=REGION_B \
        --network=NETWORK \
        --range=PROXY_ONLY_SUBNET_RANGE2
    

Ganti kode berikut:

  • PROXY_SN_A dan PROXY_SN_B: nama subnet khusus proxy
  • PROXY_ONLY_SUBNET_RANGE1 dan PROXY_ONLY_SUBNET_RANGE2: rentang alamat IP untuk subnet khusus proxy
  • REGION_A dan REGION_B: region tempat Anda mengonfigurasi load balancer

API

Buat subnet khusus proxy dengan metode subnetworks.insert, dengan mengganti PROJECT_ID dengan project ID Anda.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_A/subnetworks

    {
      "name": "PROXY_SN_A",
      "ipCidrRange": "PROXY_ONLY_SUBNET_RANGE1",
      "network": "projects/PROJECT_ID/global/networks/NETWORK",
      "region": "projects/PROJECT_ID/regions/REGION_A",
      "purpose": "GLOBAL_MANAGED_PROXY",
      "role": "ACTIVE"
    }
  
    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_B/subnetworks

    {
      "name": " PROXY_SN_B",
      "ipCidrRange": "PROXY_ONLY_SUBNET_RANGE2",
      "network": "projects/PROJECT_ID/global/networks/NETWORK",
      "region": "projects/PROJECT_ID/regions/REGION_B",
      "purpose": "GLOBAL_MANAGED_PROXY",
      "role": "ACTIVE"
    }
  

Membuat aturan firewall

Dalam contoh ini, Anda akan membuat aturan firewall berikut untuk backend NEG zona di Google Cloud:

  • 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 dan 35.191.0.0/16). Contoh ini menggunakan tag target allow-health-check untuk mengidentifikasi NEG zonal yang harus diterapkan dengan tag tersebut.
  • fw-allow-ssh: Aturan ingress yang mengizinkan 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 akan memulai sesi SSH. Contoh ini menggunakan tag target allow-ssh untuk mengidentifikasi instance virtual machine (VM) tempat tag tersebut harus diterapkan.
  • fw-allow-proxy-only-subnet: Aturan ingress yang mengizinkan koneksi dari subnet khusus proxy untuk menjangkau backend NEG zona.

Konsol

  1. Di Konsol Google Cloud, buka halaman Firewall policies.

    Buka Kebijakan firewall

  2. Klik Create firewall rule untuk membuat aturan yang mengizinkan traffic dari pemeriksaan health check:

    1. Masukkan Nama fw-allow-health-check.
    2. Untuk Network, pilih NETWORK.
    3. Untuk Target, pilih Tag target yang ditentukan.
    4. Isi kolom Target tags dengan allow-health-check.
    5. Tetapkan Source filter ke IPv4 ranges.
    6. Tetapkan Source IPv4 ranges ke 130.211.0.0/22 dan 35.191.0.0/16.
    7. Untuk Protocols and ports, pilih Specified protocols and ports.
    8. Pilih TCP, lalu masukkan 80 untuk nomor port.
    9. Klik Create.
  3. Klik Create firewall rule lagi untuk membuat aturan yang mengizinkan koneksi SSH yang masuk:

    1. Nama: fw-allow-ssh
    2. Jaringan: NETWORK
    3. Prioritas: 1000
    4. Direction of traffic: masuk
    5. Tindakan terhadap kecocokan: izinkan
    6. Targets: Tag target yang ditentukan
    7. Tag target: allow-ssh
    8. Filter sumber: Rentang IPv4
    9. Rentang IPv4 sumber: 0.0.0.0/0
    10. Protocols and ports: Pilih Specified protocols and ports.
    11. Pilih TCP, lalu masukkan 22 untuk nomor port.
    12. Klik Create.
  4. Klik Create firewall rule lagi untuk membuat aturan yang mengizinkan koneksi masuk dari subnet khusus proxy:

    1. Nama: fw-allow-proxy-only-subnet
    2. Jaringan: NETWORK
    3. Prioritas: 1000
    4. Direction of traffic: masuk
    5. Tindakan terhadap kecocokan: izinkan
    6. Targets: Tag target yang ditentukan
    7. Tag target: allow-proxy-only-subnet
    8. Filter sumber: Rentang IPv4
    9. Rentang IPv4 sumber: PROXY_ONLY_SUBNET_RANGE1 dan PROXY_ONLY_SUBNET_RANGE2
    10. Protocols and ports: Pilih Specified protocols and ports
    11. Pilih TCP, lalu masukkan 80 untuk nomor port.
    12. Klik Create.

gcloud

  1. Buat aturan fw-allow-health-check-and-proxy untuk mengizinkan health check Google Cloud menjangkau instance backend di port TCP 80:

    gcloud compute firewall-rules create fw-allow-health-check \
        --network=NETWORK \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-health-check \
        --source-ranges=130.211.0.0/22,35.191.0.0/16 \
        --rules=tcp:80
    
  2. Buat aturan firewall fw-allow-ssh untuk mengizinkan konektivitas SSH ke VM dengan tag jaringan allow-ssh. Saat Anda menghapus source-ranges, Google Cloud akan menafsirkan aturan sebagai sumber apa pun.

    gcloud compute firewall-rules create fw-allow-ssh \
        --network=NETWORK \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-ssh \
        --rules=tcp:22
    
  3. Buat aturan firewall izinkan masuk untuk subnet khusus proxy agar load balancer dapat berkomunikasi dengan instance backend di port TCP 80:

    gcloud compute firewall-rules create fw-allow-proxy-only-subnet \
        --network=NETWORK \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-proxy-only-subnet \
        --source-ranges=PROXY_ONLY_SUBNET_RANGE1,PROXY_ONLY_SUBNET_RANGE2 \
        --rules=tcp:80
    

Menyiapkan NEG zona

Untuk backend berbasis Google Cloud, sebaiknya konfigurasikan beberapa NEG zonaonal di region yang sama dengan tempat Anda mengonfigurasi konektivitas hibrida.

Untuk contoh ini, siapkan NEG zonal (dengan endpoint jenis GCE_VM_IP_PORT) di region REGION_A. Pertama, buat VM di zona ZONE_A. Kemudian, buat NEG zonal di zona ZONE_A, lalu tambahkan endpoint jaringan VM ke NEG. Untuk mendukung ketersediaan tinggi, siapkan NEG zonal serupa di region REGION_B. Jika backend di satu region kebetulan tidak aktif, traffic akan gagal dan beralih ke region lain.

Membuat VM

Konsol

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

    Buka instance VM

  2. Ulangi langkah 3 hingga 8 untuk setiap VM, menggunakan kombinasi nama dan zona berikut.

    • Nama: dari vm-a1
      • Zona: ZONE_A di wilayah REGION_A
      • Subnet: SUBNET_A
    • Nama: dari vm-b1
      • Zona: ZONE_B di wilayah REGION_B
      • Subnet: SUBNET_B
  3. Klik Create instance.

  4. Tetapkan nama seperti yang ditunjukkan pada langkah sebelumnya.

  5. Untuk Region, pilih seperti yang ditunjukkan pada langkah sebelumnya.

  6. Untuk Zone, pilih seperti yang ditunjukkan pada langkah sebelumnya.

  7. Di bagian Boot disk, pastikan Debian GNU/Linux 12 (bookworm) dipilih untuk opsi boot disk. Klik Pilih untuk mengubah gambar jika perlu.

  8. Di bagian Advanced options, luaskan Networking, lalu lakukan hal berikut:

    • Tambahkan Network tags berikut: allow-ssh,allow-health-check, dan allow-proxy-only-subnet.
    • Di bagian Network interfaces, klik Add a network interface, lakukan perubahan berikut, lalu klik Done:
      • Jaringan: NETWORK
      • Subnetwork: seperti yang ditunjukkan pada langkah sebelumnya.
      • Primary internal IP: Ephemeral (otomatis)
      • External IP: Sementara
    • Luaskan Pengelolaan. Di kolom Automation, salin dan tempel konten skrip berikut. Konten skrip identik untuk semua VM:

      #! /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
      systemctl restart apache2
      
  9. Klik Create.

gcloud

Buat VM dengan menjalankan perintah berikut, menggunakan kombinasi ini untuk nama VM dan zonanya. Konten skrip identik untuk kedua VM.

gcloud compute instances create VM_NAME \
    --zone=GCP_NEG_ZONE \
    --image-family=debian-12 \
    --image-project=debian-cloud \
    --tags=allow-ssh,allow-health-check,allow-proxy-only-subnet \
    --subnet=LB_SUBNET_NAME \
    --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
      systemctl restart apache2'
  • VM_NAME dari vm-a1
    • Zona GCP_NEG_ZONE sebagai ZONE_A di region REGION_A
    • Subnet LB_SUBNET_NAME sebagai SUBNET_A
  • VM_NAME dari vm-b1
    • ZonaGCP_NEG_ZONE sebagai ZONE_B di region REGION_B
    • Subnet LB_SUBNET_NAME sebagai SUBNET_B

Membuat NEG zona

Konsol

Untuk membuat grup endpoint jaringan zonal:

  1. Di Konsol Google Cloud, buka halaman Network Endpoint Groups.

    Buka Grup Endpoint Jaringan

  2. Ulangi langkah 3 hingga 8 untuk setiap NEG zonal, menggunakan kombinasi nama dan zona berikut:

    • Nama: neg-1
      • Zona: ZONE_A di wilayah REGION_A
      • Subnet: SUBNET_A
    • Nama: neg-2
      • Zona: ZONE_B di wilayah REGION_B
      • Subnet: SUBNET_B
  3. Klik Create network endpoint group.

  4. Tetapkan nama seperti yang ditunjukkan pada langkah sebelumnya.

  5. Pilih Network endpoint group type: Network endpoint group (Zonal).

  6. Pilih Network: NETWORK

  7. Pilih Subnetwork seperti yang ditunjukkan pada langkah sebelumnya.

  8. Pilih Zone seperti yang ditunjukkan pada langkah sebelumnya.

  9. Masukkan Port default: 80.

  10. Klik Create.

Tambahkan endpoint ke NEG zona:

  1. Di Konsol Google Cloud, buka halaman Network Endpoint Groups.

    Buka Network endpoint groups

  2. Klik Nama grup endpoint jaringan yang dibuat di langkah sebelumnya. Anda akan melihat halaman Detail grup endpoint jaringan.

  3. Di bagian Endpoint jaringan dalam grup ini, klik Tambahkan endpoint jaringan. Anda akan melihat halaman Tambahkan endpoint jaringan.

  4. Pilih instance VM untuk menambahkan alamat IP internalnya sebagai endpoint jaringan. Di bagian Network interface, nama, zona, dan subnet VM akan ditampilkan.

  5. Masukkan alamat IP endpoint jaringan baru.

  6. Pilih Jenis port.

    1. Jika Anda memilih Default, endpoint akan menggunakan port default 80 untuk semua endpoint dalam grup endpoint jaringan. Hal ini memadai untuk contoh kita karena server Apache menayangkan permintaan di port 80.
    2. Jika Anda memilih Kustom, masukkan Nomor port untuk endpoint yang akan digunakan.
  7. Untuk menambahkan endpoint lainnya, klik Add network endpoint dan ulangi langkah-langkah sebelumnya.

  8. Setelah Anda menambahkan semua endpoint, klik Buat.

gcloud

  1. Buat NEG zonal (dengan endpoint GCE_VM_IP_PORT) menggunakan kombinasi nama, zona, dan subnet. Gunakan perintah gcloud compute network-endpoint-groups create.

    gcloud compute network-endpoint-groups create GCP_NEG_NAME \
        --network-endpoint-type=GCE_VM_IP_PORT \
        --zone=GCP_NEG_ZONE \
        --network=NETWORK \
        --subnet=LB_SUBNET_NAME
    
    • Nama: neg-1
      • Zona GCP_NEG_ZONE: ZONE_A di wilayah REGION_A
      • Subnet LB_SUBNET_NAME: SUBNET_A
    • Nama: neg-2
      • Zona GCP_NEG_ZONE: ZONE_B di wilayah REGION_B
      • Subnet LB_SUBNET_NAME: SUBNET_B

    Anda dapat menentukan port menggunakan opsi --default-port saat membuat NEG, atau menentukan nomor port untuk setiap endpoint seperti yang ditunjukkan pada langkah berikutnya.

  2. Menambahkan endpoint ke neg1 dan neg2.

    gcloud compute network-endpoint-groups update neg1 \
        --zone=ZONE_A \
        --add-endpoint='instance=vm-a1,port=80'
    
    gcloud compute network-endpoint-groups update neg2 \
        --zone=ZONE_B \
        --add-endpoint='instance=vm-b1,port=80'
    

Menyiapkan NEG konektivitas hybrid

Saat membuat NEG, gunakan zona yang meminimalkan jarak geografis antara Google Cloud dan lingkungan cloud lokal atau lingkungan cloud lainnya. Misalnya, jika Anda menghosting layanan di lingkungan lokal di Frankfurt, Jerman, Anda dapat menentukan zona Google Cloud europe-west3-a saat membuat NEG.

Selain itu, jika Anda menggunakan Cloud Interconnect, zona yang digunakan untuk membuat NEG berada di region yang sama dengan tempat lampiran Cloud Interconnect dikonfigurasi.

NEG campuran hanya mendukung pemeriksaan kesehatan Envoy terdistribusi.

Konsol

Untuk membuat grup endpoint jaringan konektivitas hybrid:

  1. Di Konsol Google Cloud, buka halaman Network Endpoint Groups.

    Buka Network endpoint groups

  2. Klik Create network endpoint group.

  3. Ulangi langkah 4 hingga 9 untuk setiap NEG hybrid, menggunakan kombinasi nama dan zona berikut.

    • Nama ON_PREM_NEG_NAME: hybrid-1
      • Zona: ON_PREM_NEG_ZONE1
      • Subnet: SUBNET_A
    • Nama ON_PREM_NEG_NAME: hybrid-2
      • Zona: ON_PREM_NEG_ZONE2
      • Subnet: SUBNET_B
  4. Tetapkan nama seperti yang ditunjukkan pada langkah sebelumnya.

  5. Pilih Network endpoint group type: Hybrid connectivity network endpoint group (Zonal).

  6. Pilih Network: NETWORK

  7. Untuk Subnet, pilih seperti yang ditunjukkan pada langkah sebelumnya.

  8. Untuk Zone, pilih seperti yang ditunjukkan pada langkah sebelumnya.

  9. Masukkan Port default.

  10. Klik Buat

Tambahkan endpoint ke NEG konektivitas hybrid:

  1. Di Konsol Google Cloud, buka halaman Network Endpoint Groups.

    Buka Network endpoint groups

  2. Klik Nama grup endpoint jaringan yang dibuat di langkah sebelumnya. Anda akan melihat halaman Detail grup endpoint jaringan.

  3. Di bagian Endpoint jaringan dalam grup ini, klik Tambahkan endpoint jaringan. Anda akan melihat halaman Tambahkan endpoint jaringan.

  4. Masukkan alamat IP endpoint jaringan baru.

  5. Pilih Jenis port.

    1. Jika Anda memilih Default, endpoint akan menggunakan port default untuk semua endpoint dalam grup endpoint jaringan.
    2. Jika memilih Kustom, Anda dapat memasukkan Nomor port yang berbeda untuk digunakan endpoint.
  6. Untuk menambahkan endpoint lainnya, klik Add network endpoint dan ulangi langkah-langkah sebelumnya.

  7. Setelah Anda menambahkan semua endpoint non-Google Cloud, klik Buat.

gcloud

  1. Buat NEG konektivitas campuran yang menggunakan kombinasi nama berikut. Gunakan perintah gcloud compute network-endpoint-groups create.

    gcloud compute network-endpoint-groups create ON_PREM_NEG_NAME \
        --network-endpoint-type=NON_GCP_PRIVATE_IP_PORT \
        --zone=ON_PREM_NEG_ZONE \
        --network=NETWORK
    
    • Nama ON_PREM_NEG_NAME: hybrid-1
      • Zona ON_PREM_NEG_ZONE: ON_PREM_NEG_ZONE1
    • Nama ON_PREM_NEG_NAME: hybrid-2
      • Zona GCP_NEG_ZONE: ON_PREM_NEG_ZONE2
  2. Tambahkan endpoint VM backend on-premise ke ON_PREM_NEG_NAME:

    gcloud compute network-endpoint-groups update ON_PREM_NEG_NAME \
        --zone=ON_PREM_NEG_ZONE \
        --add-endpoint="ip=ON_PREM_IP_ADDRESS_1,port=PORT_1" \
        --add-endpoint="ip=ON_PREM_IP_ADDRESS_2,port=PORT_2"
    

Anda dapat menggunakan perintah ini untuk menambahkan endpoint jaringan yang sebelumnya dikonfigurasi di infrastruktur lokal atau di lingkungan cloud. Ulangi --add-endpoint sebanyak yang diperlukan.

Mengonfigurasi load balancer

Konsol

gcloud

  1. Tentukan health check HTTP dengan perintah gcloud compute health-checks create http.

    gcloud compute health-checks create http gil7-basic-check \
       --use-serving-port \
       --global
    
  2. Buat layanan backend dan aktifkan logging dengan perintah gcloud compute backend-services create.

    gcloud compute backend-services create BACKEND_SERVICE \
      --load-balancing-scheme=INTERNAL_MANAGED \
      --protocol=HTTP \
      --enable-logging \
      --logging-sample-rate=1.0 \
      --health-checks=gil7-basic-check \
      --global-health-checks \
      --global
    
  3. Tambahkan backend ke layanan backend dengan perintah gcloud compute backend-services add-backend.

    gcloud compute backend-services add-backend BACKEND_SERVICE \
      --global \
      --balancing-mode=RATE \
      --max-rate-per-endpoint=MAX_REQUEST_RATE_PER_ENDPOINT \
      --network-endpoint-group=neg1 \
      --network-endpoint-group-zone=ZONE_A \
      --network-endpoint-group=neg2 \
      --network-endpoint-group-zone=ZONE_B
    

    Untuk mengetahui detail tentang cara mengonfigurasi mode balancing, lihat dokumentasi gcloud CLI untuk flag --max-rate-per-endpoint.

  4. Tambahkan NEG campuran sebagai backend ke layanan backend.

    gcloud compute backend-services add-backend BACKEND_SERVICE \
      --global \
      --balancing-mode=RATE \
      --max-rate-per-endpoint=MAX_REQUEST_RATE_PER_ENDPOINT \
      --network-endpoint-group=hybrid1 \
      --network-endpoint-group-zone=ON_PREM_NEG_ZONE1 \
      --network-endpoint-group=hybrid2 \
      --network-endpoint-group-zone=ON_PREM_NEG_ZONE2 \
    

    Untuk mengetahui detail tentang cara mengonfigurasi mode penyeimbangan, lihat dokumentasi gcloud CLI untuk parameter --max-rate-per-endpoint.

  5. Buat peta URL dengan perintah gcloud compute url-maps create.

    gcloud compute url-maps create gil7-map \
      --default-service=BACKEND_SERVICE \
      --global
    
  6. Buat proxy target.

    Untuk HTTP:

    Buat proxy target dengan perintah gcloud compute target-http-proxies create.

    gcloud compute target-http-proxies create gil7-http-proxy \
      --url-map=gil7-map \
      --global
    

    Untuk HTTPS:

    Untuk membuat sertifikat yang dikelola Google, lihat dokumentasi berikut:

    Setelah membuat sertifikat yang dikelola Google, lampirkan sertifikat ke proxy target. Peta sertifikat tidak didukung oleh Load Balancer Aplikasi internal lintas-region.

    Untuk membuat sertifikat yang dikelola sendiri, lihat dokumentasi berikut:

    Menetapkan jalur file ke nama variabel.

    export LB_CERT=PATH_TO_PEM_FORMATTED_FILE
    
    export LB_PRIVATE_KEY=PATH_TO_PEM_LB_PRIVATE_FILE
    

    Buat sertifikat SSL untuk semua region menggunakan perintah gcloud certificate-manager certificates create.

    gcloud certificate-manager certificates create gilb-certificate \
      --private-key-file=$LB_CERT \
      --certificate-file=$LB_PRIVATE_KEY \
      --scope=all-regions
    

    Gunakan sertifikat SSL untuk membuat proxy target dengan perintah gcloud compute target-https-proxies create

    gcloud compute target-https-proxies create gil7-https-proxy \
      --url-map=gil7-map \
      --certificate-manager-certificates=gilb-certificate \
      --global
    
  7. Buat dua aturan penerusan, satu dengan VIP IP_ADDRESS1 di region REGION_A dan satu lagi dengan VIP IP_ADDRESS2 di region REGION_B. Untuk alamat IP aturan penerusan, gunakan rentang alamat IP LB_SUBNET_RANGE1 atau LB_SUBNET_RANGE2. Jika Anda mencoba menggunakan subnet khusus proxy, pembuatan aturan penerusan akan gagal.

    Untuk jaringan kustom, Anda harus mereferensikan subnet dalam aturan penerusan. Perhatikan bahwa ini adalah subnet VM, bukan subnet proxy.

    Untuk HTTP:

    Gunakan perintah gcloud compute forwarding-rules create dengan flag yang benar.

    gcloud compute forwarding-rules create FWRULE_A \
      --load-balancing-scheme=INTERNAL_MANAGED \
      --network=NETWORK \
      --subnet=SUBNET_A \
      --subnet-region=REGION_A \
      --address=IP_ADDRESS1 \
      --ports=80 \
      --target-http-proxy=gil7-http-proxy \
      --global
    
    gcloud compute forwarding-rules create FWRULE_B \
      --load-balancing-scheme=INTERNAL_MANAGED \
      --network=NETWORK \
      --subnet=SUBNET_B \
      --subnet-region=REGION_B \
      --address=IP_ADDRESS2 \
      --ports=80 \
      --target-http-proxy=gil7-http-proxy \
      --global
    

    Untuk HTTPS:

    Buat aturan penerusan dengan perintah gcloud compute forwarding-rules create dengan flag yang benar.

    gcloud compute forwarding-rules create FWRULE_A \
      --load-balancing-scheme=INTERNAL_MANAGED \
      --network=NETWORK \
      --subnet=SUBNET_A \
      --subnet-region=REGION_A \
      --address=IP_ADDRESS1 \
      --ports=443 \
      --target-https-proxy=gil7-https-proxy \
      --global
    
    gcloud compute forwarding-rules create FWRULE_B \
      --load-balancing-scheme=INTERNAL_MANAGED \
      --network=NETWORK \
      --subnet=SUBNET_B \
      --subnet-region=REGION_B \
      --address=IP_ADDRESS2 \
      --ports=443 \
      --target-https-proxy=gil7-https-proxy \
      --global
    

Menghubungkan domain ke load balancer

Setelah Anda membuat load balancer, catat alamat IP yang terkait dengan load balancer, misalnya, IP_ADDRESS1 dan IP_ADDRESS2. Untuk mengarahkan domain ke load balancer, buat data A menggunakan Cloud DNS atau layanan pendaftaran domain. Jika Anda menambahkan beberapa domain ke sertifikat SSL, Anda harus menambahkan data A untuk setiap domain, yang semuanya mengarah ke alamat IP load balancer.

Menguji load balancer

Membuat instance VM untuk menguji konektivitas

  1. Buat VM klien:

    gcloud compute instances create l7-ilb-client-a \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --network=NETWORK \
        --subnet=SUBNET_A \
        --zone=ZONE_A \
        --tags=allow-ssh
    
    gcloud compute instances create l7-ilb-client-b \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --network=NETWORK \
        --subnet=SUBNET_B \
        --zone=ZONE_B \
        --tags=allow-ssh
    
  2. Gunakan SSH untuk terhubung ke setiap instance klien.

    gcloud compute ssh l7-ilb-client-a \
       --zone=ZONE_A
    
    gcloud compute ssh l7-ilb-client-b \
       --zone=ZONE_B
    
  3. Pastikan alamat IP menyalurkan nama host-nya.

    • Pastikan VM klien dapat menjangkau kedua alamat IP. Perintah akan berhasil dan menampilkan nama VM backend yang menayangkan permintaan:

      curl IP_ADDRESS1
      
      curl IP_ADDRESS2
      

      Untuk pengujian HTTPS, ganti curl dengan:

      curl -k -s 'https://test.example.com:443' --connect-to test.example.com:443:IP_ADDRESS1:443
      
      curl -k -s 'https://test.example.com:443' --connect-to test.example.com:443:IP_ADDRESS2:443
      

      Flag -k menyebabkan curl melewati validasi sertifikat.

    • Opsional: Gunakan data DNS yang dikonfigurasi untuk me-resolve alamat IP terdekat dengan VM klien. Misalnya, DNS_ENTRY dapat berupa service.example.com.

      curl DNS_ENTRY
      

Menjalankan 100 permintaan

Jalankan 100 permintaan curl dan konfirmasi dari respons bahwa permintaan tersebut di-load balance.

Untuk HTTP:

  • Pastikan VM klien dapat menjangkau kedua alamat IP. Perintah akan berhasil dan menampilkan nama VM backend yang melayani permintaan:

    {
      RESULTS=
      for i in {1..100}
      do
        RESULTS="$RESULTS:$(curl --silent IP_ADDRESS1)"
      done
      echo "***"
      echo "*** Results of load-balancing to IP_ADDRESS1: "
      echo "***"
      echo "$RESULTS" | tr ':' '\n' | grep -Ev "^$" | sort | uniq -c
      echo
    }
    
    {
      RESULTS=
      for i in {1..100}
      do
        RESULTS="$RESULTS:$(curl --silent IP_ADDRESS2)"
      done
      echo "***"
      echo "*** Results of load-balancing to IP_ADDRESS2: "
      echo "***"
      echo "$RESULTS" | tr ':' '\n' | grep -Ev "^$" | sort | uniq -c
      echo
    }
    

Untuk HTTPS:

  • Pastikan VM klien dapat menjangkau kedua alamat IP. Perintah akan berhasil dan menampilkan nama VM backend yang melayani permintaan:

    {
      RESULTS=
      for i in {1..100}
      do
        RESULTS="$RESULTS:$(curl -k -s 'https://test.example.com:443' --connect-to test.example.com:443:IP_ADDRESS1:443)"
      done
      echo "***"
      echo "*** Results of load-balancing to IP_ADDRESS1: "
      echo "***"
      echo "$RESULTS" | tr ':' '\n' | grep -Ev "^$" | sort | uniq -c
      echo
    }
    
    {
      RESULTS=
      for i in {1..100}
      do
        RESULTS="$RESULTS:$(curl -k -s 'https://test.example.com:443' --connect-to test.example.com:443:IP_ADDRESS2:443)"
      done
      echo "***"
      echo "*** Results of load-balancing to IP_ADDRESS2: "
      echo "***"
      echo "$RESULTS" | tr ':' '\n' | grep -Ev "^$" | sort | uniq -c
      echo
    }
    

Menguji failover

  1. Verifikasi failover ke backend di region REGION_A saat backend di REGION_B tidak responsif atau tidak dapat dijangkau. Kita menyimulasikannya dengan menghapus semua backend dari REGION_B:

    gcloud compute backend-services remove-backend BACKEND_SERVICE \
       --balancing-mode=RATE \
       --network-endpoint-group=neg2 \
       --network-endpoint-group-zone=ZONE_B
    
  2. Gunakan SSH untuk terhubung ke VM klien di REGION_B.

    gcloud compute ssh l7-ilb-client-b \
       --zone=ZONE_B
    
  3. Kirim permintaan ke alamat IP load balanced di region REGION_B. Outputnya mirip dengan hal berikut ini:

    {
    RESULTS=
    for i in {1..100}
    do
      RESULTS="$RESULTS:$(curl -k -s 'https://test.example.com:443' --connect-to test.example.com:443:IP_ADDRESS2:443)"
    done
    echo "***"
    echo "*** Results of load-balancing to IP_ADDRESS2: "
    echo "***"
    echo "$RESULTS" | tr ':' '\n' | grep -Ev "^$" | sort | uniq -c
    echo
    }
    

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.

Mengonfigurasi kebijakan pemilihan rute DNS

Jika klien Anda berada di beberapa region, Anda dapat membuat Load Balancer Aplikasi internal lintas region dapat diakses menggunakan VIP di region ini. Penyiapan multi-region ini meminimalkan latensi dan biaya transit jaringan. Selain itu, solusi ini memungkinkan Anda menyiapkan solusi load balancing global berbasis DNS yang memberikan ketahanan terhadap pemadaman layanan regional. Untuk mengetahui informasi selengkapnya, lihat Mengelola kebijakan pemilihan rute DNS dan health check.

gcloud

Untuk membuat entri DNS dengan TTL 30 detik, gunakan perintah gcloud dns record-sets create.

gcloud dns record-sets create DNS_ENTRY --ttl="30" \
  --type="A" --zone="service-zone" \
  --routing-policy-type="GEO" \
  --routing-policy-data="REGION_A=gil7-forwarding-rule-a@global;REGION_B=gil7-forwarding-rule-b@global" \
  --enable-health-checking

Ganti kode berikut:

  • DNS_ENTRY: DNS atau nama domain set data

    Contoh, service.example.com

  • REGION_A dan REGION_B: region tempat Anda mengonfigurasi load balancer

API

Buat data DNS dengan membuat permintaan POST ke metode ResourceRecordSets.create. Ganti PROJECT_ID dengan project ID Anda.

POST https://www.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/SERVICE_ZONE/rrsets
{
  "name": "DNS_ENTRY",
  "type": "A",
  "ttl": 30,
  "routingPolicy": {
    "geo": {
      "items": [
        {
          "location": "REGION_A",
          "healthCheckedTargets": {
            "internalLoadBalancers": [
              {
                "loadBalancerType": "globalL7ilb",
                "ipAddress": "IP_ADDRESS",
                "port": "80",
                "ipProtocol": "tcp",
                "networkUrl": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network",
                "project": "PROJECT_ID"
              }
            ]
          }
        },
        {
          "location": "REGION_B",
          "healthCheckedTargets": {
            "internalLoadBalancers": [
              {
                "loadBalancerType": "globalL7ilb",
                "ipAddress": "IP_ADDRESS_B",
                "port": "80",
                "ipProtocol": "tcp",
                "networkUrl": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network",
                "project": "PROJECT_ID"
              }
            ]
          }
        }
      ]
    }
  }
}

Memperbarui waktu tunggu keepalive HTTP klien

Load balancer yang dibuat pada langkah sebelumnya telah dikonfigurasi dengan nilai default untuk waktu tunggu keepalive HTTP klien.

Untuk memperbarui waktu tunggu keepalive HTTP klien, gunakan petunjuk berikut.

Konsol

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

    Buka Load balancing.

  2. Klik nama load balancer yang ingin diubah.
  3. Klik Edit.
  4. Klik Frontend configuration.
  5. Luaskan Fitur lanjutan. Untuk Timeout keepalive HTTP, masukkan nilai waktu tunggu.
  6. Klik Perbarui.
  7. Untuk meninjau perubahan, klik Tinjau dan selesaikan, lalu klik Perbarui.

gcloud

Untuk load balancer HTTP, perbarui proxy HTTP target menggunakan perintah gcloud compute target-http-proxies update:

    gcloud compute target-http-proxies update TARGET_HTTP_PROXY_NAME \
        --http-keep-alive-timeout-sec=HTTP_KEEP_ALIVE_TIMEOUT_SEC \
        --global
    

Untuk load balancer HTTPS, perbarui proxy HTTPS target menggunakan perintah gcloud compute target-https-proxies update:

    gcloud compute target-https-proxies update TARGET_HTTPS_PROXY_NAME \
        --http-keep-alive-timeout-sec=HTTP_KEEP_ALIVE_TIMEOUT_SEC \
        --global
    

Ganti kode berikut:

  • TARGET_HTTP_PROXY_NAME: nama proxy HTTP target.
  • TARGET_HTTPS_PROXY_NAME: nama proxy HTTPS target.
  • HTTP_KEEP_ALIVE_TIMEOUT_SEC: nilai waktu tunggu keepalive HTTP dari 5 hingga 600 detik.

Mengaktifkan deteksi pencilan

Anda dapat mengaktifkan deteksi anomali di layanan backend global untuk mengidentifikasi NEG tanpa server yang tidak responsif dan mengurangi jumlah permintaan yang dikirim ke NEG tanpa server yang tidak responsif.

Deteksi outlier diaktifkan di layanan backend menggunakan salah satu metode berikut:

  • Metode consecutiveErrors (outlierDetection.consecutiveErrors), yang menjadikan kode status HTTP seri 5xx memenuhi syarat sebagai error.
  • Metode consecutiveGatewayFailure (outlierDetection.consecutiveGatewayFailure), yang hanya mengizinkan kode status HTTP 502, 503, dan 504 sebagai error.

Gunakan langkah-langkah berikut untuk mengaktifkan deteksi outlier untuk layanan backend yang ada. Perhatikan bahwa meskipun setelah mengaktifkan deteksi outlier, beberapa permintaan dapat dikirim ke layanan yang tidak responsif dan menampilkan kode status 5xx ke klien. Untuk lebih mengurangi rasio error, Anda dapat mengonfigurasi nilai yang lebih agresif untuk parameter deteksi outlier. Untuk mengetahui informasi selengkapnya, lihat kolom outlierDetection.

Konsol

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

    Buka Load balancing

  2. Klik nama load balancer yang layanan backend-nya ingin Anda edit.

  3. Di halaman Detail load balancer, klik Edit.

  4. Di halaman Edit cross-region internal Application Load Balancer, klik Backend configuration.

  5. Di halaman Backend configuration, klik Edit untuk layanan backend yang ingin Anda ubah.

  6. Scroll ke bawah, lalu luaskan bagian Advanced configurations.

  7. Di bagian Deteksi outlier, centang kotak Enable.

  8. Klik Edit untuk mengonfigurasi deteksi pencilan.

    Pastikan opsi berikut dikonfigurasi dengan nilai ini:

    Properti Nilai
    Error berturut-turut 5
    Interval 1000
    Waktu ejeksi dasar 30000
    Persentase ejeksi maksimum 50
    Menegakkan error berturut-turut 100

    Dalam contoh ini, analisis deteksi outlier berjalan setiap satu detik. Jika jumlah kode status 5xx HTTP berturut-turut yang diterima oleh proxy Envoy adalah lima atau lebih, endpoint backend akan dikeluarkan dari kumpulan load balancing proxy Envoy tersebut selama 30 detik. Jika persentase penerapan ditetapkan ke 100%, layanan backend akan menerapkan pengusiran endpoint yang tidak responsif dari kumpulan load balancing proxy Envoy tertentu setiap kali analisis deteksi outlier berjalan. Jika kondisi pengeluaran terpenuhi, hingga 50% endpoint backend dari kumpulan load balancing dapat dikeluarkan.

  9. Klik Simpan.

  10. Untuk memperbarui layanan backend, klik Update.

  11. Untuk memperbarui load balancer, di halaman Edit cross-region internal Application Load Balancer, klik Update.

gcloud

  1. Ekspor layanan backend ke file YAML.

    gcloud compute backend-services export BACKEND_SERVICE_NAME \
      --destination=BACKEND_SERVICE_NAME.yaml --global
    

    Ganti BACKEND_SERVICE_NAME dengan nama layanan backend.

  2. Edit konfigurasi YAML layanan backend untuk menambahkan kolom untuk deteksi outlier seperti yang ditandai dalam konfigurasi YAML berikut, di bagian outlierDetection:

    Dalam contoh ini, analisis deteksi outlier berjalan setiap satu detik. Jika jumlah kode status 5xx HTTP berturut-turut yang diterima oleh proxy Envoy adalah lima atau lebih, endpoint backend akan dikeluarkan dari kumpulan load balancing proxy Envoy tersebut selama 30 detik. Jika persentase penerapan ditetapkan ke 100%, layanan backend akan menerapkan pengusiran endpoint yang tidak responsif dari kumpulan load balancing proxy Envoy tertentu setiap kali analisis deteksi outlier berjalan. Jika kondisi pengeluaran terpenuhi, hingga 50% endpoint backend dari kumpulan load balancing dapat dikeluarkan.

    name: BACKEND_SERVICE_NAME
    backends:
    - balancingMode: UTILIZATION
      capacityScaler: 1.0
      group: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_A/networkEndpointGroups/SERVERLESS_NEG_NAME
    - balancingMode: UTILIZATION
      capacityScaler: 1.0
      group: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_B/networkEndpointGroups/SERVERLESS_NEG_NAME_2
    outlierDetection:
      baseEjectionTime:
        nanos: 0
        seconds: 30
      consecutiveErrors: 5
      enforcingConsecutiveErrors: 100
      interval:
        nanos: 0
        seconds: 1
      maxEjectionPercent: 50
    port: 80
    selfLink: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE_NAME
    sessionAffinity: NONE
    timeoutSec: 30
    ...
    

    Ganti kode berikut:

    • BACKEND_SERVICE_NAME: nama layanan backend
    • PROJECT_ID: ID project Anda
    • REGION_A dan REGION_B: region tempat load balancer telah dikonfigurasi.
    • SERVERLESS_NEG_NAME: nama NEG tanpa server pertama
    • SERVERLESS_NEG_NAME_2: nama NEG serverless kedua
  3. Perbarui layanan backend dengan mengimpor konfigurasi terbaru.

    gcloud compute backend-services import BACKEND_SERVICE_NAME \
      --source=BACKEND_SERVICE_NAME.yaml --global
    

    Deteksi pencilan kini diaktifkan di layanan backend.

Langkah selanjutnya