Menyiapkan load balancing lanjutan

Dokumen ini berisi petunjuk untuk menyiapkan load balancing lanjutan opsi yang dijelaskan dalam Ringkasan load balancing lanjutan. Dokumen ini ditujukan bagi pengguna yang memiliki setidaknya tingkat menengah pemahaman tentang Cloud Service Mesh dan konsep load balancing.

Sebelum memulai

Update Google Cloud CLI untuk memastikan Anda memiliki versi terbaru:

gcloud components update

Buat layanan backend baru atau tentukan layanan backend yang akan digunakan untuk load balancing lanjutan.

Untuk membuat layanan backend baru bernama hello-world-backend-service, gunakan perintah berikut:

gcloud compute backend-services create hello-world-backend-service \
    --global \
    --protocol=HTTP \
    --health-checks hello-world-health-check \
    --load-balancing-scheme=INTERNAL_SELF_MANAGED

Membuat kebijakan load balancing layanan dengan YAML

Anda dapat menentukan kebijakan load balancing layanan dalam file YAML. Misalnya, menyiapkan kebijakan untuk mengaktifkan fitur pengurasan kapasitas otomatis sebagai berikut, dalam file bernama hello-world-lb-policy:

name: projects/${project-id}/locations/global/serviceLbPolicies/hello-world-lb-policy
autoCapacityDrain:
  enable: True

Setelah Anda membuat file YAML, impor file tersebut:

gcloud network-services service-lb-policies import hello-world-lb-policy \
   --source=hello-world-lb-policy.yaml \
   --location=global

Terakhir, kaitkan kebijakan load balancing layanan dengan layanan backend:

gcloud compute backend-services update hello-world-backend-service \
  --service-lb-policy hello-world-lb-policy \
  --global

Atau, Anda dapat mengaitkan kebijakan load balancing layanan yang ada dengan layanan backend saat Anda membuat layanan backend:

gcloud compute backend-services create hello-world-backend-service \
    --global \
    --protocol=HTTP \
    --health-checks hello-world-health-check \
    --load-balancing-scheme=INTERNAL_SELF_MANAGED \
    --service-lb-policy hello-world-lb-policy

Petunjuk ini hanya mencakup perubahan pada resource layanan backend. Nama Deployment Cloud Service Mesh juga harus menyertakan health check dan firewall aturan, dan Anda harus menambahkan backend sesuai kebutuhan.

Mengonfigurasi algoritma semprotan ke region

Untuk mengonfigurasi algoritma semprotan ke region, yang menyebarkan traffic ke semua zona di suatu region, buat kebijakan load balancing layanan dalam file bernama hello-world-lb-policy.yaml:

name: projects/${project-id}/locations/global/serviceLbPolicies/hello-world-lb-policy
loadBalancingAlgorithm: SPRAY_TO_REGION

Impor file yaml:

gcloud network-services service-lb-policies import hello-world-lb-policy \
   --source=hello-world-lb-policy.yaml \
   --location=global

Anda juga dapat mengonfigurasi algoritma ini dengan gcloud CLI:

gcloud network-services service-lb-policies create hello-world-lb-policy \
    --load-balancing-algorithm=SPRAY_TO_REGION \
    --location=global

Mengonfigurasi algoritma waterfall demi zona

Untuk mengonfigurasi algoritma waterfall demi zona, yang mengirimkan traffic ke jaringan lokal sebelum menyebarkan traffic ke zona lain, buat load balancing layanan kebijakan dalam file bernama hello-world-lb-policy.yaml:

name: projects/${project-id}/locations/global/serviceLbPolicies/hello-world-lb-policy
loadBalancingAlgorithm: WATERFALL_BY_ZONE

Impor file yaml:

gcloud network-services service-lb-policies import hello-world-lb-policy \
   --source=hello-world-lb-policy.yaml \
   --location=global

Anda juga dapat mengonfigurasi algoritma ini dengan gcloud CLI:

gcloud network-services service-lb-policies create hello-world-lb-policy \
    --load-balancing-algorithm=WATERFALL_BY_ZONE \
    --location=global

Mengonfigurasi backend pilihan

Untuk mengonfigurasi backend pilihan, buat kebijakan load balancing layanan sebagai berikut ini:

name: projects/${project-id}/locations/global/backendServices/hello-world-service
...
backends:
...
  preference: PREFERRED

Contoh berikut menunjukkan tiga backend, MIG1, MIG2, dan MIG3:

name: ..
...
- backends
name: MIG1
preference: PREFERRED
- backends
name: MIG2
preference: DEFAULT
- backends
name: MIG3
...

Anda juga dapat mengonfigurasi fitur ini dengan gcloud CLI:

gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
      [...]
      --preference=PREFERRED \
      --global

Untuk mengupdate backend pilihan:

gcloud compute backend-services update-backend BACKEND_SERVICE_NAME \
      [...]
      --preference=PREFERRED

Mengonfigurasi pengurasan kapasitas otomatis

Untuk mengonfigurasi Cloud Service Mesh agar dapat menguras backend secara otomatis berdasarkan kesehatan, buat kebijakan load balancing layanan sebagai berikut:

name: projects/${project-id}/locations/global/serviceLbPolicies/hello-world-lb-policy
autoCapacityDrain:
  enable: True

Anda juga dapat mengonfigurasi fitur ini dengan gcloud CLI:

gcloud network-services service-lb-policies create capacity-drain-policy \
    --auto-capacity-drain \
    --location=global

Menyesuaikan perilaku failover

Guna mengonfigurasi Cloud Service Mesh untuk nilai tertentu untuk kondisi failover nilai minimum, sertakan hal berikut dalam kebijakan load balancing layanan, yang menggantikan VALUE dengan nilai antara 1 dan 99. Nilai defaultnya adalah 50 untuk Cloud Service Mesh dengan gRPC tanpa proxy dan 70 untuk Cloud Service Mesh dengan Envoy.

projects/${project-id}/locations/global/serviceLbPolicies/hello-world-lb-policy
failoverConfig:
  failoverHealthThreshold: VALUE

Untuk menyesuaikan perilaku failover dengan gcloud CLI:

gcloud network-services service-lb-policies create failover-health-threshold--policy \
   --failover-health-threshold=VALUE \
   --location=global