Configurar el balanceo de carga avanzado
En este documento se explica cómo configurar las opciones avanzadas de balanceo de carga que se describen en el artículo Descripción general del balanceo de carga avanzado. Este documento está dirigido a usuarios que tengan al menos un conocimiento intermedio de los conceptos de Cloud Service Mesh y balanceo de carga.
Antes de empezar
Actualiza la CLI de Google Cloud para asegurarte de que tienes la versión más reciente:
gcloud components update
Crea un servicio de backend o decide qué servicio de backend quieres usar para el balanceo de carga avanzado.
Para crear un 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
Crear una política de balanceo de carga de servicio con YAML
Puedes definir políticas de balanceo de carga de servicios en un archivo YAML. Por ejemplo, configura una política para habilitar la función de drenaje 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
Una vez que haya creado el archivo YAML, impórtelo:
gcloud 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 carga de servicio al servicio de backend:
gcloud compute backend-services update hello-world-backend-service \ --service-lb-policy hello-world-lb-policy \ --global
También puedes asociar una política de balanceo de carga de servicio a un servicio de backend cuando crees el servicio de 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
Estas instrucciones solo abarcan los cambios en el recurso de servicio de backend. Tu implementación de Cloud Service Mesh también debe incluir una comprobación de estado y reglas de firewall, y debes añadir back-ends según sea necesario.
Configurar el algoritmo de pulverización en una región
Para configurar el algoritmo de dispersión por región, que distribuye el tráfico a todas las zonas de una región, crea una política de balanceo de carga 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 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 la CLI de gcloud:
gcloud network-services service-lb-policies create hello-world-lb-policy \ --load-balancing-algorithm=SPRAY_TO_REGION \ --location=global
Configurar 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 derivarlo a otras zonas, crea una política de balanceo de carga 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 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 la CLI de gcloud:
gcloud network-services service-lb-policies create hello-world-lb-policy \ --load-balancing-algorithm=WATERFALL_BY_ZONE \ --location=global
Configurar backends preferidos
Para configurar los backends preferidos, crea una política de balanceo de carga 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 back-ends: 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 la CLI de gcloud:
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ [...] --preference=PREFERRED \ --global
Para actualizar los backends preferidos, sigue estos pasos:
gcloud compute backend-services update-backend BACKEND_SERVICE_NAME \ [...] --preference=PREFERRED
Configurar el drenaje automático de capacidad
Para configurar Cloud Service Mesh de forma que drene un backend automáticamente en función de su estado, crea una política de balanceo de carga 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 la CLI de gcloud:
gcloud network-services service-lb-policies create capacity-drain-policy \ --auto-capacity-drain \ --location=global
Personalizar el comportamiento de conmutación por error
Para configurar Cloud Service Mesh con un valor específico para el umbral de estado de failover, incluya lo siguiente en una política de balanceo de carga de servicio y sustituya 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, sigue estos pasos:
gcloud network-services service-lb-policies create failover-health-threshold--policy \ --failover-health-threshold=VALUE \ --location=global