L'équilibreur de charge proxy interne régional est un équilibreur de charge régional de couche 4 basé sur un proxy qui vous permet d'exécuter et d'effectuer le scaling de votre trafic de service TCP derrière une adresse IP interne accessible uniquement aux clients situés dans le même réseau VPC ou aux clients connectés à votre réseau VPC.
Ce guide contient des instructions pour configurer un équilibreur de charge réseau proxy interne régional avec un backend de groupe d'instances géré (MIG).
Avant de commencer, consultez la présentation de l'équilibreur de charge réseau proxy interne.
Présentation
Dans cet exemple, nous utilisons l'équilibreur de charge pour répartir le trafic TCP entre les VM de backend de deux groupes d'instances gérés zonaux dans la région REGION_A
. Pour les besoins de cet exemple, le service est un ensemble de serveurs Apache configurés pour répondre sur le port 110
.
De nombreux navigateurs n'autorisent pas le port 110
. La section consacrée aux tests utilise donc curl
.
Dans cet exemple, vous configurez les éléments suivants :
L'équilibreur de charge réseau proxy interne régional est un équilibreur de charge régional. Tous les composants de l'équilibreur de charge (groupes d'instances backend, service de backend, proxy cible et règle de transfert) doivent se trouver dans la même région.
Autorisations
Pour suivre ce guide, vous devez savoir comment créer des instances et modifier un réseau dans un projet. Vous devez être propriétaire ou éditeur du projet, ou disposer de tous les rôles IAM Compute Engine suivants :
Tâche | Rôle requis |
---|---|
Créer des réseaux, des sous-réseaux et des composants de l'équilibreur de charge | Administrateur réseau |
Ajouter et supprimer des règles de pare-feu | Administrateur de sécurité |
Créer des instances | Administrateur d'instances Compute |
Pour en savoir plus, consultez les guides suivants :
- Access control (Contrôle des accès)
- Conditions IAM
Configurer le réseau et les sous-réseaux
Vous avez besoin d'un réseau VPC avec deux sous-réseaux : un pour les backends de l'équilibreur de charge et l'autre pour les proxys de l'équilibreur de charge. Les équilibreurs de charge réseau proxy internes régionaux sont régionaux. Le trafic au sein du réseau VPC est acheminé vers l'équilibreur de charge si la source du trafic se trouve dans un sous-réseau dans la même région que l'équilibreur de charge.
Cet exemple utilise le réseau VPC, la région et les sous-réseaux suivants :
Réseau : le réseau est un réseau VPC en mode personnalisé nommé
lb-network
.Sous-réseau pour les backends : un sous-réseau nommé
backend-subnet
dans la régionREGION_A
utilise10.1.2.0/24
pour sa plage d'adresses IP principale.Sous-réseau pour les proxys : un sous-réseau nommé
proxy-only-subnet
dans la régionREGION_A
utilise10.129.0.0/23
pour sa plage d'adresses IP principale.
Pour tester l'accès mondial, cet exemple crée également une deuxième VM cliente de test dans une région différente (REGION_B), ainsi qu'un sous-réseau avec la plage d'adresses IP principale10.3.4.0/24
.
Créer le réseau et les sous-réseaux
Console
Dans la console Google Cloud, accédez à la page Réseaux VPC.
Cliquez sur Créer un réseau VPC.
Dans le champ Nom, saisissez
lb-network
.Dans la section Sous-réseaux, définissez le Mode de création du sous-réseau sur Personnalisé.
Créez un sous-réseau pour les backends de l'équilibreur de charge. Dans la section Nouveau sous-réseau, saisissez les informations suivantes :
- Nom :
backend-subnet
- Région :
REGION_A
- Plage d'adresses IP :
10.1.2.0/24
- Nom :
Cliquez sur OK.
Cliquez sur Ajouter un sous-réseau.
Créez un sous-réseau pour faire la démonstration de l'accès mondial. Dans la section Nouveau sous-réseau, saisissez les informations suivantes :
- Nom :
test-global-access-subnet
- Région :
REGION_B
- Plage d'adresses IP :
10.3.4.0/24
- Nom :
Cliquez sur OK.
Cliquez sur Créer.
gcloud
Créez le réseau VPC personnalisé à l'aide de la commande
gcloud compute networks create
:gcloud compute networks create lb-network --subnet-mode=custom
Créez un sous-réseau dans le réseau
lb-network
de la régionREGION_A
à l'aide de la commandegcloud compute networks subnets create
:gcloud compute networks subnets create backend-subnet \ --network=lb-network \ --range=10.1.2.0/24 \ --region=REGION_A
Remplacez REGION_A par le nom de la région Google Cloud cible.
Créez un sous-réseau dans le réseau
lb-network
de la régionREGION_B
à l'aide de la commandegcloud compute networks subnets create
:gcloud compute networks subnets create test-global-access-subnet \ --network=lb-network \ --range=10.3.4.0/24 \ --region=REGION_B
Remplacez REGION_B par le nom de la région Google Cloud dans laquelle vous souhaitez créer le deuxième sous-réseau pour tester l'accès mondial.
Créer le sous-réseau proxy réservé
Un sous-réseau proxy réservé fournit un ensemble d'adresses IP utilisées par Google pour exécuter des proxys Envoy en votre nom. Les proxys interrompent les connexions du client et créent de nouvelles connexions vers les backends.
Ce sous-réseau proxy réservé est utilisé par tous les équilibreurs de charge basés sur Envoy dans la région REGION_A
du réseau VPC lb-network
.
Console
Si vous utilisez la console Google Cloud, vous pouvez créer le sous-réseau proxy réservé ultérieurement sur la page Équilibrage de charge.
Si vous souhaitez créer le sous-réseau proxy réservé maintenant, procédez comme suit :
- Dans Google Cloud Console, accédez à la page Réseaux VPC.
Accéder à la page "Réseaux VPC" - Cliquez sur le nom du réseau VPC partagé :
lb-network
. - Cliquez sur Ajouter un sous-réseau.
- Dans le champ Nom, saisissez
proxy-only-subnet
. - Pour Région, sélectionnez
REGION_A
. - Définissez le champ Objectif sur Proxy géré régional.
- Dans Plage d'adresses IP, saisissez
10.129.0.0/23
. - Cliquez sur Ajouter.
gcloud
Créez le sous-réseau proxy réservé à l'aide de la commande gcloud compute networks subnets
create
.
gcloud compute networks subnets create proxy-only-subnet \ --purpose=REGIONAL_MANAGED_PROXY \ --role=ACTIVE \ --region=REGION_A \ --network=lb-network \ --range=10.129.0.0/23
Créer des règles de pare-feu
Cet exemple nécessite les règles de pare-feu suivantes :
fw-allow-ssh
: règle d'entrée, applicable aux instances faisant l'objet d'un équilibrage de charge, qui autorise la connectivité SSH entrante sur le port TCP22
à partir de n'importe quelle adresse. Vous pouvez choisir une plage d'adresses IP sources plus restrictive pour cette règle. Par exemple, vous pouvez spécifier uniquement les plages d'adresses IP du système à partir duquel vous souhaitez lancer des sessions SSH. Cet exemple utilise le tag cibleallow-ssh
.fw-allow-health-check
: règle d'entrée, applicable aux instances faisant l'objet d'un équilibrage de charge, qui autorise tout le trafic TCP issu des systèmes de vérification d'état Google Cloud (dans130.211.0.0/22
et35.191.0.0/16
). Cet exemple utilise le tag cibleallow-health-check
.fw-allow-proxy-only-subnet
: règle d'entrée qui autorise les connexions provenant du sous-réseau proxy réservé à accéder aux backends.
Sans ces règles de pare-feu, la règle d'entrée interdite par défaut bloque le trafic entrant vers les instances backend.
Les tags cibles définissent les instances backend. Sans les tags cibles, les règles de pare-feu s'appliquent à toutes les instances backend du réseau VPC. Lorsque vous créez les VM de backend, veillez à inclure les tags cibles spécifiés, comme décrit dans la section Créer un groupe d'instances géré.
Console
- Dans la console Google Cloud, accédez à la page Règles d'administration.
Accéder à la page "Stratégies de pare-feu" - Cliquez de nouveau sur Créer une règle de pare-feu pour créer la règle autorisant les connexions SSH entrantes :
- Nom :
fw-allow-ssh
- Réseau :
lb-network
- Sens du trafic : entrée
- Action en cas de correspondance : autoriser
- Cibles : Tags cibles spécifiés
- Tags cibles :
allow-ssh
- Filtre source : Plages IPv4
- Plages IPv4 sources :
0.0.0.0/0
- Protocoles et ports :
- Choisissez Protocoles et ports spécifiés.
- Cochez la case TCP, puis saisissez
22
pour le numéro de port.
- Nom :
- Cliquez sur Créer.
- Cliquez une deuxième fois sur Créer une règle de pare-feu pour créer la règle autorisant les vérifications d'état Google Cloud :
- Nom :
fw-allow-health-check
- Réseau :
lb-network
- Sens du trafic : entrée
- Action en cas de correspondance : autoriser
- Cibles : Tags cibles spécifiés
- Tags cibles :
allow-health-check
- Filtre source : Plages IPv4
- Plages IPv4 sources :
130.211.0.0/22
et35.191.0.0/16
- Protocoles et ports :
- Choisissez Protocoles et ports spécifiés.
- Cochez la case TCP, puis saisissez
80
pour le numéro de port.
Nous vous recommandons de limiter cette règle aux seuls protocoles et ports qui correspondent à ceux utilisés par votre vérification de l'état. Si vous utiliseztcp:80
pour le protocole et le port, Google Cloud peut contacter vos VM via HTTP sur le port80
, mais pas via HTTPS sur le port443
.
- Nom :
- Cliquez sur Créer.
- Cliquez une troisième fois sur Créer une règle de pare-feu pour créer la règle autorisant les serveurs proxy de l'équilibreur de charge à se connecter aux backends :
- Nom :
fw-allow-proxy-only-subnet
- Réseau :
lb-network
- Sens du trafic : entrée
- Action en cas de correspondance : autoriser
- Cibles : Tags cibles spécifiés
- Tags cibles :
allow-proxy-only-subnet
- Filtre source : Plages IPv4
- Plages IPv4 sources :
10.129.0.0/23
- Protocoles et ports :
- Choisissez Protocoles et ports spécifiés.
- Cochez la case TCP, puis saisissez
80
pour les numéros de port.
- Nom :
- Cliquez sur Créer.
gcloud
Créez la règle de pare-feu
fw-allow-ssh
pour autoriser la connectivité SSH aux VM avec le tag réseauallow-ssh
. Lorsque vous omettezsource-ranges
, Google Cloud interprète la règle comme désignant n'importe quelle source.gcloud compute firewall-rules create fw-allow-ssh \ --network=lb-network \ --action=allow \ --direction=ingress \ --target-tags=allow-ssh \ --rules=tcp:22
Créez la règle
fw-allow-health-check
pour autoriser les vérifications d'état Google Cloud. Cet exemple autorise tout le trafic TCP provenant des tests de vérification d'état. Toutefois, vous pouvez configurer un ensemble de ports plus restreint en fonction de vos besoins.gcloud compute firewall-rules create fw-allow-health-check \ --network=lb-network \ --action=allow \ --direction=ingress \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --target-tags=allow-health-check \ --rules=tcp:80
Créez la règle
fw-allow-proxy-only-subnet
pour autoriser les proxys Envoy de la région à se connecter à vos backends. Définissez--source-ranges
sur les plages allouées de votre sous-réseau proxy réservé, dans cet exemple,10.129.0.0/23
.gcloud compute firewall-rules create fw-allow-proxy-only-subnet \ --network=lb-network \ --action=allow \ --direction=ingress \ --source-ranges=10.129.0.0/23 \ --target-tags=allow-proxy-only-subnet \ --rules=tcp:80
Réserver l'adresse IP de l'équilibreur de charge
Pour réserver une adresse IP interne statique pour votre équilibreur de charge, consultez la section Réserver une nouvelle adresse IPv4 ou IPv6 interne statique.
Créer un groupe d'instances géré
Cette section explique comment créer deux backends de groupe d'instances géré (MIG) dans la région REGION_A
pour l'équilibreur de charge. Le MIG fournit des instances de VM exécutant les serveurs Apache backend pour cet exemple d'équilibreur de charge réseau proxy interne.
En règle générale, un équilibreur de charge réseau proxy interne régional n'est pas utilisé pour le trafic HTTP. Néanmoins, le logiciel Apache est couramment utilisé pour les tests.
Console
Créez un modèle d'instance. Dans la console Google Cloud, accédez à la page Modèles d'instances.
Accéder à la page Modèles d'instances
- Cliquez sur Create instance template (Créer un modèle d'instance).
- Dans le champ Nom, saisissez
int-tcp-proxy-backend-template
. - Assurez-vous que le disque de démarrage est défini sur une image Debian, telle que Debian GNU/Linux 10 (Stretch). Ces instructions utilisent des commandes uniquement disponibles dans Debian, comme
apt-get
. - Cliquez sur Options avancées.
- Cliquez sur Mise en réseau et configurez les champs suivants :
- Pour Tags réseau, saisissez
allow-ssh
,allow-health-check
etallow-proxy-only-subnet
. - Pour Interfaces réseau, sélectionnez l'option suivante :
- Réseau :
lb-network
- Sous-réseau :
backend-subnet
- Réseau :
- Pour Tags réseau, saisissez
Cliquez sur Gestion. Saisissez le script suivant dans le champ Script de démarrage.
#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2
Cliquez sur Créer.
Créez un groupe d'instances géré. Dans la console Google Cloud, accédez à la page Groupes d'instances.
Accéder à la page "Groupes d'instances"
- Cliquez sur Créer un groupe d'instances.
- Sélectionnez Nouveau groupe d'instances géré (sans état). Pour plus d'informations, consultez la page Groupes d'instances gérés (MIG) sans état ou avec état.
- Dans le champ Nom, saisissez
mig-a
. - Pour l'emplacement, sélectionnez Zone unique.
- Pour Région, sélectionnez
REGION_A
. - Pour Zone, sélectionnez
ZONE_A1
. - Pour le paramètre Modèle d'instance, sélectionnez
int-tcp-proxy-backend-template
. Spécifiez le nombre d'instances que vous souhaitez créer au sein du groupe.
Pour cet exemple, spécifiez les options suivantes sous Autoscaling :
- Dans le champ Mode autoscaling, sélectionnez
Off:do not autoscale
. - Dans le champ Nombre maximal d'instances, saisissez
2
.
- Dans le champ Mode autoscaling, sélectionnez
Pour Mappage des ports, cliquez sur Ajouter un port.
- Pour nom du port, saisissez
tcp80
. - Pour Numéro de port, saisissez
80
.
- Pour nom du port, saisissez
Cliquez sur Créer.
Répétez l'étape 2 pour créer un deuxième groupe d'instances géré avec les paramètres suivants :
- Nom :
mig-c
- Zone :
ZONE_A2
Conservez les autres paramètres.
- Nom :
gcloud
Les instructions gcloud
de ce guide supposent que vous utilisez Cloud Shell ou un autre environnement avec bash installé.
Créez un modèle d'instance de VM avec le serveur HTTP à l'aide de la commande
gcloud compute instance-templates create
.gcloud compute instance-templates create int-tcp-proxy-backend-template \ --region=REGION_A \ --network=lb-network \ --subnet=backend-subnet \ --tags=allow-ssh,allow-health-check,allow-proxy-only-subnet \ --image-family=debian-12 \ --image-project=debian-cloud \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2'
Créez un groupe d'instances géré dans la zone
ZONE_A1
.gcloud compute instance-groups managed create mig-a \ --zone=ZONE_A1 \ --size=2 \ --template=int-tcp-proxy-backend-template
Remplacez ZONE_A1 par le nom de la zone dans la région Google Cloud cible.
Créez un groupe d'instances géré dans la zone
ZONE_A2
.gcloud compute instance-groups managed create mig-c \ --zone=ZONE_A2 \ --size=2 \ --template=int-tcp-proxy-backend-template
Remplacez ZONE_A2 par le nom d'une autre zone de la région Google Cloud cible.
Configurer l'équilibreur de charge
Console
Démarrer la configuration
Dans Google Cloud Console, accédez à la page Équilibrage de charge.
- Cliquez sur Créer un équilibreur de charge.
- Sous Type d'équilibreur de charge, sélectionnez Équilibreur de charge réseau (TCP/UDP/SSL), puis cliquez sur Suivant.
- Pour Proxy ou passthrough, sélectionnez Équilibreur de charge proxy, puis cliquez sur Suivant.
- Pour Public ou interne, sélectionnez Interne, puis cliquez sur Suivant.
- Pour Déploiement interrégional ou dans une seule région, sélectionnez Recommandé pour les charges de travail régionales, puis cliquez sur Suivant.
- Cliquez sur Configurer.
Configuration de base
- Dans le champ Nom, saisissez
my-int-tcp-lb
. - Pour Région, sélectionnez
REGION_A
. - Pour Réseau, sélectionnez
lb-network
.
Réserver un sous-réseau proxy réservé
Pour réserver un sous-réseau proxy réservé :
- Cliquez sur Réserver un sous-réseau.
- Dans le champ Nom, saisissez
proxy-only-subnet
. - Dans Plage d'adresses IP, saisissez
10.129.0.0/23
. - Cliquez sur Ajouter.
Configuration du backend
- Cliquez sur Configuration du backend.
- Pour Type de backend, sélectionnez Groupe d'instances.
- Dans le champ Protocole, sélectionnez TCP.
- Pour le Port nommé, saisissez
tcp80
. - Configurez le premier backend :
- Sous Nouveau backend, sélectionnez le groupe d'instances
mig-a
. - Pour Numéros de ports, saisissez
80
. - Conservez les valeurs par défaut restantes, puis cliquez sur OK.
- Sous Nouveau backend, sélectionnez le groupe d'instances
- Configurez le deuxième backend :
- Cliquez sur Ajouter un backend.
- Sous Nouveau backend, sélectionnez le groupe d'instances
mig-c
. - Pour Numéros de ports, saisissez
80
. - Conservez les valeurs par défaut restantes, puis cliquez sur OK.
- Configurez la vérification d'état :
- Sous Vérification d'état, sélectionnez Créer une vérification d'état.
- Définissez le paramètre Nom de la vérification d'état sur
tcp-health-check
. - Dans le champ Protocole, sélectionnez TCP.
- Définissez le paramètre Port sur
80
.
- Conservez les valeurs par défaut restantes, puis cliquez sur Enregistrer.
- Dans la console Google Cloud, vérifiez qu'une coche apparaît à côté de Configuration du backend. Si ce n'est pas le cas, vérifiez que vous avez bien suivi la procédure ci-dessous dans son intégralité.
Configuration du frontend
- Cliquez sur Configuration de l'interface.
- Dans le champ Nom, saisissez
int-tcp-forwarding-rule
. - Pour Sous-réseau, sélectionnez backend-subnet.
- Pour Adresse IP, sélectionnez l'adresse IP réservée précédemment : LB_IP_ADDRESS
- Pour Numéro de port, saisissez
110
. La règle de transfert transfère les paquets avec un port de destination correspondant. - Dans cet exemple, n'activez pas le protocole de proxy, car il ne fonctionne pas avec le logiciel Apache HTTP Server. Pour en savoir plus, consultez la section Protocole de proxy.
- Cliquez sur OK.
- Dans la console Google Cloud, vérifiez qu'une coche apparaît à côté de Configuration du frontend. Dans le cas contraire, vérifiez que vous avez bien suivi la procédure ci-dessus dans son intégralité.
Vérifier et finaliser
- Cliquez sur Vérifier et finaliser.
- Vérifiez les paramètres de configuration de votre équilibreur de charge.
- Facultatif : cliquez sur Code équivalent pour afficher la requête API REST qui sera utilisée pour créer l'équilibreur de charge.
- Cliquez sur Créer.
gcloud
Créez une vérification d'état régionale.
gcloud compute health-checks create tcp tcp-health-check \ --region=REGION_A \ --use-serving-port
Créez un service de backend.
gcloud compute backend-services create internal-tcp-proxy-bs \ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=TCP \ --region=REGION_A \ --health-checks=tcp-health-check \ --health-checks-region=REGION_A
Ajoutez des groupes d'instances au service de backend.
gcloud compute backend-services add-backend internal-tcp-proxy-bs \ --region=REGION_A \ --instance-group=mig-a \ --instance-group-zone=ZONE_A1 \ --balancing-mode=UTILIZATION \ --max-utilization=0.8
gcloud compute backend-services add-backend internal-tcp-proxy-bs \ --region=REGION_A \ --instance-group=mig-c \ --instance-group-zone=ZONE_A2 \ --balancing-mode=UTILIZATION \ --max-utilization=0.8
Créez un proxy TCP cible interne.
gcloud compute target-tcp-proxies create int-tcp-target-proxy \ --backend-service=internal-tcp-proxy-bs \ --proxy-header=NONE \ --region=REGION_A
Si vous souhaitez activer l'en-tête de proxy, définissez le paramètre --proxy-header sur
PROXY_V1
au lieu deNONE
. Dans cet exemple, n'activez pas le protocole de proxy, car il ne fonctionne pas avec le logiciel Apache HTTP Server. Pour en savoir plus, consultez la section Protocole de proxy.Créez la règle de transfert. Pour
--ports
, spécifiez un seul numéro de port compris entre 1 et 65 535. Cet exemple utilise le port110
. La règle de transfert transfère les paquets avec un port de destination correspondant.gcloud compute forwarding-rules create int-tcp-forwarding-rule \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=lb-network \ --subnet=backend-subnet \ --region=REGION_A \ --target-tcp-proxy=int-tcp-target-proxy \ --target-tcp-proxy-region=REGION_A \ --address=int-tcp-ip-address \ --ports=110
Tester votre équilibreur de charge
Pour tester l'équilibreur de charge, créez une VM cliente dans la même région que l'équilibreur de charge. Envoyez ensuite du trafic depuis le client vers l'équilibreur de charge.
Créer une VM cliente
Créez une VM cliente (client-vm
) dans la même région que l'équilibreur de charge.
Console
Dans la console Google Cloud, accédez à la page Instances de VM.
Cliquez sur Créer une instance.
Pour Nom, définissez
client-vm
.Définissez le champ Zone sur
ZONE_A1
.Cliquez sur Options avancées.
Cliquez sur Mise en réseau et configurez les champs suivants :
- Pour Tags réseau, saisissez
allow-ssh
. - Pour Interfaces réseau, sélectionnez l'option suivante :
- Réseau :
lb-network
- Sous-réseau :
backend-subnet
- Réseau :
- Pour Tags réseau, saisissez
Cliquez sur Créer.
gcloud
La VM cliente doit se trouver dans le même réseau VPC et dans la même région que l'équilibreur de charge. Elle ne doit pas nécessairement se trouver dans le même sous-réseau ou la même zone. Le client utilise le même sous-réseau que les VM de backend.
gcloud compute instances create client-vm \ --zone=ZONE_A1 \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ssh \ --subnet=backend-subnet
Envoyer du trafic vers l'équilibreur de charge
Maintenant que vous avez configuré votre équilibreur de charge, vous pouvez commencer à envoyer du trafic vers son adresse IP.
Utilisez SSH pour vous connecter à l'instance cliente.
gcloud compute ssh client-vm \ --zone=ZONE_A1
Vérifiez que l'équilibreur de charge diffuse les noms d'hôte de backend comme prévu.
Utilisez la commande
compute addresses describe
pour afficher l'adresse IP de l'équilibreur de charge :gcloud compute addresses describe int-tcp-ip-address \ --region=REGION_A
Notez l'adresse IP.
Envoyez du trafic vers l'équilibreur de charge. Remplacez IP_ADDRESS par l'adresse IP de l'équilibreur de charge.
curl IP_ADDRESS:110
Options de configuration supplémentaires
Cette section développe l'exemple de configuration et propose d'autres options de configuration. Toutes les tâches décrites ici sont facultatives. Vous pouvez les exécuter dans n'importe quel ordre.
Activer l'accès mondial
Vous pouvez activer l'accès mondial pour votre équilibreur de charge afin de le rendre accessible aux clients situés dans toutes les régions. Les backends de votre exemple d'équilibreur de charge doivent toujours être situés dans une région (REGION_A
).
Vous ne pouvez pas modifier une règle de transfert régionale existante pour activer l'accès mondial. Vous devez créer une règle de transfert à cette fin. En outre, une fois qu'une règle de transfert a été créée avec l'accès mondial activé, elle ne peut pas être modifiée. Pour désactiver l'accès mondial, vous devez créer une règle de transfert d'accès régional et supprimer la règle de transfert d'accès global précédente.
Pour configurer l'accès mondial, procédez aux modifications de configuration ci-dessous.
Console
Créez une règle de transfert pour l'équilibreur de charge :
Dans la console Google Cloud, accédez à la page Équilibrage de charge.
Dans la colonne Nom, cliquez sur votre équilibreur de charge.
Cliquez sur Configuration de l'interface.
Cliquez sur Ajouter une adresse IP et un port frontend.
Saisissez le nom et les détails du sous-réseau pour la nouvelle règle de transfert.
Pour Sous-réseau, sélectionnez backend-subnet.
Pour Adresse IP, vous pouvez sélectionner la même adresse IP qu'une règle de transfert existante, réserver une nouvelle adresse IP ou utiliser une adresse IP éphémère. Le partage d'une même adresse IP entre plusieurs règles de transfert n'est possible que si vous définissez l'option
--purpose
de l'adresse IP surSHARED_LOADBALANCER_VIP
, lors de la création de l'adresse IP.Pour Numéro de port, saisissez
110
.Pour Accès mondial, sélectionnez Activer.
Cliquez sur OK.
Cliquez sur Update (Mettre à jour).
gcloud
Créez une règle de transfert pour l'équilibreur de charge avec l'option
--allow-global-access
.gcloud compute forwarding-rules create int-tcp-forwarding-rule-global-access \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=lb-network \ --subnet=backend-subnet \ --region=REGION_A \ --target-tcp-proxy=int-tcp-target-proxy \ --target-tcp-proxy-region=REGION_A \ --address=int-tcp-ip-address \ --ports=110 \ --allow-global-access
Vous pouvez utiliser la commande
gcloud compute forwarding-rules describe
pour déterminer si l'accès mondial est activé pour une règle de transfert. Exemple :gcloud compute forwarding-rules describe int-tcp-forwarding-rule-global-access \ --region=REGION_A \ --format="get(name,region,allowGlobalAccess)"
Lorsque l'accès mondial est activé, le mot
True
apparaît dans la sortie après le nom et la région de la règle de transfert.
Créer une VM cliente pour tester l'accès mondial
Console
Dans la console Google Cloud, accédez à la page Instances de VM.
Cliquez sur Créer une instance.
Pour Nom, définissez
test-global-access-vm
.Définissez le champ Zone sur
ZONE_B1
.Cliquez sur Options avancées.
Cliquez sur Mise en réseau et configurez les champs suivants :
- Pour Tags réseau, saisissez
allow-ssh
. - Pour Interfaces réseau, sélectionnez l'option suivante :
- Réseau :
lb-network
- Sous-réseau :
test-global-access-subnet
- Réseau :
- Pour Tags réseau, saisissez
Cliquez sur Créer.
gcloud
Créez une VM cliente dans la zone ZONE_B1
.
gcloud compute instances create test-global-access-vm \ --zone=ZONE_B1 \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ssh \ --subnet=test-global-access-subnet
Remplacez ZONE_B1 par le nom de la zone dans la région REGION_B.
Se connecter à la VM cliente et tester la connectivité
Utilisez
ssh
pour vous connecter à l'instance cliente :gcloud compute ssh test-global-access-vm \ --zone=ZONE_B1
Utilisez la commande
gcloud compute addresses describe
pour afficher l'adresse IP de l'équilibreur de charge :gcloud compute addresses describe int-tcp-ip-address \ --region=REGION_A
Notez l'adresse IP.
Envoyez du trafic à l'équilibreur de charge. Remplacez IP_ADDRESS par l'adresse IP de l'équilibreur de charge :
curl IP_ADDRESS:110
Protocole de PROXY pour la conservation des informations de connexion client
L'équilibreur de charge réseau proxy met fin aux connexions TCP du client et crée des connexions aux instances. Par défaut, l'adresse IP et les informations de port d'origine du client ne sont pas conservées.
Pour conserver et envoyer les informations de connexion d'origine à vos instances, activez le protocole de PROXY (version 1). Dans le cadre de la requête, ce protocole envoie à l'instance un en-tête supplémentaire contenant les éléments d'origine : l'adresse IP source, l'adresse IP de destination, ainsi que les numéros de ports.
Assurez-vous que les instances backend de l'équilibreur de charge réseau proxy exécutent des serveurs compatibles avec les en-têtes de protocole de PROXY. Si les serveurs ne sont pas configurés pour accepter les en-têtes de protocole de PROXY, les instances backend renvoient des réponses vides.
Si vous définissez le protocole de PROXY pour le trafic utilisateur, vous pouvez également le définir pour vos vérifications de l'état. Si vous effectuez la vérification d'état et la diffusion de contenu sur le même port, définissez l'en-tête --proxy-header
de la vérification d'état pour qu'il corresponde aux paramètres de votre équilibreur de charge.
L'en-tête de protocole de PROXY est généralement constitué d'une seule ligne de texte parfaitement lisible, au format suivant :
PROXY TCP4 <client IP> <load balancing IP> <source port> <dest port>\r\n
L'exemple suivant illustre un protocole de PROXY :
PROXY TCP4 192.0.2.1 198.51.100.1 15221 110\r\n
Dans l'exemple précédent, l'adresse IP du client est 192.0.2.1
, l'adresse IP d'équilibrage de charge est 198.51.100.1
, le port client est 15221
et le port de destination est 110
.
Lorsque l'adresse IP du client n'est pas connue, l'équilibreur de charge génère un en-tête de protocole de PROXY au format suivant :
PROXY UNKNOWN\r\n
Mettre à jour l'en-tête du protocole de PROXY pour le proxy cible
Vous ne pouvez pas mettre à jour l'en-tête du protocole PROXY dans le proxy cible existant. Vous devez créer un proxy cible avec le paramètre requis pour l'en-tête du protocole de PROXY. Pour créer une interface avec les paramètres requis, procédez comme suit :
Console
Dans Google Cloud Console, accédez à la page Équilibrage de charge.
- Cliquez sur le nom de l'équilibreur de charge que vous souhaitez modifier.
- Cliquez sur Modifier à côté du nom de votre équilibreur de charge.
- Cliquez sur Configuration de l'interface.
- Supprimez l'ancien port et l'ancienne adresse IP de l'interface.
- Cliquez sur Ajouter une adresse IP et un port frontend.
- Dans le champ Nom, saisissez
int-tcp-forwarding-rule
. - Pour Sous-réseau, sélectionnez backend-subnet.
- Pour Adresse IP, sélectionnez l'adresse IP réservée précédemment : LB_IP_ADDRESS
- Pour Numéro de port, saisissez
110
. La règle de transfert transfère les paquets avec un port de destination correspondant. - Définissez la valeur du champ Protocole de proxy sur On (Activé).
- Cliquez sur OK.
- Dans le champ Nom, saisissez
- Cliquez sur Mettre à jour pour enregistrer vos modifications.
gcloud
Dans la commande suivante, modifiez le champ
--proxy-header
et définissez-le surNONE
ouPROXY_V1
en fonction de vos besoins.gcloud compute target-tcp-proxies create TARGET_PROXY_NAME \ --backend-service=BACKEND_SERVICE \ --proxy-header=[NONE | PROXY_V1] \ --region=REGION
Supprimez la règle de transfert existante.
gcloud compute forwarding-rules delete int-tcp-forwarding-rule \ --region=REGION
Créez une règle de transfert et associez-la au proxy cible.
gcloud compute forwarding-rules create int-tcp-forwarding-rule \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=lb-network \ --subnet=backend-subnet \ --region=REGION \ --target-tcp-proxy=TARGET_PROXY_NAME \ --target-tcp-proxy-region=REGION \ --address=LB_IP_ADDRESS \ --ports=110
Activer l'affinité de session
L'exemple de configuration crée un service de backend sans affinité de session.
Ces procédures vous montrent comment mettre à jour un service de backend pour l'exemple d'équilibreur de charge réseau proxy interne régional afin que ce service utilise l'affinité basée sur les adresses IP client ou l'affinité basée sur les cookies générés.
Lorsque l'affinité basée sur les adresses IP client est activée, l'équilibreur de charge dirige les requêtes d'un client particulier toujours vers la même VM de backend, grâce à un hachage créé à partir de l'adresse IP du client et de l'adresse IP de l'équilibreur de charge (l'adresse IP interne d'une règle de transfert interne).
Console
Pour activer l'affinité de session basée sur les adresses IP client, procédez comme suit :
- Dans Google Cloud Console, accédez à la page Équilibrage de charge.
Accéder à la page "Équilibrage de charge" - Cliquez sur Backends.
- Cliquez sur internal-tcp-proxy-bs (nom du service de backend que vous avez créé pour cet exemple), puis sur Modifier.
- Sur la page Détails du service backend, cliquez sur Configuration avancée.
- Sous Affinité de session, sélectionnez IP client dans le menu.
- Cliquez sur Mettre à jour.
gcloud
Utilisez la commande Google Cloud CLI suivante pour mettre à jour le service de backend internal-tcp-proxy-bs
, en spécifiant l'affinité de session basée sur les adresses IP client :
gcloud compute backend-services update internal-tcp-proxy-bs \ --region=REGION_A \ --session-affinity=CLIENT_IP
Activer le drainage de connexion
Vous pouvez activer le drainage de connexion sur les services de backend afin de garantir à vos utilisateurs un temps d'interruption minimal lorsqu'une instance assurant la diffusion du trafic est arrêtée, supprimée manuellement ou supprimée par un autoscaler. Pour en savoir plus sur le drainage de connexion, consultez la documentation Activer le drainage de connexion.
Étape suivante
- Convertir l'équilibreur de charge réseau proxy en IPv6
- Présentation de l'équilibreur de charge réseau proxy interne régional
- Utiliser la surveillance
- Nettoyez la configuration de l'équilibreur de charge.