Cette page explique comment déployer un équilibreur de charge d'application interne régional pour équilibrer le trafic vers les points de terminaison du réseau situés sur site ou dans d'autres clouds publics, et qui sont accessibles via une connectivité hybride.
Si vous ne l'avez pas déjà fait, consultez la page Présentation des NEG de connectivité hybride pour comprendre la configuration réseau requise pour mettre en œuvre l'équilibrage de charge hybride.
Vue d'ensemble de la configuration
L'exemple de cette page configure le déploiement suivant :
Vous devez configurer la connectivité hybride avant de tenter de mettre en œuvre un déploiement d'équilibrage de charge hybride. Cette page n'inclut pas la configuration de la connectivité hybride.
Pour cette étape de configuration, utilisez la documentation correspondant à votre choix de produit de connectivité hybride (Cloud VPN ou Cloud Interconnect, en interconnexion dédiée ou partenaire).
Autorisations
Pour configurer l'équilibrage de charge hybride, vous devez disposer des autorisations suivantes :
Sur Google Cloud
- Autorisations permettant d'établir une connectivité hybride entre Google Cloud et votre environnement sur site ou d'autres environnements cloud. Pour obtenir la liste des autorisations nécessaires, consultez la documentation du produit de Connectivité réseau correspondant.
- Autorisations permettant de créer un NEG de connectivité hybride et l'équilibreur de charge.
Le rôle d'administrateur de l'équilibreur de charge Compute (
roles/compute.loadBalancerAdmin
) contient les autorisations requises pour effectuer les tâches décrites dans ce guide.
Sur votre environnement sur site ou sur un environnement cloud différent de Google Cloud
- Autorisation permettant de configurer des points de terminaison du réseau pour accéder depuis Google Cloud aux services situés dans votre environnement sur site ou d'autres environnements cloud, à l'aide d'une combinaison
IP:Port
. Pour en savoir plus, contactez l'administrateur réseau de votre environnement. - Autorisations permettant de créer des règles de pare-feu dans votre environnement sur site ou d'autres environnements cloud afin de permettre aux vérifications d'état de Google d'atteindre les points de terminaison.
- Autorisation permettant de configurer des points de terminaison du réseau pour accéder depuis Google Cloud aux services situés dans votre environnement sur site ou d'autres environnements cloud, à l'aide d'une combinaison
En outre, pour suivre les instructions de cette page, vous devez créer un NEG de connectivité hybride, un équilibreur de charge et des NEG zonaux (et leurs points de terminaison), qui vont constituer les backends basés sur Google Cloud pour l'équilibreur de charge.
Vous devez être Propriétaire ou Éditeur du projet, ou disposer des 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 de réseaux Compute (roles/compute.networkAdmin ) |
Ajouter et supprimer des règles de pare-feu | Administrateur de sécurité de Compute (roles/compute.securityAdmin ) |
Créer des instances | Administrateur d'instances Compute (roles/compute.instanceAdmin ) |
Établir une connectivité hybride
Votre environnement Google Cloud, ainsi que votre environnement sur site ou d'autres environnements cloud, doivent être connectés via une connectivité hybride, en utilisant des rattachements de VLAN Cloud Interconnect ou des tunnels Cloud VPN avec Cloud Router. Nous vous recommandons d'utiliser une connexion à haute disponibilité.
Lorsque le routage dynamique global est activé, le routeur Cloud Router apprend le point de terminaison spécifique par l'intermédiaire du protocole Border Gateway Protocol (BGP) et le programme dans votre réseau VPC Google Cloud. Le routage dynamique régional n'est pas pris en charge. De même, les routes statiques ne sont pas prises en charge.
Le réseau VPC que vous utilisez pour configurer Cloud Interconnect ou Cloud VPN est le même que celui que vous utilisez pour configurer le déploiement de l'équilibrage de charge hybride. Assurez-vous que les plages CIDR de sous-réseau de votre réseau VPC n'entrent pas en conflit avec vos plages CIDR distantes. Lorsque les adresses IP se chevauchent, les routes de sous-réseau sont prioritaires sur la connectivité à distance.
Pour savoir comment procéder, consultez la documentation suivante :
Configurer votre environnement situé en dehors de Google Cloud
Pour configurer l'équilibrage de charge hybride dans votre environnement sur site ou dans un autre environnement cloud, procédez comme suit :
- Configurez les points de terminaison du réseau pour exposer les services sur site à Google Cloud (
IP:Port
). - Configurez des règles de pare-feu dans votre environnement sur site ou dans un autre environnement cloud.
- Configurez Cloud Router pour annoncer les routes requises vers votre environnement privé.
Configurer des points de terminaison du réseau
Une fois que vous avez configuré la connectivité hybride, vous configurez un ou plusieurs points de terminaison du réseau dans votre environnement sur site ou dans d'autres environnements cloud accessibles via Cloud Interconnect ou Cloud VPN, en utilisant une combinaison IP:port
. Cette combinaison IP:port
est configurée comme un ou plusieurs points de terminaison pour le NEG de connectivité hybride qui sera créé ultérieurement dans Google Cloud au cours de cette procédure.
S'il existe plusieurs chemins d'accès au point de terminaison IP, le routage suit le comportement décrit dans la présentation de Cloud Router.
Configurer les règles de pare-feu
Les règles de pare-feu suivantes doivent être créées dans votre environnement sur site ou dans un autre environnement cloud :
- Créez une règle de pare-feu autorisant le trafic entrant sur site ou dans d'autres environnements cloud pour autoriser le trafic provenant du sous-réseau proxy réservé de la région à atteindre les points de terminaison.
L'ajout de plages de vérification de l'état à la liste d'autorisation de Google n'est pas nécessaire pour les NEG hybrides. Toutefois, si vous utilisez à la fois des NEG hybrides et zonaux dans un service de backend, vous devez ajouter les plages de vérification de l'état Google à la liste d'autorisation pour les NEG zonaux.
Annoncer des routes
Configurez Cloud Router pour annoncer les plages d'adresses IP personnalisées suivantes à votre environnement sur site ou à un autre environnement cloud :
- Plage du sous-réseau proxy réservé de la région.
Configurer l'environnement Google Cloud
Pour les étapes suivantes, assurez-vous d'utiliser le même réseau VPC (appelé NETWORK dans cette procédure) que celui utilisé pour configurer la connectivité hybride entre les environnements.
En outre, assurez-vous que la région utilisée (appelée REGION dans cette procédure) est identique à celle utilisée pour créer le tunnel Cloud VPN ou le rattachement de VLAN Cloud Interconnect.
Configurer le sous-réseau proxy réservé
Ce sous-réseau proxy réservé est utilisé pour tous les équilibreurs de charge régionaux basés sur Envoy dans la région REGION.
Console
- Dans Google Cloud Console, accédez à la page Réseaux VPC.
Accéder à la page "Réseaux VPC" - Accédez au réseau utilisé pour configurer la connectivité hybride entre les environnements.
- Cliquez sur Ajouter un sous-réseau.
- Saisissez un Nom : PROXY_ONLY_SUBNET_NAME.
- Sélectionnez une Région : REGION.
- Définissez le champ Objectif sur Proxy géré régional.
- Saisissez une plage d'adresses IP : PROXY_ONLY_SUBNET_RANGE.
- 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_NAME \ --purpose=REGIONAL_MANAGED_PROXY \ --role=ACTIVE \ --region=REGION \ --network=NETWORK \ --range=PROXY_ONLY_SUBNET_RANGE
Configurer le sous-réseau d'équilibreur de charge
Ce sous-réseau permet de créer les backends de NEG zonaux de l'équilibreur de charge, l'interface et l'adresse IP interne.
Cloud Console
- Dans Google Cloud Console, accédez à la page Réseaux VPC.
Accéder à la page "Réseaux VPC" - Accédez au réseau utilisé pour configurer la connectivité hybride entre les environnements.
- Dans la section Sous-réseaux :
- Définissez Mode de création du sous-réseau sur Personnalisé.
- Dans la section Nouveau sous-réseau, saisissez les informations suivantes :
- Nom : LB_SUBNET_NAME
- Région : REGION
- Plage d'adresses IP : LB_SUBNET_RANGE
- Cliquez sur OK.
- Cliquez sur Créer.
gcloud
Créez un sous-réseau dans le réseau utilisé pour configurer la connectivité hybride entre les environnements.
gcloud compute networks subnets create LB_SUBNET_NAME \ --network=NETWORK \ --range=LB_SUBNET_RANGE \ --region=REGION
Réserver l'adresse IP de l'équilibreur de charge
Par défaut, une adresse IP est utilisée pour chaque règle de transfert. Vous pouvez réserver une adresse IP partagée, ce qui vous permet d'utiliser la même adresse IP avec plusieurs règles de transfert. Toutefois, si vous souhaitez publier l'équilibreur de charge à l'aide de Private Service Connect, n'utilisez pas d'adresse IP partagée pour la règle de transfert.
Console
Vous pouvez réserver une adresse IP interne autonome à l'aide de la console Google Cloud.
- Accédez à la page des réseaux VPC.
- Cliquez sur le réseau utilisé pour configurer la connectivité hybride entre les environnements.
- Cliquez sur Adresses IP internes statiques, puis sur Réserver une adresse statique.
- Saisissez un Nom : LB_IP_ADDRESS.
- Pour le sous-réseau, sélectionnez LB_SUBNET_NAME.
- Si vous souhaitez spécifier l'adresse IP à réserver, sous Adresse IP statique, sélectionnez Laissez-moi choisir, puis indiquez une adresse IP personnalisée. Sinon, le système attribue automatiquement une adresse IP dans le sous-réseau.
- Si vous souhaitez utiliser cette adresse IP avec plusieurs règles de transfert, sous Usage, sélectionnez Partagée.
- Cliquez sur Réserver pour terminer le processus.
gcloud
En utilisant gcloud CLI, exécutez la commande
compute addresses create
:gcloud compute addresses create LB_IP_ADDRESS \ --region=REGION \ --subnet=LB_SUBNET_NAME \
Utilisez la commande
compute addresses describe
pour afficher l'adresse IP allouée :gcloud compute addresses describe LB_IP_ADDRESS \ --region=REGION
Si vous souhaitez utiliser la même adresse IP avec plusieurs règles de transfert, spécifiez
--purpose=SHARED_LOADBALANCER_VIP
.
Créer des règles de pare-feu pour les NEG zonaux
Dans cet exemple, vous devez créer les règles de pare-feu suivantes pour les backends de NEG zonaux sur Google Cloud :
fw-allow-health-check
: règle d'entrée, applicable aux instances faisant l'objet d'un équilibrage de charge, qui autorise le trafic issu des systèmes de vérification d'état Google Cloud (130.211.0.0/22
et35.191.0.0/16
). Cet exemple utilise le tag cibleallow-health-check
pour identifier les VM de backend auxquelles la règle doit s'appliquer. Il n'est pas nécessaire d'ajouter des plages de vérification d'état Google à la liste d'autorisation pour les NEG hybrides. Toutefois, si vous utilisez à la fois des NEG hybrides et zonaux dans un service de backend, vous devez ajouter les plages de vérification d'état Google à la liste d'autorisation pour les NEG zonaux.fw-allow-ssh
: règle d'entrée qui autorise la connectivité SSH entrante sur le port TCP 22 à 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
pour identifier les VM auxquelles la règle doit s'appliquer.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.
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 le trafic provenant des vérifications d'état :
- Saisissez le nom
fw-allow-health-check
. - Sous Réseau, sélectionnez NETWORK.
- Sous Cibles, sélectionnez Tags cibles spécifiés.
- Dans le champ Tags cibles, saisissez
allow-health-check
. - Définissez Filtre source sur Plages IPv4.
- Définissez Plages IPv4 sources sur
130.211.0.0/22
et35.191.0.0/16
. - Dans Protocoles et ports, sélectionnez Protocoles et ports spécifiés.
- Sélectionnez TCP, puis saisissez
80
pour le numéro de port. - Cliquez sur Créer.
- Saisissez le nom
- 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 : NETWORK
- Priorité :
1000
- 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 : sélectionnez Protocoles et ports spécifiés.
- Sélectionnez TCP, puis saisissez
22
pour le numéro de port. - Cliquez sur Créer.
- Nom :
- Cliquez de nouveau sur Créer une règle de pare-feu pour créer la règle autorisant les connexions entrantes à partir du sous-réseau proxy réservé :
- Nom :
fw-allow-proxy-only-subnet
- Réseau : NETWORK
- Priorité :
1000
- 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 : PROXY_ONLY_SUBNET_RANGE
- Protocoles et ports : sélectionnez Protocoles et ports spécifiés.
- Sélectionnez TCP, puis saisissez
80
pour le numéro de port. - Cliquez sur Créer.
- Nom :
gcloud
Créez la règle
fw-allow-health-check-and-proxy
pour autoriser les vérifications d'état Google Cloud à atteindre les instances backend sur le port TCP80
:gcloud compute firewall-rules create fw-allow-health-check \ --network=NETWORK \ --action=allow \ --direction=ingress \ --target-tags=allow-health-check \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --rules=tcp:80
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=NETWORK \ --action=allow \ --direction=ingress \ --target-tags=allow-ssh \ --rules=tcp:22
Créez une règle de pare-feu autorisant le trafic entrant pour le sous-réseau proxy réservé afin de permettre à l'équilibreur de charge de communiquer avec les instances backend sur le port TCP
80
:gcloud compute firewall-rules create fw-allow-proxy-only-subnet \ --network=NETWORK \ --action=allow \ --direction=ingress \ --target-tags=allow-proxy-only-subnet \ --source-ranges=PROXY_ONLY_SUBNET_RANGE \ --rules=tcp:80
Configurer le NEG zonal
Pour les backends basés sur Google Cloud, nous vous recommandons de configurer plusieurs NEG zonaux dans la même région que celle où vous avez configuré la connectivité hybride.
Pour cet exemple, nous avons configuré un NEG zonal (avec des points de terminaison de type GCE_VM_IP_PORT
) dans la région REGION. Commencez par créer les VM dans la zone GCP_NEG_ZONE. Créez ensuite un NEG zonal dans la même GCP_NEG_ZONE et ajoutez les points de terminaison du réseau des VM au NEG.
Créer des VM
Console
- Accédez à la page Instances de VM de Google Cloud Console.
Accéder à la page Instances de VM - Cliquez sur Create instance (Créer une instance).
- Dans le champ Nom, spécifiez
vm-a1
. - Dans le champ Région, choisissez REGION, puis sélectionnez une zone. Dans le cadre de la présente procédure, elle sera appelée GCP_NEG_ZONE.
- Dans la section Disque de démarrage, assurez-vous que les options sélectionnées sont Debian pour le système d'exploitation et 10 (Buster) pour la version. Si nécessaire, cliquez sur Sélectionner pour modifier l'image.
Cliquez sur Options avancées et apportez les modifications suivantes :
- Cliquez sur Mise en réseau et ajoutez les tags réseau suivants :
allow-ssh
,allow-health-check
etallow-proxy-only-subnet
. - Cliquez sur le bouton Modifier (
- Réseau : NETWORK
- Sous-réseau : LB_SUBNET_NAME
- Adresse IP interne principale : éphémère (automatique)
- Adresse IP externe : Éphémère
) sous Interfaces réseau, apportez les modifications suivantes, puis cliquez sur OK : Cliquez sur Gestion. Dans le champ Script de démarrage, copiez et collez le contenu de script suivant. Le contenu du script est identique pour les quatre VM :
#! /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 Mise en réseau et ajoutez les tags réseau suivants :
Cliquez sur Create (Créer).
Répétez les étapes ci-dessous pour créer une deuxième VM en utilisant la combinaison de nom et de zone suivante :
- Nom :
vm-a2
, zone : GCP_NEG_ZONE
- Nom :
gcloud
Créez les VM en exécutant la commande suivante deux fois, en utilisant ces combinaisons pour le nom de la VM et sa zone. Le contenu du script est identique pour les deux VM.
- VM_NAME de
vm-a1
et la zone GCP_NEG_ZONE de votre choix VM_NAME de
vm-a2
et la même zone GCP_NEG_ZONEgcloud compute instances create VM_NAME \ --zone=GCP_NEG_ZONE \ --image-family=debian-10 \ --image-project=debian-cloud \ --tags=allow-ssh,allow-health-check,allow-proxy-only-subnet \ --subnet=LB_SUBNET_NAME \ --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éer le NEG zonal
Console
Pour créer un groupe de points de terminaison de réseau zonal :
- Accédez à la page "Groupes de points de terminaison du réseau" dans la console Google Cloud.
Accéder à la page Groupes de points de terminaison du réseau - Cliquez sur Créer un groupe de points de terminaison du réseau.
- Saisissez un nom pour le NEG zonal. Appelé GCP_NEG_NAME dans cette procédure.
- Sélectionnez le type de groupe de points de terminaison du réseau : Groupe de points de terminaison du réseau (zonal).
- Sélectionnez le réseau : NETWORK.
- Sélectionnez le sous-réseau : LB_SUBNET_NAME.
- Sélectionnez la zone : GCP_NEG_ZONE.
- Saisissez le port par défaut :
80
. - Cliquez sur Create (Créer).
Ajoutez des points de terminaison au NEG zonal :
- Accédez à la page "Groupes de points de terminaison du réseau" dans Google Cloud Console.
Accéder à la page Groupes de points de terminaison du réseau - Cliquez sur le nom du groupe de points de terminaison du réseau créé à l'étape précédente (GCP_NEG_NAME). La page Détails du groupe de points de terminaison du réseau s'affiche.
- Dans la section Points de terminaison du réseau de ce groupe, cliquez sur Ajouter un point de terminaison du réseau. La page Ajouter un point de terminaison du réseau s'affiche.
- Sélectionnez une instance de VM pour ajouter ses adresses IP internes en tant que points de terminaison du réseau. Dans la section Interface réseau, le nom, la zone et le sous-réseau de la VM s'affichent.
- Saisissez l'adresse IP du nouveau point de terminaison du réseau.
- Sélectionnez le type de port.
- Si vous sélectionnez Par défaut, le point de terminaison utilise le port par défaut
80
pour tous les points de terminaison du groupe de points de terminaison du réseau. Cela est suffisant pour notre exemple, car le serveur Apache diffuse les requêtes au port80
. - Si vous sélectionnez Personnalisé, saisissez le numéro de port du point de terminaison à utiliser.
- Si vous sélectionnez Par défaut, le point de terminaison utilise le port par défaut
- Pour ajouter d'autres points de terminaison, cliquez sur Ajouter un point de terminaison du réseau, puis répétez les étapes précédentes.
- Après avoir ajouté tous les points de terminaison, cliquez sur Créer.
gcloud
Créez un NEG zonal (avec des points de terminaison
GCE_VM_IP_PORT
) à l'aide de la commandegcloud compute network-endpoint-groups create
:gcloud compute network-endpoint-groups create GCP_NEG_NAME \ --network-endpoint-type=GCE_VM_IP_PORT \ --zone=GCP_NEG_ZONE \ --network=NETWORK \ --subnet=LB_SUBNET_NAME
Vous pouvez spécifier un
--default-port
lors de la création du NEG ou spécifier un numéro de port pour chaque point de terminaison à l'étape suivante.Ajoutez des points de terminaison à GCP_NEG_NAME.
gcloud compute network-endpoint-groups update GCP_NEG_NAME \ --zone=GCP_NEG_ZONE \ --add-endpoint='instance=vm-a1,port=80' \ --add-endpoint='instance=vm-a2,port=80'
Configurer le NEG de connectivité hybride
Lorsque vous créez le NEG, utilisez un ZONE qui réduit la distance géographique entre Google Cloud et votre environnement sur site ou autre environnement cloud. Par exemple, si vous hébergez un service dans un environnement sur site à Francfort, en Allemagne, vous pouvez spécifier la zone Google Cloud europe-west3-a
lorsque vous créez le NEG.
De plus, si vous utilisez Cloud Interconnect, la ZONE utilisée pour créer le NEG doit se trouver dans la même région que le rattachement Cloud Interconnect.
Pour connaître les régions et les zones disponibles, consultez la documentation Compute Engine : Régions et zones disponibles.
Console
Pour créer un groupe de points de terminaison du réseau de connectivité hybride :
- Accédez à la page "Groupes de points de terminaison du réseau" dans Google Cloud Console.
Accéder à la page Groupes de points de terminaison du réseau - Cliquez sur Créer un groupe de points de terminaison du réseau.
- Saisissez un nom pour le NEG hybride. Appelé ON_PREM_NEG_NAME dans cette procédure.
- Sélectionnez le type de groupe de points de terminaison du réseau : Groupe de points de terminaison du réseau de connectivité hybride (zonal).
- Sélectionnez le réseau : NETWORK.
- Sélectionnez le sous-réseau : LB_SUBNET_NAME.
- Sélectionnez la zone : ON_PREM_NEG_ZONE.
- Saisissez le port par défaut.
- Cliquez sur Créer.
Ajoutez des points de terminaison au NEG de connectivité hybride :
- Accédez à la page "Groupes de points de terminaison du réseau" dans Google Cloud Console.
Accéder à la page Groupes de points de terminaison du réseau - Cliquez sur le nom du groupe de points de terminaison du réseau créé à l'étape précédente (ON_PREM_NEG_NAME). La page Détails du groupe de points de terminaison du réseau s'affiche.
- Dans la section Points de terminaison du réseau de ce groupe, cliquez sur Ajouter un point de terminaison du réseau. La page Ajouter un point de terminaison du réseau s'affiche.
- Saisissez l'adresse IP du nouveau point de terminaison du réseau.
- Sélectionnez le type de port.
- Si vous sélectionnez Par défaut, le point de terminaison utilise le port par défaut pour tous les points de terminaison du groupe de points de terminaison du réseau.
- Si vous sélectionnez Personnalisé, vous pouvez saisir un numéro de port différent à utiliser par le point de terminaison.
- Pour ajouter d'autres points de terminaison, cliquez sur Ajouter un point de terminaison du réseau, puis répétez les étapes précédentes.
- Après avoir ajouté tous les points de terminaison autres que Google Cloud, cliquez sur Créer.
gcloud
Créez un NEG de connectivité hybride à l'aide de la commande
gcloud compute network-endpoint-groups create
.gcloud compute network-endpoint-groups create ON_PREM_NEG_NAME \ --network-endpoint-type=NON_GCP_PRIVATE_IP_PORT \ --zone=ON_PREM_NEG_ZONE \ --network=NETWORK
Ajoutez le point de terminaison de VM de backend sur site à ON_PREM_NEG_NAME :
gcloud compute network-endpoint-groups update ON_PREM_NEG_NAME \ --zone=ON_PREM_NEG_ZONE \ --add-endpoint="ip=ON_PREM_IP_ADDRESS_1,port=PORT_1" \ --add-endpoint="ip=ON_PREM_IP_ADDRESS_2,port=PORT_2"
Vous pouvez utiliser cette commande pour ajouter les points de terminaison du réseau précédemment configurés dans votre environnement situé sur site ou sur un autre cloud.
Répétez --add-endpoint
autant de fois que nécessaire.
Vous pouvez répéter ces étapes pour créer plusieurs NEG hybrides si nécessaire.
Configurer l'équilibreur de charge
Console
gcloud
- Créez une vérification d'état pour les backends.
gcloud compute health-checks create http HTTP_HEALTH_CHECK_NAME \ --region=REGION \ --use-serving-port
Les vérifications d'état des backends de NEG hybrides proviennent des proxys Envoy du sous-réseau proxy réservé, tandis que les vérifications des backends de NEG zonaux proviennent des [plages d'adresses IP de vérification centrales de Google](/load-balancing/docs/health-check-concepts#ip-ranges). - Créez un service de backend pour les backends basés sur Google Cloud. Ajoutez à la fois le NEG zonal et le NEG de connectivité hybride en tant que backends à ce service de backend.
gcloud compute backend-services create BACKEND_SERVICE \ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=HTTP \ --health-checks=HTTP_HEALTH_CHECK_NAME \ --health-checks-region=REGION \ --region=REGION
- Ajoutez le NEG zonal en tant que backend au service de backend.
gcloud compute backend-services add-backend BACKEND_SERVICE \ --region=REGION \ --balancing-mode=RATE \ --max-rate-per-endpoint=MAX_REQUEST_RATE_PER_ENDPOINT \ --network-endpoint-group=GCP_NEG_NAME \ --network-endpoint-group-zone=GCP_NEG_ZONE
Pour en savoir plus sur la configuration du mode d'équilibrage, consultez la documentation de gcloud CLI concernant le paramètre--max-rate-per-endpoint
. - Ajoutez le NEG hybride en tant que backend au service de backend :
gcloud compute backend-services add-backend BACKEND_SERVICE \ --region=REGION \ --balancing-mode=RATE \ --max-rate-per-endpoint=MAX_REQUEST_RATE_PER_ENDPOINT \ --network-endpoint-group=ON_PREM_NEG_NAME \ --network-endpoint-group-zone=ON_PREM_NEG_ZONE
Pour en savoir plus sur la configuration du mode d'équilibrage, consultez la documentation de gcloud CLI concernant le paramètre--max-rate-per-endpoint
. - Créez un mappage d'URL pour acheminer les requêtes entrantes vers le service de backend :
gcloud compute url-maps create URL_MAP_NAME \ --default-service BACKEND_SERVICE \ --region=REGION
- Facultatif : effectuez cette étape si vous utilisez HTTPS entre le client et l'équilibreur de charge. Cette opération n'est pas requise pour les équilibreurs de charge HTTP.
Vous pouvez créer des certificats Compute Engine ou du gestionnaire de certificats. Utilisez l'une des méthodes suivantes pour créer des certificats à l'aide du gestionnaire de certificats :
- Certificats régionaux autogérés Pour en savoir plus sur la création et l'utilisation de certificats autogérés régionaux, consultez la page Déployer un certificat régional autogéré. Les mappages de certificats ne sont pas acceptés.
Certificats régionaux gérés par Google. Les mappages de certificats ne sont pas acceptés.
Les types de certificats régionaux gérés par Google suivants sont compatibles avec le gestionnaire de certificats :
- Certificats régionaux gérés par Google avec une autorisation DNS par projet. Pour en savoir plus, consultez la page Déployer un certificat régional géré par Google.
- Certificats régionaux gérés par Google (privés) avec Certificate Authority Service. Pour en savoir plus, consultez la page Déployer un certificat régional géré par Google avec le service d'autorité de certification.
Après avoir créé des certificats, associez-les directement au proxy cible.
Pour créer une ressource de certificat SSL autogéré Compute Engine, procédez comme suit :gcloud compute ssl-certificates create SSL_CERTIFICATE_NAME \ --certificate CRT_FILE_PATH \ --private-key KEY_FILE_PATH
- Créez un proxy HTTP(S) cible, qui va rediriger les requêtes vers votre mappage d'URL.
Pour un équilibreur de charge HTTP, créez un proxy cible HTTP :gcloud compute target-http-proxies create TARGET_HTTP_PROXY_NAME \ --url-map=URL_MAP_NAME \ --url-map-region=REGION \ --region=REGION
Pour un équilibreur de charge HTTPS, créez un proxy cible HTTPS. Le serveur proxy est la partie de l'équilibreur de charge qui contient le certificat SSL pour l'équilibrage de charge HTTPS. Vous chargez donc également votre certificat à cette étape :gcloud compute target-https-proxies create TARGET_HTTPS_PROXY_NAME \ --ssl-certificates=SSL_CERTIFICATE_NAME \ --url-map=URL_MAP_NAME \ --url-map-region=REGION \ --region=REGION
- Créez une règle de transfert pour acheminer les requêtes entrantes vers le proxy. N'utilisez pas le sous-réseau proxy réservé pour créer la règle de transfert.
Pour un équilibreur de charge HTTP :gcloud compute forwarding-rules create HTTP_FORWARDING_RULE_NAME \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=NETWORK \ --subnet=LB_SUBNET_NAME \ --address=LB_IP_ADDRESS \ --ports=80 \ --region=REGION \ --target-http-proxy=TARGET_HTTP_PROXY_NAME \ --target-http-proxy-region=REGION
Pour un équilibreur de charge HTTPS :gcloud compute forwarding-rules create HTTPS_FORWARDING_RULE_NAME \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=NETWORK \ --subnet=LB_SUBNET_NAME \ --address=LB_IP_ADDRESS \ --ports=443 \ --region=REGION \ --target-https-proxy=TARGET_HTTPS_PROXY_NAME \ --target-https-proxy-region=REGION
Connecter un domaine à votre équilibreur de charge
Une fois l'équilibreur de charge créé, notez l'adresse IP associée à celui-ci (par exemple, 30.90.80.100
). Pour faire pointer votre domaine vers votre équilibreur de charge, créez un enregistrement A
à l'aide de votre service d'enregistrement de domaine. Si vous avez ajouté plusieurs domaines à votre certificat SSL, vous devez ajouter un enregistrement A
à chacun d'eux, tous pointant vers l'adresse IP de l'équilibreur de charge. Par exemple, pour créer des enregistrements A
pour www.example.com
et example.com
, utilisez le code suivant :
NAME TYPE DATA www A 30.90.80.100 @ A 30.90.80.100
Si vous utilisez Cloud DNS comme fournisseur DNS, consultez la section Ajouter, modifier et supprimer des enregistrements.
Tester l'é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
Cet exemple crée une VM cliente (vm-client
) dans la même région que les NEG de backend. Le client est utilisé pour valider la configuration de l'équilibreur de charge et faire la démonstration du comportement attendu, tel que décrit dans la section consacrée aux tests.
Console
- Accédez à la page Instances de VM de Google Cloud Console.
Accéder à la page Instances de VM - Cliquez sur Create instance (Créer une instance).
- Définissez le paramètre Nom sur
vm-client
. - Définissez le paramètre Zone sur CLIENT_VM_ZONE.
- Cliquez sur Options avancées et apportez les modifications suivantes :
- Cliquez sur Mise en réseau et ajoutez
allow-ssh
aux tags réseau. - Cliquez sur le bouton de modification sous Interfaces réseau, apportez les modifications suivantes, puis cliquez sur OK :
- Réseau : NETWORK
- Sous-réseau : LB_SUBNET_NAME
- Adresse IP interne principale : éphémère (automatique)
- Adresse IP externe : Éphémère
- Cliquez sur Mise en réseau et ajoutez
- Cliquez sur Créer.
gcloud
La VM cliente peut se trouver dans n'importe quelle zone de la même région que l'équilibreur de charge, et utiliser n'importe quel sous-réseau de cette région. Dans cet exemple, le client se situe dans la zone CLIENT_VM_ZONE et utilise le même sous-réseau que les VM de backend.
gcloud compute instances create vm-client \ --zone=CLIENT_VM_ZONE \ --image-family=debian-10 \ --image-project=debian-cloud \ --tags=allow-ssh \ --subnet=LB_SUBNET_NAME
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=CLIENT_VM_ZONE
Obtenez l'adresse IP de l'équilibreur de charge. Utilisez la commande
compute addresses describe
pour afficher l'adresse IP allouée :gcloud compute addresses describe l7-ilb-ip-address \ --region=us-west1
Vérifiez que l'équilibreur de charge diffuse les noms d'hôte de backend comme prévu. Remplacez IP_ADDRESS par l'adresse IP de l'équilibreur de charge.
Pour le test HTTP, exécutez la commande suivante :
curl IP_ADDRESS
Pour le test HTTPS, exécutez la commande suivante :
curl -k -s 'https://test.example.com:443' --connect-to test.example.com:443:IP_ADDRESS:443
L'option -k
indique à curl d'ignorer l'étape de validation du certificat.
Le test des points de terminaison autres que Google Cloud dépend du service que vous avez exposé via le point de terminaison NEG hybride.