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 la Descripción general del balanceo de cargas avanzado. Este documento está dirigido a usuarios que tengan, al menos, un conocimiento intermedio de los conceptos de Cloud Service Mesh y el 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ás para el balanceo de cargas avanzado.
Para crear un nuevo servicio de backend 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 servicio con YAML
Puedes definir políticas de balanceo de cargas de servicio en un archivo YAML. Por ejemplo, configura una política para habilitar la función de agotamiento 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 con el 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
En estas instrucciones, solo se abarcan los cambios en el recurso del servicio de backend. Tu 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 rociamiento a la región
Para configurar el algoritmo de rociador a región, que distribuye el tráfico a todas las zonas en una región, crea una política de balanceo de cargas de servicio 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 desbordarlo a otras zonas, crea una política de balanceo de cargas de servicio 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 los backends preferidos
Para configurar los 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
Sigue estos pasos para actualizar los backends preferidos:
gcloud compute backend-services update-backend BACKEND_SERVICE_NAME \ [...] --preference=PREFERRED
Configura el desvío automático de capacidad
Si deseas configurar Cloud Service Mesh para que desvíe un backend de forma automática según su estado, crea una política de balanceo de cargas de servicio 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 conmutación por error con gcloud CLI:
gcloud network-services service-lb-policies create failover-health-threshold--policy --failover-health-threshold=VALUE --location=global