Configura il bilanciamento del carico avanzato

Questo documento contiene le istruzioni per configurare le opzioni di bilanciamento del carico avanzate descritte nella Panoramica del bilanciamento del carico avanzato. Questo documento è destinato a utenti che dispongono di almeno un livello intermedio Conoscenza dei concetti di Cloud Service Mesh e bilanciamento del carico.

Prima di iniziare

Aggiorna Google Cloud CLI per assicurarti di avere la versione più recente:

gcloud components update

Crea un nuovo servizio di backend o decidi quale servizio di backend esistente utilizzare per il bilanciamento del carico avanzato.

Per creare un nuovo servizio di backend denominato hello-world-backend-service, utilizza il seguente comando:

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

Creare un criterio di bilanciamento del carico del servizio con YAML

Puoi definire i criteri di bilanciamento del carico del servizio in un file YAML. Ad esempio: configurare un criterio per abilitare la funzionalità di svuotamento automatico della capacità come segue, in un file denominato hello-world-lb-policy:

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

Dopo aver creato il file YAML, importalo:

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

Infine, associa il criterio di bilanciamento del carico del servizio al servizio di backend:

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

In alternativa, puoi associare un criterio di bilanciamento del carico del servizio esistente con un servizio di backend quando lo crei:

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

Queste istruzioni riguardano solo le modifiche alla risorsa del servizio di backend. Il deployment di Cloud Service Mesh deve includere anche un controllo di integrità e regole di firewall e devi aggiungere i backend in base alle esigenze.

Configura l'algoritmo di distribuzione in base alla regione

a configurare l'algoritmo spray-to-region, che diffonde il traffico in tutte le zone in una regione, crea un criterio di bilanciamento del carico del servizio in un file hello-world-lb-policy.yaml:

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

Importa il file YAML:

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

Puoi anche configurare questo algoritmo con gcloud CLI:

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

Configurare l'algoritmo con struttura a cascata per zona

Per configurare l'algoritmo a cascata per zona, che invia il traffico all'amministratore locale prima di versare traffico in altre zone, crea un bilanciamento del carico del servizio criterio in un file denominato hello-world-lb-policy.yaml:

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

Importa il file YAML:

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

Puoi anche configurare questo algoritmo con l'interfaccia a riga di comando gcloud:

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

Configura i backend preferiti

Per configurare i backend preferiti, crea un criterio di bilanciamento del carico del servizio come che segue:

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

L'esempio seguente mostra tre backend, MIG1, MIG2 e MIG3:

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

Puoi anche configurare questa funzionalità con gcloud CLI:

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

Per aggiornare i backend preferiti:

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

Configurare lo svuotamento automatico della capacità

Configurare Cloud Service Mesh per lo svuotamento automatico di un backend in base l'integrità, crea un criterio di bilanciamento del carico del servizio come segue:

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

Puoi anche configurare questa funzionalità con gcloud CLI:

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

Personalizza comportamento di failover

Per configurare Cloud Service Mesh per un valore specifico per la soglia di salute del failover, includi quanto segue in un criterio di bilanciamento del carico del servizio, sostituendo VALUE con un valore compreso tra 1 e 99. I valori predefiniti sono 50 per Cloud Service Mesh con gRPC proxyless e 70 per Cloud Service Mesh con Envoy.

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

Per personalizzare il comportamento di failover con gcloud CLI:

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