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.
Configurez un réseau nommé
lb-network, un sous-réseau nommébackend-subnetet un sous-réseau proxy réservé dans la régionus-west1.Configurez deux VM dans
us-west1pour représenter les points de terminaison routables de manière dynamique.Spécifiez les adresses IP comme
10.1.2.1et10.1.2.2, respectivement. Assurez-vous que les deux VM sont associées au tagload-balanced-backend.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:8080Cré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-west1Cré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-west1Cré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-west1Cré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-west1Configurez 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.
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_HEADERSRemplacez
PROJECT_IDpar 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
- Gérer les extensions
- Consultez les exemples Python et Go de serveurs
ext-procdans le dépôt GitHub Service Extensions pour les rappels.