Configura el balanceo de cargas avanzado

En este documento, se incluyen instrucciones para configurar las opciones avanzadas de balanceo de cargas que se describen en Descripción general del balanceo de cargas avanzado. Este documento está dirigido a usuarios que tienen, al menos, un conocimiento intermedio de los conceptos de Cloud Service Mesh y del balanceo de cargas.

Antes de comenzar

Actualiza Google Cloud CLI para asegurarte de tener la versión más reciente:

gcloud components update

Crea un servicio de backend nuevo o decide qué servicio de backend existente usar para el balanceo de cargas avanzado.

Para crear un servicio de backend nuevo llamado hello-world-backend-service, usa el siguiente 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

Crea una política de balanceo de cargas de servicios con YAML

Puedes definir políticas de balanceo de cargas de servicios en un archivo YAML. Por ejemplo, configura una política para habilitar la función de desvío automático de capacidad de la siguiente manera, en un archivo llamado hello-world-lb-policy:

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

Después de crear el archivo YAML, impórtalo:

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

Por último, asocia la política de balanceo de cargas del servicio al servicio de backend:

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

Como alternativa, puedes asociar una política de balanceo de cargas de servicio existente con un servicio de backend cuando creas el servicio de backend:

gcloud beta 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

Estas instrucciones solo abarcan cambios en el recurso del servicio de backend. La implementación de Cloud Service Mesh también debe incluir una verificación de estado y reglas de firewall, y debes agregar backends según sea necesario.

Configura el algoritmo de dirigir a la región

Para configurar el algoritmo de rocío a región, que distribuye el tráfico a todas las zonas de una región, crea una política de balanceo de cargas de servicios en un archivo llamado hello-world-lb-policy.yaml:

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

Importa el archivo YAML:

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

También puedes configurar este algoritmo con gcloud CLI:

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

Configura el algoritmo de cascada por zona

Para configurar el algoritmo de cascada por zona, que envía tráfico a la zona local antes de derramar tráfico a otras zonas, crea una política de balanceo de cargas de servicios en un archivo llamado hello-world-lb-policy.yaml:

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

Importa el archivo YAML:

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

También puedes configurar este algoritmo con gcloud CLI:

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

Configura backends preferidos

Para configurar backends preferidos, crea una política de balanceo de cargas de servicio de la siguiente manera:

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

En el siguiente ejemplo, se muestran tres backends: MIG1, MIG2 y MIG3:

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

También puedes configurar esta función con gcloud CLI:

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

Para actualizar los backends preferidos, haz lo siguiente:

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

Configura el vaciado automático de capacidad

Si deseas configurar Cloud Service Mesh para vaciar un backend automáticamente en función de su estado, crea una política de balanceo de cargas de servicios de la siguiente manera:

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

También puedes configurar esta función con gcloud CLI:

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

Personaliza el comportamiento de la conmutación por error

Si deseas configurar Cloud Service Mesh para un valor específico del umbral de estado de conmutación por error, incluye lo siguiente en una política de balanceo de cargas de servicio y reemplaza VALUE por un valor entre 1 y 99. Los valores predeterminados son 50 para Cloud Service Mesh con gRPC sin proxy y 70 para Cloud Service Mesh con Envoy.

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

Para personalizar el comportamiento de la conmutación por error con gcloud CLI, sigue estos pasos:

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