Menyiapkan Load Balancer Aplikasi internal lintas region dengan Cloud Run

Dokumen ini menunjukkan cara men-deploy Load Balancer Aplikasi internal lintas-region dengan Cloud Run. Untuk menyiapkannya, Anda menggunakan backend NEG serverless untuk load balancer.

NEGless Server memungkinkan Anda menggunakan layanan Cloud Run dengan load balancer. Setelah Anda mengonfigurasi load balancer dengan backend NEG serverless, permintaan ke load balancer akan dirutekan ke backend Cloud Run.

Load balancing lintas region memberikan redundansi, sehingga jika suatu region tidak dapat dijangkau, traffic akan otomatis dialihkan ke region lain. Berdasarkan lokasi Envoy, traffic proxy didistribusikan ke layanan Cloud Run sebagai berikut:

  • Jika layanan Cloud Run multi-region dikonfigurasi di region yang sama dengan Envoy, NEG yang berada di region yang sama dengan Envoy lebih disarankan. Traffic dikirim ke region failover hanya jika deteksi outlier diaktifkan dan NEG lokal tidak sehat.
  • Jika layanan Cloud Run multi-region tidak dikonfigurasi di region yang sama dengan Envoy, traffic akan didistribusikan secara merata di semua NEG. NEG yang terletak lebih dekat tidak direkomendasikan.
  • Jika Identity-Aware Proxy diaktifkan, hanya satu NEG serverless yang didukung. Namun, Anda dapat mengonfigurasi layanan Cloud Run tambahan, tetapi load balancer tidak mengirimkan traffic apa pun ke layanan tersebut.

Sebelum memulai

Sebelum mengikuti panduan ini, pahami hal-hal berikut:

Men-deploy layanan Cloud Run

Petunjuk di halaman ini mengasumsikan bahwa Anda sudah memiliki layanan Cloud Run yang berjalan.

Untuk contoh di halaman ini, Anda dapat menggunakan salah satu panduan memulai Cloud Run untuk men-deploy layanan Cloud Run.

Untuk mencegah akses ke layanan Cloud Run dari internet, batasi traffic masuk ke internal. Traffic dari Load Balancer Aplikasi internal dianggap sebagai traffic internal.

Menempatkan layanan Cloud Run di beberapa region membantu mencegah kegagalan di satu region. Untuk men-deploy layanan Cloud Run di region REGION_A dan REGION_B, jalankan perintah berikut:

gcloud

gcloud run deploy CLOUD_RUN_SERVICE_NAMEA \
   --platform=managed \
   --allow-unauthenticated \
   --ingress=internal \
   --region=REGION_A \
   --image=IMAGE_URLA
gcloud run deploy CLOUD_RUN_SERVICE_NAMEB \
   --platform=managed \
   --allow-unauthenticated \
   --ingress=internal \
   --region=REGION_B \
   --image=IMAGE_URLB

Catat nama layanan yang Anda buat. Bagian selanjutnya di halaman ini menunjukkan cara menyiapkan load balancer yang merutekan permintaan ke layanan ini.

Menyiapkan resource sertifikat SSL

Buat resource sertifikat SSL Pengelola Sertifikat sebagai berikut:

Sebaiknya gunakan sertifikat yang dikelola Google.

Izin

Untuk mengikuti panduan ini, Anda harus dapat membuat instance dan mengubah jaringan dalam project. Anda harus menjadi pemilik atau editor project, atau Anda harus memiliki semua peran IAM Compute Engine berikut.

Tugas Peran yang diperlukan
Membuat komponen jaringan, subnet, dan load balancer Admin Jaringan Compute
Menambahkan dan menghapus aturan firewall Compute Security Admin
Membuat instance Compute Instance Admin

Untuk informasi selengkapnya, lihat panduan berikut:

Ringkasan penyiapan

Anda dapat mengonfigurasi Load Balancer Aplikasi internal lintas region seperti yang dijelaskan dalam diagram berikut:

Load Balancer Aplikasi internal lintas region dengan deployment Cloud Run.
Load Balancer Aplikasi internal lintas region dengan deployment Cloud Run (klik untuk memperbesar).

Seperti yang ditunjukkan pada diagram, contoh ini membuat Load Balancer Aplikasi internal lintas region di jaringan VPC, dengan satu layanan backend dan dua deployment Cloud Run di region REGION_A dan REGION_B.

Penyiapan Load Balancer Aplikasi internal lintas-region dijelaskan sebagai berikut:

  1. Jaringan VPC dengan subnet berikut:

    • Subnet SUBNET_A dan subnet khusus proxy di REGION_A.
    • Subnet SUBNET_B dan subnet khusus proxy di REGION_B.

    Anda harus membuat subnet khusus proxy di setiap region jaringan VPC tempat Anda menggunakan Load Balancer Aplikasi internal lintas region. Subnet khusus proxy di region digunakan bersama oleh semua Load Balancer Aplikasi internal lintas region di region tersebut. Alamat sumber paket yang dikirim dari load balancer ke backend layanan Anda dialokasikan dari subnet khusus proxy. Dalam contoh ini, subnet khusus proxy untuk region REGION_A memiliki rentang alamat IP utama 10.129.0.0/23 dan untuk REGION_B memiliki rentang alamat IP utama 10.130.0.0/23 yang merupakan ukuran subnet yang direkomendasikan.

  2. Aturan firewall yang mengizinkan alur traffic subnet khusus proxy di jaringan Anda. Artinya, tambahkan satu aturan yang mengizinkan traffic port TCP 80, 443, dan 8080 dari 10.129.0.0/23 dan 10.130.0.0/23 (rentang subnet khusus proxy dalam contoh ini).

  3. Aturan firewall lain untuk pemeriksaan health check.

  4. Penyiapan ketersediaan tinggi yang memiliki backend serverless untuk deployment Cloud Run di region REGION_A dan REGION_B. Jika backend di satu region kebetulan tidak aktif, traffic akan gagal dan beralih ke region lain.

  5. Layanan backend global yang memantau penggunaan dan kondisi backend. Pastikan Anda mengaktifkan deteksi outlier di layanan backend.

  6. Peta URL global yang mengurai URL permintaan dan meneruskan permintaan ke layanan backend tertentu berdasarkan host dan jalur URL permintaan.

  7. Proxy HTTP atau HTTPS target global, yang menerima permintaan dari pengguna dan meneruskannya ke peta URL. Untuk HTTPS, konfigurasikan resource sertifikat SSL regional. Proxy target menggunakan sertifikat SSL untuk mendekripsi traffic SSL jika Anda mengonfigurasi load balancing HTTPS. Proxy target dapat meneruskan traffic ke instance Anda menggunakan HTTP atau HTTPS.

  8. Aturan penerusan global, yang memiliki alamat IP internal load balancer, untuk meneruskan setiap permintaan masuk ke proxy target.

    Alamat IP internal yang terkait dengan aturan penerusan dapat berasal dari subnet mana pun di jaringan dan region yang sama. Perhatikan kondisi berikut:

    • Alamat IP dapat (tetapi tidak harus) berasal dari subnet yang sama dengan grup instance backend.
    • Alamat IP tidak boleh berasal dari subnet khusus proxy yang dicadangkan yang telah menetapkan tanda --purpose ke GLOBAL_MANAGED_PROXY.
    • Jika Anda ingin menggunakan alamat IP internal yang sama dengan beberapa aturan penerusan, tetapkan tanda --purpose alamat IP ke SHARED_LOADBALANCER_VIP.
  9. Opsional: Konfigurasikan kebijakan perutean DNS jenis GEO untuk merutekan traffic klien ke VIP load balancer di region yang paling dekat dengan klien.

Mengonfigurasi jaringan dan subnet

Dalam jaringan VPC, konfigurasikan subnet di setiap region tempat backend Anda dikonfigurasi. Selain itu, konfigurasikan proxy-only-subnet di setiap region tempat Anda ingin mengonfigurasi load balancer.

Contoh ini menggunakan jaringan, region, dan subnet VPC berikut:

  • Jaringan. Jaringan ini adalah jaringan VPC mode kustom bernama NETWORK.

  • Subnet untuk backend. Subnet bernama SUBNET_A di region REGION_A menggunakan 10.1.2.0/24 untuk rentang IP utamanya. Subnet bernama SUBNET_A di region REGION_B menggunakan 10.1.3.0/24 untuk rentang IP utamanya.

  • Subnet untuk proxy. Subnet bernama PROXY_SN_A di region REGION_A menggunakan 10.129.0.0/23 untuk rentang IP utamanya. Subnet bernama PROXY_SN_B di region REGION_B menggunakan 10.130.0.0/23 untuk rentang IP utamanya.

Load Balancer Aplikasi internal lintas-region dapat diakses dari region mana pun dalam VPC. Jadi, klien dari region mana pun dapat mengakses backend load balancer Anda secara global.

Mengonfigurasi subnet backend

Konsol

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

    Buka VPC networks

  2. Klik Create VPC network.

  3. Berikan Name untuk jaringan.

  4. Di bagian Subnet, tetapkan Subnet creation mode ke Custom.

  5. Buat subnet untuk backend load balancer. Di bagian New subnet, masukkan informasi berikut:

    • Berikan Name untuk subnet.
    • Pilih Region: REGION_A
    • Masukkan rentang alamat IP: 10.1.2.0/24
  6. Klik Done.

  7. Klik Tambahkan subnet.

  8. Buat subnet untuk backend load balancer. Di bagian Subnet baru, masukkan informasi berikut:

    • Berikan Name untuk subnet.
    • Pilih Region: REGION_B
    • Masukkan rentang alamat IP: 10.1.3.0/24
  9. Klik Done.

  10. Klik Create.

gcloud

  1. Buat jaringan VPC kustom dengan perintah gcloud compute networks create:

    gcloud compute networks create NETWORK --subnet-mode=custom
    
  2. Buat subnet di jaringan NETWORK di region REGION_A dengan perintah gcloud compute networks subnets create:

    gcloud compute networks subnets create SUBNET_A \
        --network=NETWORK \
        --range=10.1.2.0/24 \
        --region=REGION_A
    
  3. Buat subnet di jaringan NETWORK di region REGION_B dengan perintah gcloud compute networks subnets create:

    gcloud compute networks subnets create SUBNET_B \
        --network=NETWORK \
        --range=10.1.3.0/24 \
        --region=REGION_B
    

API

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

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks

{
 "routingConfig": {
   "routingMode": "regional"
 },
 "name": "NETWORK",
 "autoCreateSubnetworks": false
}

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": "10.1.2.0/24",
 "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": "10.1.3.0/24",
 "region": "projects/PROJECT_ID/regions/REGION_B",
}

Mengonfigurasi subnet khusus proxy

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

Subnet khusus proxy ini digunakan oleh semua load balancer regional berbasis Envoy di region yang sama dengan 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=10.129.0.0/23
    
    gcloud compute networks subnets create PROXY_SN_B \
        --purpose=GLOBAL_MANAGED_PROXY \
        --role=ACTIVE \
        --region=REGION_B \
        --network=NETWORK \
        --range=10.130.0.0/23
    

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": "10.129.0.0/23",
      "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": "10.130.0.0/23",
      "network": "projects/PROJECT_ID/global/networks/NETWORK",
      "region": "projects/PROJECT_ID/regions/REGION_B",
      "purpose": "GLOBAL_MANAGED_PROXY",
      "role": "ACTIVE"
    }
   

Membuat NEG tanpa server

  1. Buat NEG serverless untuk layanan Cloud Run Anda:

    gcloud compute network-endpoint-groups create gl7ilb-serverless-neg-a \
       --region=REGION_A \
       --network-endpoint-type=serverless  \
       --cloud-run-service=CLOUD_RUN_SERVICE_NAMEA
    
    gcloud compute network-endpoint-groups create gl7ilb-serverless-neg-b \
       --region=REGION_B \
       --network-endpoint-type=serverless  \
       --cloud-run-service=CLOUD_RUN_SERVICE_NAMEB
    

Mengonfigurasi load balancer

Traffic yang berasal dari load balancer ke backend NEG serverless menggunakan rute khusus yang ditentukan di luar VPC Anda dan tidak tunduk pada aturan firewall. Oleh karena itu, jika load balancer hanya memiliki backend NEG serverless, Anda tidak perlu membuat aturan firewall untuk mengizinkan traffic dari subnet khusus proxy ke backend serverless.

Konsol

Memulai konfigurasi

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

    Buka Load balancing

  2. Klik Create load balancer.
  3. Untuk Type of load balancer, pilih Application Load Balancer (HTTP/HTTPS), lalu klik Next.
  4. Untuk Public facing or internal, pilih Internal, lalu klik Next.
  5. Untuk Cross-region or single region deployment, pilih Best for cross-region workloads, lalu klik Next.
  6. Klik Konfigurasikan.

Konfigurasi dasar

  1. Berikan Nama untuk load balancer.
  2. Untuk Network, pilih NETWORK.

Mengonfigurasi frontend dengan dua aturan penerusan

Untuk HTTP:

  1. Klik Frontend configuration.
    1. Berikan Name untuk aturan penerusan.
    2. Di daftar Subnetwork region, pilih REGION_A.

      Mereservasi subnet khusus proxy

    3. Dalam daftar Subnetwork, pilih SUBNET_A.
    4. Dalam daftar IP address, klik Create IP address. Halaman Reserve a static internal IP address akan terbuka.
      • Berikan Name untuk alamat IP statis.
      • Dalam daftar Static IP address, pilih Let me choose.
      • Di kolom Custom IP address, masukkan 10.1.2.99.
      • Pilih Reservasi.
  2. Klik Done.
  3. Untuk menambahkan aturan penerusan kedua, klik Add frontend IP and port.
    1. Berikan Name untuk aturan penerusan.
    2. Di daftar Subnetwork region, pilih REGION_B.

      Mereservasi subnet khusus proxy

    3. Dalam daftar Subnetwork, pilih SUBNET_B.
    4. Dalam daftar IP address, klik Create IP address. Halaman Reserve a static internal IP address akan terbuka.
      • Berikan Name untuk alamat IP statis.
      • Dalam daftar Static IP address, pilih Let me choose.
      • Di kolom Custom IP address, masukkan 10.1.3.99.
      • Pilih Reservasi.
  4. Klik Done.

Untuk HTTPS:

Jika menggunakan HTTPS antara klien dan load balancer, Anda memerlukan satu atau beberapa resource sertifikat SSL untuk mengonfigurasi proxy. Untuk membuat sertifikat yang dikelola Google all-regions, lihat dokumentasi berikut:

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

Untuk membuat sertifikat yang dikelola sendiri all-regions, lihat dokumentasi berikut: Men-deploy sertifikat yang dikelola sendiri secara regional.

  1. Klik Frontend configuration.
    1. Berikan Name untuk aturan penerusan.
    2. Pada kolom Protocol, pilih HTTPS (includes HTTP/2).
    3. Pastikan Port disetel ke 443.
    4. Di daftar Subnetwork region, pilih REGION_A.

      Mereservasi subnet khusus proxy

    5. Dalam daftar Subnetwork, pilih SUBNET_A.
    6. Dalam daftar IP address, klik Create IP address. Halaman Reserve a static internal IP address akan terbuka.
      • Berikan Name untuk alamat IP statis.
      • Dalam daftar Static IP address, pilih Let me choose.
      • Di kolom Custom IP address, masukkan 10.1.3.99.
      • Pilih Reservasi.
    7. Di bagian Tambahkan sertifikat, pilih sertifikat.
    8. Opsional: Untuk menambahkan sertifikat selain sertifikat SSL utama:
      1. Klik Add certificate.
      2. Pilih sertifikat dari daftar.
    9. Pilih kebijakan SSL dari daftar Kebijakan SSL. Jika Anda belum membuat kebijakan SSL, kebijakan SSL Google Cloud default akan diterapkan.
    10. Klik Done.

    Tambahkan konfigurasi frontend kedua:

    1. Berikan Name untuk konfigurasi frontend.
    2. Pada kolom Protocol, pilih HTTPS (includes HTTP/2).
    3. Pastikan Port disetel ke 443.
    4. Di daftar Subnetwork region, pilih REGION_B.

      Mereservasi subnet khusus proxy

    5. Dalam daftar Subnetwork, pilih SUBNET_B.
    6. Dalam daftar IP address, klik Create IP address. Halaman Reserve a static internal IP address akan terbuka.
      • Berikan Name untuk alamat IP statis.
      • Dalam daftar Static IP address, pilih Let me choose.
      • Di kolom Custom IP address, masukkan 10.1.3.99.
      • Pilih Reservasi.
    7. Di bagian Tambahkan sertifikat, pilih sertifikat.
    8. Opsional: Untuk menambahkan sertifikat selain sertifikat SSL utama:
      1. Klik Add certificate.
      2. Pilih sertifikat dari daftar.
    9. Pilih kebijakan SSL dari daftar Kebijakan SSL. Jika Anda belum membuat kebijakan SSL, kebijakan SSL Google Cloud default akan diterapkan.
    10. Klik Done.
    Mengonfigurasi layanan backend
    1. Klik Backend configuration.
    2. Dalam daftar Create or select backend services, klik Create a backend service.
    3. Berikan Nama untuk layanan backend.
    4. Untuk Protocol, pilih HTTP.
    5. Untuk Named Port, masukkan http.
    6. Dalam daftar Backend type, pilih Serverless network endpoint group.
    7. Di bagian New backend:
      • Dalam daftar Serverless network endpoint group, pilih gl7ilb-serverless-neg-a.
      • Klik Done.
      • Untuk menambahkan backend lain, klik Tambahkan backend.
      • Dalam daftar Serverless network endpoint group, pilih gl7ilb-serverless-neg-b.
      • Klik Done.

    Mengonfigurasi aturan pemilihan rute

    1. Klik Routing rules.
    2. Untuk Mode, pilih Simple host and path rule.
    3. Pastikan hanya ada satu layanan backend untuk semua host dan jalur yang tidak cocok.

    Meninjau konfigurasi

    1. Klik Review and finalize.
    2. Tinjau setelan konfigurasi load balancer Anda.
    3. Klik Create.

gcloud

  1. Tentukan layanan backend dengan perintah gcloud compute backend-services create.

    gcloud compute backend-services create gil7-backend-service \
      --load-balancing-scheme=INTERNAL_MANAGED \
      --protocol=HTTP \
      --global
    
  2. Tambahkan backend ke layanan backend dengan perintah gcloud compute backend-services add-backend.

    gcloud compute backend-services add-backend gil7-backend-service \
      --network-endpoint-group=gl7ilb-serverless-neg-a \
      --network-endpoint-group-region=REGION_A \
      --global
    
    gcloud compute backend-services add-backend gil7-backend-service \
      --network-endpoint-group=gl7ilb-serverless-neg-b \
      --network-endpoint-group-region=REGION_B \
      --global
    
  3. Buat peta URL dengan perintah gcloud compute url-maps create.

    gcloud compute url-maps create gil7-map \
      --default-service=gil7-backend-service \
      --global
    
  4. 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 langsung 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_LB_PRIVATE_KEY_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_PRIVATE_KEY \
      --certificate-file=$LB_CERT \
      –-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
    
  5. Buat dua aturan penerusan: satu dengan VIP (10.1.2.99) di region REGION_B dan satu lagi dengan VIP (10.1.3.99) di region REGION_A.

    Untuk jaringan kustom, Anda harus mereferensikan subnet dalam aturan penerusan. Perhatikan bahwa ini adalah subnet instance virtual machine (VM), bukan subnet proxy.

    Untuk HTTP:

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

    gcloud compute forwarding-rules create gil7-forwarding-rule-a \
      --load-balancing-scheme=INTERNAL_MANAGED \
      --network=NETWORK \
      --subnet=SUBNET_B \
      --subnet-region=REGION_B \
      --address=10.1.3.99 \
      --ports=80 \
      --target-http-proxy=gil7-http-proxy \
      --global
    
    gcloud compute forwarding-rules create gil7-forwarding-rule-b \
      --load-balancing-scheme=INTERNAL_MANAGED \
      --network=NETWORK \
      --subnet=SUBNET_A \
      --subnet-region=REGION_A \
      --address=10.1.2.99 \
      --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 gil7-forwarding-rule-a \
      --load-balancing-scheme=INTERNAL_MANAGED \
      --network=NETWORK \
      --subnet=SUBNET_B \
      --address=10.1.3.99 \
      --ports=443 \
      --target-https-proxy=gil7-https-proxy \
      --global
    
    gcloud compute forwarding-rules create gil7-forwarding-rule-b \
      --load-balancing-scheme=INTERNAL_MANAGED \
      --network=NETWORK \
      --subnet=SUBNET_A \
      --address=10.1.2.99 \
      --ports=443 \
      --target-https-proxy=gil7-https-proxy \
      --global
    

API

Buat layanan backend global dengan membuat permintaan POST ke metode backendServices.insert, mengganti PROJECT_ID dengan project ID Anda.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices

{
"name": "gil7-backend-service",
"backends": [
  {
    "group": "projects/PROJECT_ID/zones/ZONE_A/instanceGroups/gl7ilb_serverless_negwest",
    "balancingMode": "UTILIZATION"
  },
  {
    "group": "projects/PROJECT_ID/zones/ZONE_B/instanceGroups/gl7ilb_serverless_negeast",
  }
],
"loadBalancingScheme": "INTERNAL_MANAGED"
}

Buat peta URL dengan membuat permintaan POST ke metode urlMaps.insert, dengan mengganti PROJECT_ID dengan project ID Anda.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/urlMaps

{
"name": "l7-ilb-map",
"defaultService": "projects/PROJECT_ID/global/backendServices/gil7-backend-service"
}

Untuk HTTP:

Buat proxy HTTP target dengan membuat permintaan POST ke metode targetHttpProxies.insert, ganti PROJECT_ID dengan project ID Anda.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/targetHttpProxy

{
"name": "l7-ilb-proxy",
"urlMap": "projects/PROJECT_ID/global/urlMaps/l7-ilb-map"
}

Buat aturan penerusan dengan membuat permintaan POST ke metode globalforwardingRules.insert, dengan mengganti PROJECT_ID dengan project ID Anda.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/forwardingRules

{
"name": "gil7-forwarding-rule-a",
"IPAddress": "10.1.2.99",
"IPProtocol": "TCP",
"portRange": "80-80",
"target": "projects/PROJECT_ID/global/targetHttpProxies/l7-ilb-proxy",
"loadBalancingScheme": "INTERNAL_MANAGED",
"subnetwork": "projects/PROJECT_ID/regions/REGION_A/subnetworks/SUBNET_A",
"network": "projects/PROJECT_ID/global/networks/NETWORK",
"networkTier": "PREMIUM"
}
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/forwardingRules

{
"name": "gil7-forwarding-rule-b",
"IPAddress": "10.1.3.99",
"IPProtocol": "TCP",
"portRange": "80-80",
"target": "projects/PROJECT_ID/global/targetHttpProxies/l7-ilb-proxy",
"loadBalancingScheme": "INTERNAL_MANAGED",
"subnetwork": "projects/PROJECT_ID/regions/REGION_B/subnetworks/SUBNET_B",
"network": "projects/PROJECT_ID/global/networks/NETWORK",
"networkTier": "PREMIUM"
}

Untuk HTTPS:

Baca file sertifikat dan kunci pribadi, lalu buat sertifikat SSL. Contoh berikut menunjukkan cara melakukannya dengan Python.

Buat proxy HTTPS target dengan membuat permintaan POST ke metode targetHttpsProxies.insert, mengganti PROJECT_ID dengan ID project Anda.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/targetHttpsProxy

{
"name": "l7-ilb-proxy",
"urlMap": "projects/PROJECT_ID/global/urlMaps/l7-ilb-map",
"sslCertificates": /projects/PROJECT_ID/global/sslCertificates/SSL_CERT_NAME
}

Buat aturan penerusan dengan membuat permintaan POST ke metode globalForwardingRules.insert, dengan mengganti PROJECT_ID dengan project ID Anda.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/forwardingRules

{
"name": "gil7-forwarding-rule-a",
"IPAddress": "10.1.2.99",
"IPProtocol": "TCP",
"portRange": "80-80",
"target": "projects/PROJECT_ID/global/targetHttpsProxies/l7-ilb-proxy",
"loadBalancingScheme": "INTERNAL_MANAGED",
"subnetwork": "projects/PROJECT_ID/regions/REGION_A/subnetworks/SUBNET_A",
"network": "projects/PROJECT_ID/global/networks/NETWORK",
"networkTier": "PREMIUM"
}
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/forwardingRules

{
"name": "gil7-forwarding-rule-b",
"IPAddress": "10.1.3.99",
"IPProtocol": "TCP",
"portRange": "80-80",
"target": "projects/PROJECT_ID/global/targetHttpsProxies/l7-ilb-proxy",
"loadBalancingScheme": "INTERNAL_MANAGED",
"subnetwork": "projects/PROJECT_ID/regions/REGION_B/subnetworks/SUBNET_B",
"network": "projects/PROJECT_ID/global/networks/NETWORK",
"networkTier": "PREMIUM"
}

Menguji load balancer

Setelah layanan load balancing berjalan, Anda dapat mengirim traffic ke aturan penerusan dan mengamati traffic yang tersebar ke berbagai instance.

Konfigurasikan aturan firewall

Contoh ini memerlukan aturan firewall fw-allow-ssh untuk VM klien pengujian. fw-allow-ssh adalah aturan ingress yang berlaku untuk VM klien pengujian dan yang memungkinkan konektivitas SSH masuk di TCP port 22 dari alamat mana pun. Anda dapat memilih rentang alamat IP sumber yang lebih ketat untuk aturan ini; misalnya, Anda dapat menentukan hanya rentang alamat IP sistem tempat Anda memulai sesi SSH. Contoh ini menggunakan tag target allow-ssh.

gcloud

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

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. Hubungkan, menggunakan SSH, 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 berhasil dan menampilkan nama VM backend yang melayani permintaan:

      curl 10.1.2.99
      
      curl 10.1.3.99
      

      Untuk pengujian HTTPS, ganti curl dengan:

      curl -k -s 'https://test.example.com:443' --connect-to test.example.com:443:10.1.2.99:443
      
      curl -k -s 'https://test.example.com:443' --connect-to test.example.com:443:10.1.3.99:443
      

      Flag -k menyebabkan curl melewati validasi sertifikat.

    • Opsional: Gunakan data DNS yang dikonfigurasi untuk me-resolve alamat IP.

      curl service.example.com
      

Jalankan 100 permintaan dan pastikan semuanya di-load balance

Untuk HTTP:

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

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

Untuk HTTPS:

  {
    RESULTS=
    for i in {1..100}
    do
      RESULTS="$RESULTS:$(curl -k -s 'https://test.example.com:443' --connect-to test.example.com:443:10.1.2.99:443)"
    done
    echo ""
    echo " Results of load-balancing to 10.1.2.99: "
    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:10.1.3.99:443)"
    done
    echo ""
    echo " Results of load-balancing to 10.1.3.99: "
    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 REGION_B tidak responsif atau tidak dapat dijangkau. Kita menyimulasikannya dengan menghapus semua backend dari REGION_B:

    gcloud compute backend-services remove-backend gil7-backend-service \
       --network-endpoint-group=gl7ilb-serverless-neg-b \
       --network-endpoint-group-zone=ZONE_B
    
  2. Hubungkan, menggunakan SSH, 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 wilayah REGION_B. Output perintah menampilkan respons dari VM backend di REGION_A:

    {
    RESULTS=
    for i in {1..100}
    do
      RESULTS="$RESULTS:$(curl -k -s 'https://test.example.com:443' --connect-to test.example.com:443:10.1.3.99:443)"
    done
    echo "***"
    echo "*** Results of load-balancing to 10.1.3.99: "
    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.

Menggunakan masker URL

Saat membuat NEG tanpa server, Anda dapat menggunakan masker URL untuk mengarah ke beberapa layanan yang ditayangkan di domain yang sama, bukan memilih layanan Cloud Run tertentu. Masker URL adalah template skema URL Anda. NEG tanpa server menggunakan template ini untuk mengekstrak nama layanan dari URL permintaan yang masuk dan memetakan permintaan ke layanan yang sesuai.

Masker URL sangat berguna jika layanan Anda dipetakan ke domain kustom, bukan ke alamat default yang disediakan Google Cloud untuk layanan yang di-deploy. Masker URL memungkinkan Anda menargetkan beberapa layanan dan versi dengan satu aturan meskipun aplikasi Anda menggunakan pola URL kustom.

Jika Anda belum melakukannya, pastikan Anda membaca Ringkasan NEGS Serverless: Masker URL.

Membuat masker URL

Untuk membuat mask URL untuk load balancer, mulailah dengan URL layanan Anda. Contoh ini menggunakan aplikasi serverless contoh yang berjalan di https://example.com/login. Ini adalah URL tempat layanan login aplikasi ditayangkan.

  1. Hapus http atau https dari URL. Anda memiliki example.com/login.
  2. Ganti nama layanan dengan placeholder untuk mask URL.
    • Cloud Run: Ganti nama layanan Cloud Run dengan placeholder <service>. Jika layanan Cloud Run memiliki tag yang terkait dengannya, ganti nama tag dengan placeholder <tag>. Dalam contoh ini, masker URL yang Anda miliki adalah example.com/<service>.
  3. Opsional: Jika nama layanan dapat diekstrak dari bagian jalur URL, domain dapat dihilangkan. Bagian jalur dari mask URL dibedakan oleh karakter garis miring (/) pertama. Jika garis miring (/) tidak ada dalam mask URL, mask tersebut dipahami hanya mewakili host. Oleh karena itu, untuk contoh ini, mask URL dapat dikurangi menjadi /<service>.

    Demikian pula, jika <service> dapat diekstrak dari bagian host URL, Anda dapat menghapus jalur sepenuhnya dari mask URL.

    Anda juga dapat menghapus komponen host atau subdomain yang muncul sebelum placeholder pertama serta komponen jalur yang muncul setelah placeholder terakhir. Dalam kasus tersebut, placeholder akan mengambil informasi yang diperlukan untuk komponen.

Berikut beberapa contoh lainnya yang menunjukkan aturan ini:

Tabel ini mengasumsikan bahwa Anda memiliki domain kustom bernama example.com dan semua layanan Cloud Run Anda sedang dipetakan ke domain ini.

Layanan, Nama tag URL domain kustom Cloud Run Masker URL
service: login https://login-home.example.com/web <service>-home.example.com
service: login https://example.com/login/web example.com/<service> atau /<service>
service: login, tag: test https://test.login.example.com/web <tag>.<service>.example.com
service: login, tag: test https://example.com/home/login/test example.com/home/<service>/<tag> atau /home/<service>/<tag>
service: login, tag: test https://test.example.com/home/login/web <tag>.example.com/home/<service>

Membuat NEG tanpa server dengan masker URL

Konsol

Untuk load balancer baru, Anda dapat menggunakan proses menyeluruh yang sama seperti yang dijelaskan sebelumnya dalam dokumen ini. Saat mengonfigurasi layanan backend, masukkan mask URL, bukan memilih layanan tertentu.

Jika sudah memiliki load balancer, Anda dapat mengedit konfigurasi backend dan mengarahkan NEG serverless ke masker URL, bukan layanan tertentu.

Untuk menambahkan NEG tanpa server berbasis mask URL ke layanan backend yang ada, lakukan tindakan berikut:

  1. Di konsol Google Cloud, buka halaman Load balancing.
    Buka Load balancing
  2. Klik nama load balancer yang memiliki layanan backend yang ingin Anda edit.
  3. Di halaman Detail load balancer, klik Edit.
  4. Di halaman Edit global external Application Load Balancer, klik Backend configuration.
  5. Di halaman Backend configuration, klik Edit untuk layanan backend yang ingin Anda ubah.
  6. Klik Add backend.
  7. Pilih Create Serverless network endpoint group.
    1. Untuk Name, masukkan helloworld-serverless-neg.
    2. Di bagian Region, region load balancer akan ditampilkan.
    3. Di bagian Serverless network endpoint group type, Cloud Run adalah satu-satunya jenis grup endpoint jaringan yang didukung.
      1. Pilih Gunakan Masker URL.
      2. Masukkan masker URL. Untuk mengetahui informasi tentang cara membuat mask URL, lihat Membuat mask URL.
      3. Klik Create.

  8. Di Backend baru, klik Selesai.
  9. Klik Perbarui.

gcloud

Untuk membuat NEG tanpa server dengan contoh masker URL example.com/<service>:

gcloud compute network-endpoint-groups create SERVERLESS_NEG_MASK_NAME \
    --region=REGION \
    --network-endpoint-type=serverless \
    --cloud-run-url-mask="example.com/<service>"

Menggunakan alamat IP yang sama di antara beberapa aturan penerusan internal

Agar beberapa aturan penerusan internal dapat menggunakan alamat IP internal yang sama, Anda harus mencadangkan alamat IP dan menetapkan tanda --purpose-nya ke SHARED_LOADBALANCER_VIP.

gcloud

gcloud compute addresses create SHARED_IP_ADDRESS_NAME \
    --region=REGION \
    --subnet=SUBNET_NAME \
    --purpose=SHARED_LOADBALANCER_VIP
Jika perlu mengalihkan traffic HTTP ke HTTPS, Anda dapat membuat dua aturan penerusan yang menggunakan alamat IP umum. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan pengalihan HTTP ke HTTPS untuk Load Balancer Aplikasi internal.

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 tersebut. 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"
              }
            ]
          }
        }
      ]
    }
  }
}

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.

Menghapus NEG serverless

Grup endpoint jaringan tidak dapat dihapus jika dilampirkan ke layanan backend. Sebelum Anda menghapus NEG, pastikan NEG tersebut dilepaskan dari layanan backend.

Konsol

  1. Untuk memastikan NEG tanpa server yang ingin Anda hapus tidak digunakan oleh layanan backend apa pun, buka tab Layanan backend di halaman Komponen load balancing.
    Buka Layanan backend
  2. Jika NEG serverless sedang digunakan, lakukan hal berikut:
    1. Klik nama layanan backend yang menggunakan NEG tanpa server.
    2. Klik Edit.
    3. Dari daftar Backends, klik untuk menghapus backend NEG tanpa server dari layanan backend.
    4. Klik Simpan.

  3. Buka halaman Network endpoint group di konsol Google Cloud.
    Buka Network endpoint group
  4. Centang kotak untuk NEG serverless yang ingin Anda hapus.
  5. Klik Hapus.
  6. Klik Delete lagi untuk mengonfirmasi.

gcloud

Untuk menghapus NEG tanpa server dari layanan backend, Anda harus menentukan region tempat NEG dibuat.

gcloud compute backend-services remove-backend BACKEND_SERVICE_NAME \
    --network-endpoint-group=SERVERLESS_NEG_NAME \
    --network-endpoint-group-region=REGION \
    --region=REGION

Untuk menghapus NEG tanpa server:

gcloud compute network-endpoint-groups delete SERVERLESS_NEG_NAME \
    --region=REGION

Langkah selanjutnya