Komplexere Anwendungsfälle

Auf dieser Seite wird beschrieben, wie Sie Service Extensions mit Application Load Balancern für erweiterte Anwendungsfälle konfigurieren.

Dynamische Weiterleitung

Mit der dynamischen Weiterleitung können Sie Tausende oder sogar Millionen von Mandanten an einzelne VM-Instanzen oder VM-Gruppen binden. Mit Dienst-Extensions können Sie programmatisch festlegen, welchen VMs ein einzelner Mandant zugeordnet wird, ohne dass Sie eine URL-Zuordnung aktualisieren müssen. So können Sie die Einschränkungen der vorhandenen URL-Zuordnung weit überschreiten.

Sie können das dynamische Weiterleiten mit Traffic- und Routenaufrufen mit den folgenden Application Load Balancern konfigurieren: regionaler externer Application Load Balancer, regionaler interner Application Load Balancer und regionenübergreifender interner Application Load Balancer.

In diesem Abschnitt wird ein Beispiel beschrieben, in dem Sie eine Traffic-Erweiterung konfigurieren, um Traffic zufällig zwischen zwei VMs weiterzuleiten. Verwenden Sie die angegebenen Beispielwerte.

  1. Konfigurieren Sie ein Netzwerk mit dem Namen lb-network, ein Subnetz mit dem Namen backend-subnet und ein Nur-Proxy-Subnetz in der Region us-west1.

  2. Konfigurieren Sie zwei VMs in us-west1, um die dynamisch weiterleitbaren Endpunkte darzustellen.

    Geben Sie die IP-Adressen als 10.1.2.1 bzw. 10.1.2.2 an. Achten Sie darauf, dass beide VMs mit dem Tag load-balanced-backend verknüpft sind.

  3. Konfigurieren Sie eine Firewallregel, fw-allow-proxies, die Traffic vom Proxy-Subnetz zu VMs in Ihrem Netzwerk zulässt.

    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. Erstellen Sie einen Backend-Dienst, l7-ilb-backend-service, mit aktivierter dynamischer Weiterleitung und Protokollierung:

    gcloud beta compute backend-services create l7-ilb-backend-service \
        --ip-port-dynamic-forwarding \
        --enable-logging \
        --region=us-west1
    
  5. URL-Zuordnungl7-ilb-map für den Back-End-Dienst erstellen.

    gcloud compute url-maps create l7-ilb-map \
        --default-service=l7-ilb-backend-service \
        --region=us-west1
    
  6. Ziel-Proxy erstellen, 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. Weiterleitungsregel erstellen und IP-Adresse für den Application Load Balancer reservieren.

    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. Richten Sie einen Callout-Backend-Dienst für die Traffic-Erweiterung ein.

    Verwenden Sie für den Erweiterungsserver das Beispiel für dynamische Weiterleitung im GitHub-Repository für Service Extensions.

  9. Erstellen Sie eine YAML-Datei mit dem Namen dynamic-ext.yaml mit folgendem Inhalt:

    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
    

    Ersetzen Sie PROJECT_ID durch die Projekt-ID.

    Importieren Sie die Traffic-Erweiterung in die Weiterleitungsregel:

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

Wenn die Erweiterung konfiguriert ist, wird der Traffic basierend auf der Serverimplementierung der Erweiterung weitergeleitet.

Nächste Schritte