Cas d'utilisation avancés

Cette page explique comment configurer des extensions de service avec des équilibreurs de charge d'application pour des cas d'utilisation avancés.

Transfert dynamique

Le transfert dynamique vous permet d'associer des milliers, voire des millions de locataires à des instances de machines virtuelles (VM) individuelles ou à des ensembles de VM. Vous pouvez utiliser les extensions de service pour déterminer par programmation les VM auxquelles un locataire individuel est mappé, sans avoir à mettre à jour un mappage d'URL. Cela vous permet de dépasser largement les limites du mappage d'URL existant.

Vous pouvez configurer le transfert dynamique à l'aide d'appels de trafic et de route avec les équilibreurs de charge d'application suivants : équilibreur de charge d'application externe régional, équilibreur de charge d'application interne régional et équilibreur de charge d'application interne interrégional.

Cette section vous guide à travers un exemple dans lequel vous configurez une extension de trafic pour acheminer le trafic de manière aléatoire entre deux VM. Utilisez les exemples de valeurs fournis.

  1. Configurez un réseau nommé lb-network, un sous-réseau nommé backend-subnet et un sous-réseau proxy réservé dans la région us-west1.

  2. Configurez deux VM dans us-west1 pour représenter les points de terminaison routables de manière dynamique.

    Spécifiez les adresses IP comme 10.1.2.1 et 10.1.2.2, respectivement. Assurez-vous que les deux VM sont associées au tag load-balanced-backend.

  3. Configurez une règle de pare-feu, fw-allow-proxies, qui autorise le trafic provenant du sous-réseau proxy vers les VM de votre réseau.

    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. Créez un service de backend, l7-ilb-backend-service, avec le transfert dynamique et la journalisation activés :

    gcloud beta compute backend-services create l7-ilb-backend-service \
        --ip-port-dynamic-forwarding \
        --enable-logging \
        --region=us-west1
    
  5. Créez un mappage d'URL, l7-ilb-map, pour le service de backend.

    gcloud compute url-maps create l7-ilb-map \
        --default-service=l7-ilb-backend-service \
        --region=us-west1
    
  6. Créez un proxy cible, 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. Créez une règle de transfert et réservez une adresse IP pour l'équilibreur de charge d'application.

    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. Configurez un service de backend d'appel pour l'extension de trafic.

    Pour le serveur d'extension, utilisez l'exemple de transfert dynamique dans le dépôt GitHub Service Extensions.

  9. Créez un fichier YAML, dynamic-ext.yaml, avec le contenu suivant :

    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
    

    Remplacez PROJECT_ID par l'ID du projet.

    Importez l'extension de trafic dans la règle de transfert :

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

Une fois l'extension configurée, le trafic est acheminé en fonction de l'implémentation du serveur d'extension.

Étapes suivantes