Casi d'uso avanzati

Questa pagina descrive come configurare Service Extensions con i bilanciatori del carico delle applicazioni per casi d'uso avanzati.

Inoltro dinamico

L'inoltro dinamico ti consente di associare migliaia o addirittura milioni di tenant a singole istanze di macchine virtuali (VM) o a set di VM. Puoi utilizzare le estensioni di servizio per determinare in modo programmatico a quali VM viene mappato un singolo tenant senza dover apportare aggiornamenti a una mappa URL. In questo modo, puoi scalare molto oltre i limiti della mappa URL esistente.

Puoi configurare l'inoltro dinamico utilizzando i callout di traffico e route con questi bilanciatori del carico delle applicazioni: bilanciatore del carico delle applicazioni esterno regionale, bilanciatore del carico delle applicazioni interno regionale e bilanciatore del carico delle applicazioni interno tra regioni.

Questa sezione ti guida attraverso un esempio in cui configuri un'estensione del traffico per instradare in modo casuale il traffico tra due VM. Utilizza i valori di esempio forniti.

  1. Configura una rete denominata lb-network, una subnet denominata backend-subnet e una subnet solo proxy nella regione us-west1.

  2. Configura due VM in us-west1 per rappresentare gli endpoint instradabili in modo dinamico.

    Specifica gli indirizzi IP come 10.1.2.1 e 10.1.2.2, rispettivamente. Assicurati che entrambe le VM siano associate al tag load-balanced-backend.

  3. Configura una regola firewall, fw-allow-proxies, che consenta il traffico dalla subnet proxy alle VM nella tua rete.

    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. Crea un servizio di backend, l7-ilb-backend-service, con l'inoltro dinamico e la registrazione abilitati:

    gcloud beta compute backend-services create l7-ilb-backend-service \
        --ip-port-dynamic-forwarding \
        --enable-logging \
        --region=us-west1
    
  5. Crea una mappa URL, l7-ilb-map, per il servizio di backend.

    gcloud compute url-maps create l7-ilb-map \
        --default-service=l7-ilb-backend-service \
        --region=us-west1
    
  6. Crea un proxy di destinazione, 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. Crea una regola di forwarding e prenota un indirizzo IP per il bilanciatore del carico delle applicazioni.

    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. Configura un servizio di backend callout per l'estensione del traffico.

    Per il server delle estensioni, utilizza l'esempio di inoltro dinamico nel repository GitHub di Service Extensions.

  9. Crea un file YAML, dynamic-ext.yaml, con i seguenti contenuti:

    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
    

    Sostituisci PROJECT_ID con l'ID progetto.

    Importa l'estensione del traffico nella regola di forwarding:

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

Con l'estensione configurata, il traffico viene instradato in base all'implementazione del server dell'estensione.

Passaggi successivi