Casos de uso avançado

Nesta página, descrevemos como configurar extensões de serviço com balanceadores de carga de aplicativo para casos de uso avançados.

Encaminhamento dinâmico

O encaminhamento dinâmico ajuda a vincular milhares ou até milhões de locatários a instâncias de máquina virtual (VMs) individuais ou conjuntos de VMs. É possível usar extensões de serviço para determinar de maneira programática a quais VMs um inquilino individual é mapeado sem precisar fazer atualizações em um mapa de URL. Isso ajuda você a escalar muito além das limitações do mapa de URL atual.

É possível configurar o encaminhamento dinâmico usando indicadores de tráfego e rota com estes balanceadores de carga de aplicativo: balanceador de carga de aplicativo externo regional, balanceador de carga de aplicativo interno regional e balanceador de carga de aplicativo interno entre regiões.

Nesta seção, você vai aprender a configurar uma extensão de tráfego para rotear aleatoriamente o tráfego entre duas VMs. Use os valores de amostra fornecidos.

  1. Configure uma rede chamada lb-network, uma sub-rede chamada backend-subnet e uma sub-rede somente proxy na região us-west1.

  2. Configure duas VMs em us-west1 para representar os endpoints roteáveis dinamicamente.

    Especifique os endereços IP como 10.1.2.1 e 10.1.2.2, respectivamente. Verifique se as duas VMs estão associadas à tag load-balanced-backend.

  3. Configure uma regra de firewall, fw-allow-proxies, que permita o tráfego da sub-rede proxy para as VMs na sua rede.

    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:8080
    
  4. Crie um serviço de back-end, l7-ilb-backend-service, com encaminhamento dinâmico e geração de registros ativados:

    gcloud beta compute backend-services create l7-ilb-backend-service \
        --ip-port-dynamic-forwarding \
        --enable-logging \
        --region=us-west1
    
  5. Crie um mapa de URL, l7-ilb-map, para o serviço de back-end.

    gcloud compute url-maps create l7-ilb-map \
        --default-service=l7-ilb-backend-service \
        --region=us-west1
    
  6. Crie um 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-west1
    
  7. Crie uma regra de encaminhamento e reserve um endereço IP para o balanceador de carga de aplicativo.

    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-west1
    
  8. Configure um serviço de back-end de callout para a extensão de tráfego.

    Para o servidor de extensão, use o exemplo de encaminhamento dinâmico no repositório do GitHub do Service Extensions.

  9. Crie um arquivo YAML, dynamic-ext.yaml, com o seguinte conteúdo:

    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_HEADERS
    

    Substitua PROJECT_ID pelo ID do projeto.

    Importe a extensão de tráfego para a regra de encaminhamento:

    gcloud service-extensions lb-traffic-extensions import traffic-ext \
        --source=dynamic-ext.yaml \
        --region=us-west1
    

Com a extensão configurada, o tráfego é encaminhado com base na implementação do servidor da extensão.

A seguir