En esta página, se describe cómo configurar extensiones de servicio con balanceadores de cargas de aplicaciones para casos de uso avanzados.
Reenvío dinámico
El reenvío dinámico te ayuda a vincular miles o incluso millones de arrendatarios a instancias de máquina virtual (VM) individuales o conjuntos de VMs. Puedes usar extensiones de servicio para determinar de forma programática a qué VMs se asigna un inquilino individual sin tener que actualizar un mapa de URL. Esto te ayuda a escalar mucho más allá de las limitaciones del mapa de URL existente.
Puedes configurar el reenvío dinámico con llamadas de tráfico y rutas con los siguientes balanceadores de cargas de aplicaciones: balanceador de cargas de aplicaciones externo regional, balanceador de cargas de aplicaciones interno regional y balanceador de cargas de aplicaciones interno entre regiones.
En esta sección, se explica un ejemplo en el que configuras una extensión de tráfico para enrutar el tráfico de forma aleatoria entre dos VMs. Usa los valores de muestra proporcionados.
Configura una red llamada
lb-network, una subred llamadabackend-subnety una subred de solo proxy en la regiónus-west1.Configura dos VMs en
us-west1para representar los extremos con enrutamiento dinámico.Especifica las direcciones IP como
10.1.2.1y10.1.2.2, respectivamente. Asegúrate de que ambas VMs estén asociadas con la etiquetaload-balanced-backend.Configura una regla de firewall,
fw-allow-proxies, que permita el tráfico de la subred proxy a las VMs de tu red.gcloud compute firewall-rules create fw-allow-proxies \ --network=df-network \ --action=allow \ --direction=ingress \ --source-ranges=source-range \ --target-tags=load-balanced-backend \ --rules=tcp:80,tcp:443,tcp:8080Crea un servicio de backend,
l7-ilb-backend-service, con el reenvío dinámico y el registro habilitados:gcloud beta compute backend-services create l7-ilb-backend-service \ --ip-port-dynamic-forwarding \ --enable-logging \ --region=us-west1Crea un mapa de URL,
l7-ilb-map, para el servicio de backend.gcloud compute url-maps create l7-ilb-map \ --default-service=l7-ilb-backend-service \ --region=us-west1Crea un proxy de destino,
l7-ilb-proxy.gcloud compute target-http-proxies create l7-ilb-proxy \ --url-map=l7-ilb-map \ --url-map-region=us-west1 \ --region=us-west1Crea una regla de reenvío y reserva una dirección IP para el balanceador de cargas de aplicaciones.
gcloud compute forwarding-rules create l7-ilb-forwarding-rule \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=lb-network \ --subnet=backend-subnet \ --subnet-region=us-west1 \ --ports=80 \ --region=us-west1 \ --target-http-proxy=l7-ilb-proxy \ --target-http-proxy-region=us-west1Configura un servicio de backend de texto destacado para la extensión de ubicación.
Para el servidor de extensiones, usa el ejemplo de reenvío dinámico en el repositorio de GitHub de Service Extensions.
Crea un archivo YAML,
dynamic-ext.yaml, con el siguiente contenido:name: traffic-ext forwardingRules: - https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/forwardingRules/l7-ilb-forwarding-rule loadBalancingScheme: INTERNAL_MANAGED extensionChains: - name: "chain1" matchCondition: celExpression: 'request.host == "example.com"' extensions: - name: 'ext11' authority: ext11.com allowedDynamicForwarding: true service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/backendServices/l7-ilb-callout-service failOpen: false timeout: 0.1s supportedEvents: - REQUEST_HEADERSReemplaza
PROJECT_IDpor el ID del proyecto.Importa la extensión de tráfico a la regla de reenvío:
gcloud service-extensions lb-traffic-extensions import traffic-ext \ --source=dynamic-ext.yaml \ --region=us-west1
Con la extensión configurada, el tráfico se enruta según la implementación del servidor de la extensión.
¿Qué sigue?
- Administrar extensiones
- Consulta ejemplos de servidores
ext-procen Python y Go en el repositorio de GitHub de Service Extensions para textos destacados.