Ce document présente deux exemples de configuration pour la configuration d'un équilibrage de charge d'application interne dans un environnement VPC partagé :
- Le premier exemple crée tous les composants et les backends de l'équilibreur de charge dans un projet de service.
- Le deuxième exemple crée les composants d'interface et le mappage d'URL de l'équilibreur de charge dans un projet de service, tandis que le service de backend et les backends de l'équilibreur de charge sont créés dans un projet de service différent. Ce type de déploiement, où le mappage d'URL fait référence à un service de backend situé dans un autre projet, est appelé Référence de services inter-projets.
Les deux exemples nécessitent la même configuration initiale pour accorder des autorisations et configurer un VPC partagé avant de pouvoir commencer à créer des équilibreurs de charge.
Ce ne sont pas les seules configurations de VPC partagé compatibles avec les équilibreurs de charge d'application internes. Pour découvrir d'autres architectures de VPC partagé valides, consultez la page Architectures de VPC partagé.
Si vous ne souhaitez pas utiliser de réseau VPC partagé, consultez la page Configurer un équilibreur de charge d'application interne.
Avant de commencer
- Consultez la page Présentation du VPC partagé.
- Consultez la page Présentation de l'équilibreur de charge d'application interne, y compris la section Architectures de VPC partagé.
les autorisations requises pour l'extension ;
La configuration d'un équilibreur de charge sur un réseau VPC partagé nécessite une configuration et un provisionnement initiaux par un administrateur. Une fois la configuration initiale terminée, un propriétaire de projet de service peut effectuer l'une des opérations suivantes :
- Déployer tous les composants de l'équilibreur de charge et ses backends dans un projet de service.
- Déployer les composants backend de l'équilibreur de charge (service de backend et backends) dans des projets de service pouvant être référencés par un mappage d'URL dans un autre service ou projet hôte.
Cette section récapitule les autorisations requises pour suivre ce guide afin de configurer un équilibreur de charge sur un réseau VPC partagé.
Configurer un VPC partagé
Les rôles suivants sont requis pour les tâches suivantes :
- effectuer des tâches d'administration ponctuelles, telles que la configuration du VPC partagé et l'activation d'un projet hôte ;
- effectuer des tâches d'administration qui doivent être répétées chaque fois que vous souhaitez intégrer un nouveau projet de service. Cela inclut le rattachement du projet de service, le provisionnement et la configuration des ressources réseau, ainsi que l'attribution de l'autorisation d'accès à l'administrateur du projet de service.
Ces tâches doivent être effectuées dans le projet hôte du VPC partagé. Il est préférable que l'administrateur du VPC partagé soit également le propriétaire du projet hôte du VPC partagé. Les rôles d'administrateur réseau et d'administrateur de sécurité seront ainsi attribués automatiquement.
Tâche | Rôle requis |
---|---|
Configurer le VPC partagé, activer le projet hôte et accorder l'accès aux administrateurs de projet de service | Administrateur de VPC partagé |
Créer des sous-réseaux dans le projet hôte de VPC partagé et accorder l'accès aux administrateurs de projet de service | Administrateur réseau |
Ajouter et supprimer des règles de pare-feu | Administrateur de sécurité |
Une fois les sous-réseaux provisionnés, le propriétaire du projet hôte doit attribuer le rôle d'utilisateur de réseau dans le projet hôte à toute personne (généralement des administrateurs de projet de service, des développeurs ou des comptes de service) ayant besoin d'utiliser ces ressources.
Tâche | Rôle requis |
---|---|
Utiliser des réseaux et sous-réseaux VPC appartenant au projet hôte | Utilisateur du réseau |
Ce rôle peut être attribué au niveau du projet ou pour des sous-réseaux individuels. Nous vous recommandons d'attribuer le rôle pour les sous-réseaux individuels. En effet, l'attribution du rôle au niveau du projet permet d'accéder à tous les sous-réseaux actuels et futurs du réseau VPC du projet hôte.
Déployer un équilibreur de charge et des backends
Les administrateurs de projet de service ont besoin des rôles suivants dans le projet de service pour créer des ressources et des backends d'équilibrage de charge. Ces autorisations sont accordées automatiquement au propriétaire ou à l'éditeur du projet de service.
Tâche | Rôle requis |
---|---|
Créer des composants pour l'équilibreur de charge | Administrateur réseau |
Créer des instances | Administrateur d'instances |
Créer et modifier des certificats SSL | Administrateur de sécurité |
Référencer des services de backend multiprojets
Si votre équilibreur de charge doit référencer des services de backend d'autres projets de service, également appelés références de services multiprojets, les administrateurs de l'équilibreur de charge ont besoin du rôle suivant dans le projet de service dans lequel le service de backend est créé.
Tâche | Rôle requis |
---|---|
Autorisations permettant d'utiliser des services dans d'autres projets | Utilisateur des services d'équilibreur de charge |
Ce rôle peut être attribué au niveau du projet ou pour des services de backend individuels. Pour savoir comment attribuer ce rôle, consultez l'exemple de référence de service multiprojet sur cette page.
Pour plus d'informations sur IAM, consultez les guides suivants :
- Access control (Contrôle des accès)
- Conditions IAM
Prérequis
Dans cette section, vous devez effectuer les étapes suivantes :
- Configurer le réseau et les sous-réseaux dans le projet hôte.
- Configurer un VPC partagé dans le projet hôte.
Il n'est pas nécessaire de suivre les étapes de cette section chaque fois que vous souhaitez créer un équilibreur de charge. Toutefois, vous devez vous assurer que vous avez accès aux ressources décrites ici avant de créer l'équilibreur de charge.
Configurer le réseau et les sous-réseaux dans le projet hôte
Vous avez besoin d'un réseau VPC partagé avec deux sous-réseaux : un pour l'interface et les backends de l'équilibreur de charge, un pour les proxys de l'équilibreur de charge.Cet exemple utilise le réseau, la région et les sous-réseaux suivants :
Réseau Le réseau est nommé
lb-network
.Sous-réseau pour l'interface et les backends de l'équilibreur de charge. Un sous-réseau nommé
lb-frontend-and-backend-subnet
dans la régionus-west1
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égionus-west1
utilise10.129.0.0/23
pour sa plage d'adresses IP principale.
Configurer le sous-réseau pour l'interface et les backends de l'équilibreur de charge
Il n'est pas nécessaire de suivre les étapes de cette section chaque fois que vous souhaitez créer un équilibreur de charge. Vous devez simplement vous assurer que le projet de service a accès à un sous-réseau du réseau VPC partagé (en plus du sous-réseau proxy réservé).Toutes les étapes de cette section doivent être effectuées dans le projet hôte.
Console
- Dans Google Cloud Console, 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 Mode de création du sous-réseau sur Personnalisé.
Dans la section Nouveau sous-réseau, saisissez les informations suivantes :
- Nom :
lb-frontend-and-backend-subnet
Région :
us-west1
Plage d'adresses IP :
10.1.2.0/24
- Nom :
Cliquez sur OK.
Cliquez sur Créer.
gcloud
Créez un réseau VPC à l'aide de la commande
gcloud compute networks create
:gcloud compute networks create lb-network --subnet-mode=custom
Créez un sous-réseau sur le réseau
lb-network
, dans la régionus-west1
:gcloud compute networks subnets create lb-frontend-and-backend-subnet \ --network=lb-network \ --range=10.1.2.0/24 \ --region=us-west1
Terraform
Créez un réseau VPC :
Créez un sous-réseau dans la région
us-west1
:
Configurer le sous-réseau proxy réservé
Le sous-réseau proxy réservé est utilisé par tous les équilibreurs de charge régionaux basés sur Envoy dans la région us-west1
du réseau VPC lb-network
. Il ne peut y avoir qu'un seul sous-réseau proxy réservé actif par région et par réseau.
N'effectuez pas cette étape s'il existe déjà un sous-réseau proxy réservé dans la région us-west1
de ce réseau.
Toutes les étapes de cette section doivent être effectuées dans le projet hôte.
Console
- Dans Google Cloud Console, accédez à 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
us-west1
. - 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=us-west1 \ --network=lb-network \ --range=10.129.0.0/23
Terraform
Créer le sous-réseau proxy réservé :
Autoriser les administrateurs de projet de service à accéder au sous-réseau backend
Les administrateurs de projet de service ont besoin d'accéder au sous-réseaulb-frontend-and-backend-subnet
pour pouvoir provisionner les backends de l'équilibreur de charge.
Un administrateur du VPC partagé doit accorder l'accès au sous-réseau backend aux administrateurs du projet de service (ou aux développeurs qui déploieront des ressources et des backends qui exploitent le sous-réseau). Pour obtenir des instructions, consultez la section Administrateurs de projet de service pour certains sous-réseaux.
Configurer des règles de pare-feu dans le projet hôte
Cet exemple utilise les règles de pare-feu suivantes :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 cibleload-balanced-backend
pour identifier les instances auxquelles la règle doit s'appliquer.
fw-allow-proxies
: règle d'entrée applicable aux instances faisant l'objet d'un équilibrage de charge, qui autorise le trafic TCP sur les ports80
,443
et8080
à partir des proxys gérés de l'équilibreur de charge. Cet exemple utilise le tag cibleload-balanced-backend
pour identifier les instances auxquelles la règle doit s'appliquer.
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
pour identifier les machines virtuelles (VM) auxquelles la règle de pare-feu s'applique.
Toutes les étapes de cette section doivent être effectuées dans le projet hôte.
Console
Dans la console Google Cloud, accédez à la page Règles d'administration.
- Cliquez 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 :
load-balanced-backend
- Filtre source : plages IPv4
- Plages IPv4 sources :
130.211.0.0/22
et35.191.0.0/16
- Protocols and ports (Protocoles et ports) :
- Choisissez Protocoles et ports spécifiés.
- Vérifiez TCP et 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 utilisez
tcp: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
. - Cliquez sur Créer.
- Cliquez 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-proxies
- Réseau :
lb-network
- Sens du trafic : entrée
- Action en cas de correspondance : autoriser
- Cibles : tags cibles spécifiés
- Tags cibles :
load-balanced-backend
- Filtre source : plages IPv4
- Plages IPv4 sources :
10.129.0.0/23
- Protocols and ports (Protocoles et ports) :
- Choisissez Protocoles et ports spécifiés.
- Vérifiez TCP et saisissez
80, 443, 8080
pour les numéros de port.
- Cliquez sur Créer.
- Cliquez 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-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
- Protocols and ports (Protocoles et ports) :
- Choisissez Protocoles et ports spécifiés.
- Vérifiez TCP et saisissez
22
pour le numéro de port.
- Cliquez sur Créer.
gcloud
Créez la règle de pare-feu
fw-allow-health-check
pour autoriser les vérifications d'état Google Cloud. Cet exemple autorise tout le trafic TCP provenant des vérificateurs 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=load-balanced-backend \ --rules=tcp
Créez la règle de pare-feu
fw-allow-proxies
pour autoriser le trafic provenant du sous-réseau proxy réservé Envoy à accéder à vos backends.gcloud compute firewall-rules create fw-allow-proxies \ --network=lb-network \ --action=allow \ --direction=ingress \ --source-ranges=10.129.0.0/23 \ --target-tags=load-balanced-backend \ --rules=tcp:80,tcp:443,tcp:8080
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
Terraform
Créez une règle de pare-feu pour autoriser les vérifications d'état Google Cloud.
Créez une règle de pare-feu pour autoriser le trafic provenant du sous-réseau proxy réservé Envoy à atteindre vos backends.
Créez une règle de pare-feu pour autoriser la connectivité SSH aux VM avec le tag réseau
allow-ssh
.
Configurer un VPC partagé dans le projet hôte
Cette étape consiste à activer un projet hôte de VPC partagé, à partager des sous-réseaux du projet hôte et à associer des projets de service au projet hôte afin que ces derniers puissent utiliser le réseau VPC partagé. Pour configurer un VPC partagé dans le projet hôte, consultez les pages suivantes :
Le reste de ces instructions suppose que vous avez déjà configuré un VPC partagé. Cela inclut de configurer des stratégies IAM pour votre organisation et de désigner les projets hôtes et de service.
Ne poursuivez pas tant que vous n'avez pas configuré le VPC partagé et activé les projets hôte et de service.
Configurer un équilibreur de charge dans le projet de service
Cet exemple crée un équilibreur de charge d'application interne dans lequel tous les composants d'équilibrage de charge (règle de transfert, proxy cible, mappage d'URL et service de backend) et les backends sont créés dans le projet de service.
Les ressources réseau de l'équilibreur de charge d'application interne, telles que le sous-réseau proxy réservé et le sous-réseau des instances backend, sont créées dans le projet hôte. Les règles de pare-feu des instances backend sont également créées dans le projet hôte.
Cette section vous explique comment configurer l'équilibreur de charge et les backends. Ces étapes doivent être effectuées par l'administrateur du projet de service (ou un développeur opérant dans le projet de service) et ne nécessitent aucune intervention de l'administrateur du projet hôte. Les étapes de cette section sont très semblables aux étapes standards de configuration de l'équilibreur de charge d'application interne.
L'exemple de cette page définit explicitement une adresse IP interne réservée pour la règle de transfert interne de l'équilibreur de charge d'application interne, au lieu d'autoriser l'allocation d'une adresse IP interne éphémère. Nous vous recommandons de réserver les adresses IP pour les règles de transfert.
Créer le backend du groupe d'instances géré
Cette section explique comment créer un modèle et un groupe d'instances géré. Le groupe d'instances géré fournit des instances de VM exécutant les serveurs de backend d'un exemple d'équilibreur de charge d'application interne. Le trafic des clients fait l'objet d'un équilibrage de charge par rapport à ces serveurs de backend. À des fins de démonstration, les backends diffusent leurs propres noms d'hôte.
Console
Créez un modèle d'instance. Dans Google Cloud Console, 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
l7-ilb-backend-template
. - Assurez-vous que le disque de démarrage est défini sur une image Debian, telle que Debian GNU/Linux 10 (Buster). Ces instructions utilisent des commandes uniquement disponibles dans Debian, comme
apt-get
. Si vous devez modifier le disque de démarrage, cliquez sur Modifier.- Pour Système d'exploitation, sélectionnez Debian.
- Pour Version, sélectionnez l'une des images Debian disponibles, telles que Debian GNU/Linux 10 (Buster).
- Cliquez sur Sélectionner.
- Cliquez sur Options avancées, puis sur Mise en réseau.
- Saisissez les tags réseau suivants :
allow-ssh
,load-balanced-backend
. - Dans la section Interfaces réseau, sélectionnez Réseaux partagés avec moi (depuis le projet hôte : HOST_PROJECT_ID).
- Sélectionnez le sous-réseau
lb-frontend-and-backend-subnet
dans le réseaulb-network
. - Cliquez sur Gestion. Pour Gestion, insérez 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.
- Choisissez Nouveau groupe d'instances géré (sans état). Pour des informations plus détaillées, consultez la page Groupes d'instances gérés (MIG) sans état ou avec état.
- Dans le champ Nom, saisissez
l7-ilb-backend-example
. - Pour Emplacement, sélectionnez Zone unique.
- Pour Région, sélectionnez
us-west1
. - Pour Zone, sélectionnez
us-west1-a
. - Pour Modèle d'instance, sélectionnez
l7-ilb-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
.
Si vous le souhaitez, dans la section Autoscaling de l'interface utilisateur, vous pouvez configurer le groupe d'instances de manière à ajouter ou supprimer automatiquement des instances en fonction de l'utilisation du processeur.
- Dans le champ Mode autoscaling, sélectionnez
Cliquez sur Create (Créer).
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 un serveur HTTP à l'aide de la commande
gcloud compute instance-templates create
.gcloud compute instance-templates create l7-ilb-backend-template \ --region=us-west1 \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/us-west1/subnetworks/lb-frontend-and-backend-subnet \ --tags=allow-ssh,load-balanced-backend \ --image-family=debian-10 \ --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' \ --project=SERVICE_PROJECT_ID
Créez un groupe d'instances géré dans la zone à l'aide de la commande
gcloud compute instance-groups managed create
.gcloud compute instance-groups managed create l7-ilb-backend-example \ --zone=us-west1-a \ --size=2 \ --template=l7-ilb-backend-template \ --project=SERVICE_PROJECT_ID
Terraform
Créez un modèle d'instance de VM.
Créez un groupe d'instances géré.
Pour HTTP :
Pour HTTPS :
Configurer l'équilibreur de charge
Cette section vous explique comment créer les ressources suivantes pour l'équilibreur de charge d'application interne :
- Vérification d'état HTTP
- Un service de backend avec un groupe d'instances géré en tant que backend
- Un mappage d'URL
- Un certificat SSL (requis uniquement pour HTTPS)
- Un proxy cible
- Une règle de transfert
Disponibilité du proxy
En fonction du nombre de projets de service qui utilisent le même réseau VPC partagé, vous pouvez atteindre des quotas ou des limites plus rapidement que dans le modèle de déploiement réseau où chaque projet Google Cloud héberge son propre réseau.
Parfois, les régions Google Cloud ne disposent pas d'une capacité de proxy suffisante pour un nouvel équilibreur de charge d'application interne. Dans ce cas, la console Google Cloud fournit un message d'avertissement de disponibilité du proxy lors de la création de votre équilibreur de charge. Pour résoudre ce problème, vous pouvez effectuer l'une des opérations suivantes :
- Attendez que le problème de capacité soit résolu.
Contactez l'équipe commerciale Google Cloud pour augmenter ces limites.
Console
Basculer vers le contexte du projet de service
- Dans la console Google Cloud, accédez à la page Tableau de bord.
- Cliquez sur la liste Sélectionner en haut de la page. Dans la fenêtre Sélectionner qui s'affiche, sélectionnez le projet de service dans lequel vous souhaitez créer l'équilibreur de charge.
Démarrer la configuration
Dans Google Cloud Console, accédez à la page Équilibrage de charge.
- Cliquez sur Créer un équilibreur de charge.
- Dans le champ Type d'équilibreur de charge, sélectionnez Équilibreur de charge d'application (HTTP/HTTPS), 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
- Pour le nom de l'équilibreur de charge, saisissez
l7-ilb-shared-vpc
. - Pour la région, sélectionnez
us-west1
. Pour le réseau, sélectionnez lb-network (dans Projet : HOST_PROJECT_ID).
Si le message d'avertissement Sous-réseau proxy réservé obligatoire dans le réseau VPC partagé s'affiche, confirmez que l'administrateur du projet hôte a créé l'adresse
proxy-only-subnet
dans la régionus-west1
du réseau VPC partagélb-network
. La création de l'équilibreur de charge réussit même si vous ne disposez pas des autorisations nécessaires pour afficher le sous-réseau proxy réservé sur cette page.Laissez la fenêtre ouverte pour continuer.
Configurer le backend
- Cliquez sur Configuration du backend.
- Dans le menu Créer ou sélectionner des services de backend, sélectionnez Créer un service de backend.
- Définissez le paramètre Nom du service de backend sur
l7-ilb-backend-service
. - Définissez le Type de backend sur Groupes d'instances.
- Dans la section Nouveau backend :
- Définissez le Groupe d'instances sur
l7-ilb-backend-example
. - Définissez les numéros de port sur
80
. - Définissez le Mode d'équilibrage sur Utilisation.
- Cliquez sur OK.
- Définissez le Groupe d'instances sur
- Dans la section Vérification d'état, sélectionnez Créer une vérification d'état avec les paramètres suivants :
- Nom :
l7-ilb-basic-check
- Protocole :
HTTP
- Port :
80
- Nom :
- Cliquez sur Enregistrer et continuer.
- Cliquez sur Créer.
Configurer les règles de routage
- Cliquez sur Règles de routage. Assurez-vous que
l7-ilb-backend-service
est le seul service de backend pour tous les hôtes et chemins sans correspondance.
Pour en savoir plus sur la gestion du trafic, consultez la page Configurer la gestion du trafic.
Configurer l'interface
Pour HTTP :
- Cliquez sur Configuration du frontend.
- Dans le champ Nom, spécifiez
l7-ilb-forwarding-rule
. - Définissez le paramètre Protocole sur
HTTP
. - Définissez le paramètre Sous-réseau sur
lb-frontend-and-backend-subnet
. Ne sélectionnez pas le sous-réseau proxy réservé pour l'interface, même s'il s'agit d'une option de la liste déroulante. - Définissez le paramètre Port sur
80
. - Cliquez sur le menu Adresse IP, puis sur Créer une adresse IP.
- Dans le panneau Réserver une adresse IP statique interne, fournissez les informations suivantes :
- Dans le champ Nom, saisissez
ip-address-shared-vpc
. - Pour Adresse IP statique, cliquez sur Laissez-moi choisir. Pour Adresse IP personnalisée, saisissez
10.1.2.99
. - (Facultatif) Si vous souhaitez partager cette adresse IP avec différentes interfaces, définissez la section Objectif sur Partagée.
- Dans le champ Nom, saisissez
- Cliquez sur OK.
Pour HTTPS :
Si vous utilisez HTTPS entre le client et l'équilibreur de charge, vous devez disposer d'une ou de plusieurs ressources de certificat SSL pour configurer le proxy. Pour en savoir plus sur la création de ressources de certificat SSL, consultez la page Certificats SSL. À l'heure actuelle, les certificats gérés par Google ne sont pas compatibles avec les équilibreurs de charge d'application internes.
- Cliquez sur Configuration de l'interface.
- Dans le champ Nom, saisissez
l7-ilb-forwarding-rule
. - Dans le champ Protocole, sélectionnez
HTTPS (includes HTTP/2)
. - Définissez le paramètre Sous-réseau sur
lb-frontend-and-backend-subnet
. Ne sélectionnez pas le sous-réseau proxy réservé pour l'interface, même s'il s'agit d'une option de la liste déroulante. - Assurez-vous que le port est défini sur la valeur
443
pour autoriser le trafic HTTPS. - Cliquez sur le menu Adresse IP, puis sur Créer une adresse IP.
- Dans le panneau Réserver une adresse IP statique interne, fournissez les informations suivantes :
- Dans le champ Nom, saisissez
ip-address-shared-vpc
. - Pour Adresse IP statique, cliquez sur Laissez-moi choisir. Pour Adresse IP personnalisée, saisissez
10.1.2.99
. - (Facultatif) Si vous souhaitez partager cette adresse IP avec différentes interfaces, définissez la section Objectif sur Partagée.
- Dans le champ Nom, saisissez
- Cliquez sur la liste Certificat.
- Si vous possédez déjà une ressource de certificat SSL autogérée que vous souhaitez utiliser comme certificat SSL principal, sélectionnez-la dans le menu déroulant.
- Sinon, sélectionnez Créer un certificat.
- Pour le nom, indiquez
l7-ilb-cert
. - Dans les champs appropriés, importez vos fichiers au format PEM :
- Certificat de clé publique
- Chaîne de certificats
- Clé privée
- Cliquez sur Create (Créer).
- Pour le nom, indiquez
- Pour ajouter des ressources de certificat en plus de la ressource de certificat SSL principale, procédez comme suit :
- Cliquez sur Ajouter un certificat.
- Sélectionnez un certificat dans la liste Certificats ou cliquez sur Créer un certificat, puis suivez les instructions précédentes.
- Cliquez sur OK.
Vérifier et finaliser la configuration
- Cliquez sur Créer.
gcloud
Définissez la vérification d'état HTTP à l'aide de la commande
gcloud compute health-checks create http
.gcloud compute health-checks create http l7-ilb-basic-check \ --region=us-west1 \ --use-serving-port \ --project=SERVICE_PROJECT_ID
Définissez le service de backend avec la commande
gcloud compute backend-services create
.gcloud compute backend-services create l7-ilb-backend-service \ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=HTTP \ --health-checks=l7-ilb-basic-check \ --health-checks-region=us-west1 \ --region=us-west1 \ --project=SERVICE_PROJECT_ID
Ajoutez des backends au service de backend à l'aide de la commande
gcloud compute backend-services add-backend
.gcloud compute backend-services add-backend l7-ilb-backend-service \ --balancing-mode=UTILIZATION \ --instance-group=l7-ilb-backend-example \ --instance-group-zone=us-west1-a \ --region=us-west1 \ --project=SERVICE_PROJECT_ID
Créez le mappage d'URL à l'aide de la commande
gcloud compute url-maps create
.gcloud compute url-maps create l7-ilb-map \ --default-service=l7-ilb-backend-service \ --region=us-west1 \ --project=SERVICE_PROJECT_ID
Créez le proxy cible.
Pour HTTP :
Pour un équilibreur de charge HTTP interne, créez le proxy cible à l'aide de la commande
gcloud compute target-http-proxies create
.gcloud compute target-http-proxies create l7-ilb-proxy \ --url-map=l7-ilb-map \ --url-map-region=us-west1 \ --region=us-west1 \ --project=SERVICE_PROJECT_ID
Pour HTTPS :
Pour en savoir plus sur la création de ressources de certificat SSL, consultez la page Certificats SSL. À l'heure actuelle, les certificats gérés par Google ne sont pas compatibles avec les équilibreurs de charge d'application internes.
Attribuez vos chemins de fichiers à des noms de variables.
export LB_CERT=path to PEM-formatted file
export LB_PRIVATE_KEY=path to PEM-formatted file
Créez un certificat SSL régional à l'aide de la commande
gcloud compute ssl-certificates create
.gcloud compute ssl-certificates create l7-ilb-cert \ --certificate=$LB_CERT \ --private-key=$LB_PRIVATE_KEY \ --region=us-west1
Utilisez le certificat SSL régional pour créer le proxy cible à l'aide de la commande
gcloud compute target-https-proxies create
.gcloud compute target-https-proxies create l7-ilb-proxy \ --url-map=l7-ilb-map \ --region=us-west1 \ --ssl-certificates=l7-ilb-cert \ --project=SERVICE_PROJECT_ID
Créez la règle de transfert.
Pour les réseaux personnalisés, vous devez faire référence au sous-réseau dans la règle de transfert.
Pour l'adresse IP de la règle de transfert, utilisez le sous-réseau
lb-frontend-and-backend-subnet
. Si vous essayez d'utiliser le sous-réseau proxy réservé, la création de la règle de transfert échoue.Pour HTTP :
Utilisez la commande
gcloud compute forwarding-rules create
avec les options appropriées.gcloud compute forwarding-rules create l7-ilb-forwarding-rule \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/us-west1/subnetworks/lb-frontend-and-backend-subnet \ --address=IP_ADDRESS_NAME \ --ports=80 \ --region=us-west1 \ --target-http-proxy=l7-ilb-proxy \ --target-http-proxy-region=us-west1 \ --project=SERVICE_PROJECT_ID
Pour HTTPS :
Utilisez la commande
gcloud compute forwarding-rules create
avec les options appropriées.gcloud compute forwarding-rules create l7-ilb-forwarding-rule \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/us-west1/subnetworks/lb-frontend-and-backend-subnet \ --address=IP_ADDRESS_NAME \ --ports=443 \ --region=us-west1 \ --target-https-proxy=l7-ilb-proxy \ --target-https-proxy-region=us-west1 \ --project=SERVICE_PROJECT_ID
Terraform
Définissez la vérification d'état HTTP.
Pour HTTP :
Pour HTTPS :
Définissez le service de backend.
Créez le mappage d'URL.
Créez le proxy cible.
Pour HTTP :
Pour HTTPS : créez un certificat SSL régional.
Pour en savoir plus sur la création de ressources de certificat SSL, consultez la page Certificats SSL. À l'heure actuelle, les certificats gérés par Google ne sont pas compatibles avec les équilibreurs de charge d'application internes.
Utilisez le certificat SSL régional pour créer un proxy cible.
Créez la règle de transfert.
Pour les réseaux personnalisés, vous devez faire référence au sous-réseau dans la règle de transfert.
Pour HTTP :
Pour HTTPS :
Tester l'équilibreur de charge
Pour tester l'équilibreur de charge, commencez par créer un exemple de VM cliente. Établissez ensuite une session SSH avec la VM et envoyez le trafic de cette VM à l'équilibreur de charge.
Créer une instance de VM de test
Les clients peuvent se situer dans le projet hôte ou dans n'importe quel projet de service connecté. Dans cet exemple, vous déployez une VM cliente dans un projet de service pour tester le fonctionnement de l'équilibreur de charge. Le client doit utiliser le même réseau VPC partagé et se trouver 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.
Définissez le paramètre Nom sur
client-vm
.Définissez la Zone sur us-west1-a.
Cliquez sur Options avancées, puis sur Mise en réseau.
Saisissez les tags réseau suivants :
allow-ssh
,load-balanced-backend
.Dans la section Interfaces réseau, sélectionnez Réseaux partagés avec moi (depuis le projet hôte : HOST_PROJECT_ID).
Sélectionnez le sous-réseau
lb-frontend-and-backend-subnet
dans le réseaulb-network
.Cliquez sur Créer.
gcloud
Créez une instance de VM de test.
gcloud compute instances create client-vm \ --image-family=debian-10 \ --image-project=debian-cloud \ --subnet=projects/HOST_PROJECT_ID/regions/us-west1/subnetworks/lb-frontend-and-backend-subnet \ --zone=us-west1-a \ --tags=allow-ssh \ --project=SERVICE_PROJECT_ID
Terraform
Créez une instance de VM de test.
Envoyer du trafic vers l'équilibreur de charge
Utilisez SSH pour vous connecter à l'instance que vous venez de créer et pour vérifier que les services HTTP(S) sur les backends sont accessibles via l'adresse IP de la règle de transfert de l'équilibreur de charge d'application interne et que le trafic fait l'objet d'un équilibrage de charge sur les instances backend.
Connectez-vous à l'instance cliente avec SSH.
gcloud compute ssh client-vm \ --zone=us-west1-a
Vérifiez que l'adresse IP diffuse son nom d'hôte. Remplacez LB_IP_ADDRESS par l'adresse IP de l'équilibreur de charge.
curl LB_IP_ADDRESS
Pour le test HTTPS, remplacez
curl
par ce qui suit :curl -k -s 'https://LB_IP_ADDRESS:443'
L'option
-k
indique à curl d'ignorer l'étape de validation du certificat.
Configurer un équilibreur de charge avec un service de backend multiprojet
L'exemple précédent de cette page vous explique comment configurer un déploiement de VPC partagé dans lequel tous les composants de l'équilibreur de charge et ses backends sont créés dans le projet de service.
Les équilibreurs de charge d'application internes vous permettent également de configurer des déploiements de VPC partagé dans lesquels un mappage d'URL d'un projet hôte ou de service peut faire référence à des services de backend (et à des backends) situés sur plusieurs projets de service dans des environnements VPC partagés. C'est ce que l'on appelle la référence du service inter-projets.
Vous pouvez utiliser les étapes de cette section comme référence pour configurer l'une des combinaisons compatibles répertoriées ici :
- Règle de transfert, proxy cible et mappage d'URL dans le projet hôte, et service de backend dans un projet de service
- Règle de transfert, proxy cible et mappage d'URL dans un projet de service, et service de backend dans un autre projet de service
Le référencement des services multiprojets peut être utilisé avec des groupes d'instances, des NEG sans serveur ou tout autre type de backend compatible. Si vous utilisez des NEG sans serveur, vous devez créer une VM dans le réseau VPC sur lequel vous souhaitez créer l'interface de l'équilibreur de charge. Pour obtenir un exemple, consultez la section Créer une instance de VM dans un sous-réseau spécifique sur la page Configurer un équilibreur de charge d'application interne avec Cloud Run.
Conditions à respecter
Cet exemple configure un exemple d'équilibreur de charge avec son interface et son backend dans deux projets de service différents.
Si vous ne l'avez pas déjà fait, vous devez suivre toutes les étapes préalables pour configurer le VPC partagé ainsi que les réseaux, les sous-réseaux et les règles de pare-feu requis pour cet exemple. Pour obtenir des instructions, consultez les sections suivantes :
Créer les backends et le service de backend dans le projet de service B
Toutes les étapes de cette section doivent être effectuées dans le projet de service B.
Console
Créez un modèle d'instance. Dans Google Cloud Console, accédez à la page Modèles d'instances.
Accéder à la page Modèles d'instances
- Cliquez sur Créer un modèle d'instance.
- Dans le champ Nom, saisissez le nom du modèle d'instance :
cross-ref-backend-template
. - Assurez-vous que le disque de démarrage est défini sur une image Debian, telle que Debian GNU/Linux 10 (Buster). Ces instructions utilisent des commandes uniquement disponibles dans Debian, comme
apt-get
. Si vous devez modifier le disque de démarrage, cliquez sur Modifier.- Pour Système d'exploitation, sélectionnez Debian.
- Pour Version, sélectionnez l'une des images Debian disponibles, telles que Debian GNU/Linux 10 (Buster).
- Cliquez sur Sélectionner.
- Cliquez sur Options avancées, puis sur Mise en réseau.
- Saisissez les tags réseau suivants :
allow-ssh
,load-balanced-backend
. - Dans la section Interfaces réseau, sélectionnez Réseaux partagés avec moi (depuis le projet hôte : HOST_PROJECT_ID).
- Sélectionnez le sous-réseau
lb-frontend-and-backend-subnet
dans le réseaulb-network
. - Cliquez sur Gestion. Pour Gestion, insérez 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.
- Choisissez 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.
- Pour le champ Nom, saisissez le nom du groupe d'instances :
cross-ref-ig-backend
. - Pour Emplacement, sélectionnez Zone unique.
- Pour Région, sélectionnez
us-west1
. - Pour Zone, sélectionnez
us-west1-a
. - Pour Modèle d'instance, sélectionnez cross-ref-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
.
Si vous le souhaitez, dans la section Autoscaling de l'interface utilisateur, vous pouvez configurer le groupe d'instances de manière à ajouter ou supprimer automatiquement des instances en fonction de l'utilisation du processeur.
- Dans le champ Mode autoscaling, sélectionnez
Cliquez sur Créer.
Créez un service de backend régional. Dans le cadre de cette étape, nous allons également créer la vérification de l'état et ajouter des backends au service de backend. Dans la console Google Cloud, accédez à la page Backends.
- Cliquez sur Créer un service de backend régional.
- Dans le champ Nom, saisissez le nom du service de backend :
cross-ref-backend-service
. - Pour le paramètre Région, sélectionnez us-west1.
- Pour Type d'équilibreur de charge, sélectionnez Équilibreur de charge d'application interne régional (INTERNAL_MANAGED).
- Définissez Type de backend sur Groupes d'instances.
- Dans la section Backends, définissez le réseau sur lb-network.
- Cliquez sur Ajouter un backend et définissez les champs suivants :
- Définissez le Groupe d'instances sur cross-ref-ig-backend.
- Saisissez les numéros de port :
80
. - Définissez le Mode d'équilibrage sur Utilisation.
- Cliquez sur OK.
- Dans la section Vérification d'état, sélectionnez Créer une vérification d'état avec les paramètres suivants :
- Nom :
cross-ref-http-health-check
- Protocole :
HTTP
- Port :
80
- Cliquez sur Enregistrer.
- Nom :
- Cliquez sur Continuer.
Facultatif : dans la section Ajouter des autorisations, saisissez les comptes principaux IAM (généralement une adresse e-mail) des administrateurs de l'équilibreur de charge provenant d'autres projets afin qu'ils puissent utiliser ce service de backend pour les équilibreurs de charge dans leurs propres projets. Sans cette autorisation, vous ne pouvez pas utiliser le référencement des services multiprojets.
Si vous ne disposez pas des autorisations nécessaires pour définir des règles de contrôle des accès pour les services de backend dans ce projet, vous pouvez toujours créer le service de backend et un utilisateur autorisé effectuera cette étape ultérieurement, comme décrit dans la section Accorder des autorisations à l'administrateur de l'équilibreur de charge pour utiliser le service de backend. Cette section explique également comment accorder l'accès à tous les services de backend de ce projet, afin de ne pas avoir à le faire chaque fois que vous créez un service de backend.
Cliquez sur Créer.
gcloud
Créez un modèle d'instance de VM avec un serveur HTTP à l'aide de la commande
gcloud compute instance-templates create
.gcloud compute instance-templates create BACKEND_IG_TEMPLATE \ --region=us-west1 \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/us-west1/subnetworks/lb-frontend-and-backend-subnet \ --tags=allow-ssh,load-balanced-backend \ --image-family=debian-10 \ --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' \ --project=SERVICE_PROJECT_B_ID
Remplacez les éléments suivants :
BACKEND_IG_TEMPLATE
: nom du modèle de groupe d'instances.SERVICE_PROJECT_B_ID
: ID du projet de service B, dans lequel les backends de l'équilibreur de charge et le service de backend sont créés.HOST_PROJECT_ID
: ID du projet hôte de VPC partagé.
Créez un groupe d'instances géré dans la zone à l'aide de la commande
gcloud compute instance-groups managed create
.gcloud compute instance-groups managed create BACKEND_MIG \ --zone=us-west1-a \ --size=2 \ --template=BACKEND_IG_TEMPLATE \ --project=SERVICE_PROJECT_B_ID
Remplacez les éléments suivants :
BACKEND_MIG
: nom du groupe d'instances backend.
Définissez la vérification d'état HTTP à l'aide de la commande
gcloud compute health-checks create http
.gcloud compute health-checks create http HTTP_HEALTH_CHECK_NAME \ --region=us-west1 \ --use-serving-port \ --project=SERVICE_PROJECT_B_ID
Remplacez les éléments suivants :
HTTP_HEALTH_CHECK_NAME
: nom de la vérification d'état HTTP
Définissez le service de backend avec la commande
gcloud compute backend-services create
.gcloud compute backend-services create BACKEND_SERVICE_NAME \ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=HTTP \ --health-checks=HTTP_HEALTH_CHECK_NAME \ --health-checks-region=us-west1 \ --region=us-west1 \ --project=SERVICE_PROJECT_B_ID
Remplacez les éléments suivants :
BACKEND_SERVICE_NAME
: nom du service de backend créé dans le projet de service B.
Ajoutez des backends au service de backend à l'aide de la commande
gcloud compute backend-services add-backend
.gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --balancing-mode=UTILIZATION \ --instance-group=BACKEND_MIG \ --instance-group-zone=us-west1-a \ --region=us-west1 \ --project=SERVICE_PROJECT_B_ID
Terraform
Créez un modèle d'instance.
Créez un groupe d'instances géré.
Pour HTTP
Pour HTTPS
Créez une vérification d'état pour le backend.
Pour HTTP
Pour HTTPS
Créez un service de backend régional.
Créer l'interface et le mappage d'URL de l'équilibreur de charge dans le projet de service A
Toutes les étapes de cette section doivent être effectuées dans le projet de service A.
Console
Démarrer la configuration
Dans Google Cloud Console, accédez à la page Équilibrage de charge.
- Cliquez sur Créer un équilibreur de charge.
- Dans le champ Type d'équilibreur de charge, sélectionnez Équilibreur de charge d'application (HTTP/HTTPS), 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 Name (Nom), saisissez le nom de l'équilibreur de charge.
- Pour la région, sélectionnez
us-west1
. Pour le réseau, sélectionnez lb-network (dans Projet : HOST_PROJECT_NAME).
Si le message d'avertissement Sous-réseau proxy réservé obligatoire dans le réseau VPC partagé s'affiche, confirmez que l'administrateur du projet hôte a créé l'adresse
proxy-only-subnet
dans la régionus-west1
du réseau VPC partagélb-network
. La création de l'équilibreur de charge réussit même si vous ne disposez pas des autorisations nécessaires pour afficher le sous-réseau proxy réservé sur cette page.Laissez la fenêtre ouverte pour continuer.
Configurer le backend
- Cliquez sur Configuration du backend.
- Cliquez sur Services de backend multiprojets.
- Dans le champ ID du projet, saisissez l'ID du projet de service B.
- Dans le champ Nom du service de backend, saisissez le nom du service de backend du projet B que vous souhaitez utiliser. Dans cet exemple, il s'agit de
cross-ref-backend-service
. - Cliquez sur Ajouter le service de backend.
Configurer les règles de routage
- Cliquez sur Règles de routage. Assurez-vous que le service cross-ref-backend-service est le seul service de backend pour tous les hôtes et chemins sans correspondance.
Pour en savoir plus sur la gestion du trafic, consultez la page Configurer la gestion du trafic.
Configurer l'interface
Pour que la référence multiprojet fonctionne, l'interface doit utiliser le même réseau (lb-network
) que celui utilisé pour créer le service de backend.
Pour HTTP :
- Cliquez sur Configuration de l'interface.
- Saisissez un nom pour la règle de transfert :
cross-ref-http-forwarding-rule
. - Définissez le paramètre Protocole sur
HTTP
. - Définissez le paramètre Sous-réseau sur
lb-frontend-and-backend-subnet
. Ne sélectionnez pas le sous-réseau proxy réservé pour l'interface, même s'il s'agit d'une option de la liste déroulante. - Définissez le paramètre Port sur
80
. - Cliquez sur le menu Adresse IP, puis sur Créer une adresse IP.
- Dans le panneau Réserver une adresse IP statique interne, fournissez les informations suivantes :
- Dans le champ Nom, saisissez
cross-ref-ip-address
. - Pour Adresse IP statique, cliquez sur Laissez-moi choisir. Pour Adresse IP personnalisée, saisissez
10.1.2.98
. - (Facultatif) Si vous souhaitez partager cette adresse IP avec différentes interfaces, définissez la section Objectif sur Partagée.
- Dans le champ Nom, saisissez
- Cliquez sur OK.
Pour HTTPS :
Si vous utilisez HTTPS entre le client et l'équilibreur de charge, vous devez disposer d'une ou de plusieurs ressources de certificat SSL pour configurer le proxy. Pour en savoir plus sur la création de ressources de certificat SSL, consultez la page Certificats SSL. À l'heure actuelle, les certificats gérés par Google ne sont pas compatibles avec les équilibreurs de charge d'application internes.
- Cliquez sur Configuration de l'interface.
- Saisissez un nom pour la règle de transfert :
cross-ref-https-forwarding-rule
. - Dans le champ Protocole, sélectionnez
HTTPS (includes HTTP/2)
. - Définissez le paramètre Sous-réseau sur
lb-frontend-and-backend-subnet
. Ne sélectionnez pas le sous-réseau proxy réservé pour l'interface, même s'il s'agit d'une option de la liste déroulante. - Assurez-vous que le port est défini sur la valeur
443
pour autoriser le trafic HTTPS. - Cliquez sur le menu Adresse IP, puis sur Créer une adresse IP.
- Dans le panneau Réserver une adresse IP statique interne, fournissez les informations suivantes :
- Dans le champ Nom, saisissez
cross-ref-ip-address
. - Pour Adresse IP statique, cliquez sur Laissez-moi choisir. Pour Adresse IP personnalisée, saisissez
10.1.2.98
. - (Facultatif) Si vous souhaitez partager cette adresse IP avec différentes interfaces, définissez la section Objectif sur Partagée.
- Dans le champ Nom, saisissez
- Cliquez sur la liste Certificat.
- Si vous possédez déjà une ressource de certificat SSL autogérée que vous souhaitez utiliser comme certificat SSL principal, sélectionnez-la dans le menu déroulant.
- Sinon, sélectionnez Créer un certificat.
- Saisissez un nom pour le certificat SSL.
- Dans les champs appropriés, importez vos fichiers au format PEM :
- Certificat de clé publique
- Chaîne de certificats
- Clé privée
- Cliquez sur Create (Créer).
- Pour ajouter des ressources de certificat en plus de la ressource de certificat SSL principale, procédez comme suit :
- Cliquez sur Ajouter un certificat.
- Sélectionnez un certificat dans la liste Certificats ou cliquez sur Créer un certificat, puis suivez les instructions précédentes.
- Cliquez sur OK.
Vérifier et finaliser la configuration
- Cliquez sur Créer.
Tester l'équilibreur de charge
Une fois l'équilibreur de charge créé, testez-le en suivant les étapes décrites dans la section Tester l'équilibreur de charge.
gcloud
Créez le mappage d'URL et définissez le service par défaut sur le service de backend créé dans le projet de service B.
gcloud compute url-maps create URL_MAP_NAME \ --default-service=projects/SERVICE_PROJECT_B_ID/regions/us-west1/backendServices/BACKEND_SERVICE_NAME \ --region=us-west1 \ --project=SERVICE_PROJECT_A_ID
Remplacez les éléments suivants :
URL_MAP_NAME
: nom du mappage d'URL.BACKEND_SERVICE_NAME
: nom du service de backend créé dans le projet de service B.SERVICE_PROJECT_B_ID
: ID du projet de service B, dans lequel les backends de l'équilibreur de charge et le service de backend sont créés.SERVICE_PROJECT_A_ID
: ID du projet de service A, dans lequel l'interface de l'équilibreur de charge est créée.
La création du mappage d'URL échoue si vous ne disposez pas de l'autorisation
compute.backendServices.use
pour le service de backend dans le projet de service B.Créez le proxy cible.
Pour HTTP :
gcloud compute target-http-proxies create HTTP_TARGET_PROXY_NAME \ --url-map=URL_MAP_NAME \ --url-map-region=us-west1 \ --region=us-west1 \ --project=SERVICE_PROJECT_A_ID
Remplacez les éléments suivants :
HTTP_TARGET_PROXY_NAME
: nom du proxy HTTP cible.
Pour HTTPS :
Créez un certificat SSL régional à l'aide de la commande
gcloud compute ssl-certificates create
.gcloud compute ssl-certificates create SSL_CERTIFICATE_NAME \ --certificate=PATH_TO_CERTIFICATE \ --private-key=PATH_TO_PRIVATE_KEY \ --region=us-west1 \ --project=SERVICE_PROJECT_A_ID
Remplacez les éléments suivants :
SSL_CERTIFICATE_NAME
: nom de la ressource de certificat SSL.PATH_TO_CERTIFICATE
: chemin d'accès au fichier de certificat SSL local au format PEM.PATH_TO_PRIVATE_KEY
: chemin d'accès à la clé privée du certificat SSL local au format PEM.
Utilisez le certificat SSL régional pour créer le proxy cible à l'aide de la commande
gcloud compute target-https-proxies create
.gcloud compute target-https-proxies create HTTPS_TARGET_PROXY_NAME \ --url-map=URL_MAP_NAME \ --region=us-west1 \ --ssl-certificates=SSL_CERTIFICATE_NAME \ --project=SERVICE_PROJECT_A_ID
Remplacez les éléments suivants :
HTTPS_TARGET_PROXY_NAME
: nom du proxy HTTPS cible.
Créez la règle de transfert. Pour que la référence de service multiprojet fonctionne, la règle de transfert doit utiliser le même réseau (
lb-network
) que celui du projet hôte de VPC partagé utilisé pour créer le service de backend.Pour HTTP :
gcloud compute forwarding-rules create HTTP_FORWARDING_RULE_NAME \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/us-west1/subnetworks/lb-frontend-and-backend-subnet \ --address=IP_ADDRESS_CROSS_REF \ --ports=80 \ --region=us-west1 \ --target-http-proxy=HTTP_TARGET_PROXY_NAME \ --target-http-proxy-region=us-west1 \ --project=SERVICE_PROJECT_A_ID
Remplacez les éléments suivants :
HTTP_FORWARDING_RULE_NAME
: nom de la règle de transfert utilisée pour gérer le trafic HTTP.
Pour HTTPS :
gcloud compute forwarding-rules create HTTPS_FORWARDING_RULE_NAME \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/us-west1/subnetworks/lb-frontend-and-backend-subnet \ --address=IP_ADDRESS_CROSS_REF \ --ports=443 \ --region=us-west1 \ --target-https-proxy=HTTPS_TARGET_PROXY_NAME \ --target-https-proxy-region=us-west1 \ --project=SERVICE_PROJECT_A_ID
Remplacez les éléments suivants :
HTTPS_FORWARDING_RULE_NAME
: nom de la règle de transfert utilisée pour gérer le trafic HTTPS.
Pour tester l'équilibreur de charge, suivez les étapes décrites dans la section Tester l'équilibreur de charge.
Terraform
Créez le mappage d'URL.
Créez le proxy cible.
Pour HTTP
Pour HTTPS
Créer un certificat SSL régional
Utilisez le certificat SSL régional pour créer un proxy cible.
Créez la règle de transfert.
Pour HTTP
Pour HTTPS
Pour tester l'équilibreur de charge, suivez les étapes décrites dans la section Tester l'équilibreur de charge.
Accorder des autorisations à l'administrateur de l'équilibreur de charge pour utiliser le service de backend
Si vous souhaitez que les équilibreurs de charge référencent des services de backend dans d'autres projets de service, l'administrateur de l'équilibreur de charge doit disposer de l'autorisation compute.backendServices.use
. Pour accorder cette autorisation, vous pouvez utiliser le rôle IAM prédéfini appelé Utilisateur des services de l'équilibreur de charge Compute (roles/compute.loadBalancerServiceUser
). Ce rôle doit être attribué par l'administrateur de projet de service et peut être appliqué au niveau du projet ou au niveau du service de backend.
Cette étape n'est pas nécessaire si vous avez déjà accordé les autorisations requises au niveau du service de backend lors de la création du service de backend. Vous pouvez ignorer cette section ou continuer à lire pour savoir comment accorder l'accès à tous les services de backend de ce projet, afin de ne pas avoir à le faire chaque fois que vous créez un backend.
Dans cet exemple, un administrateur de projet de service du projet B doit exécuter l'une des commandes suivantes pour accorder l'autorisation compute.backendServices.use
à un administrateur de l'équilibreur de charge du projet de service A. Cette opération peut être effectuée au niveau du projet (pour tous les services de backend du projet) ou par service de backend.
Console
Autorisations au niveau du projet
Procédez comme suit pour accorder des autorisations à tous les services de backend de votre projet.
Vous avez besoin des autorisations compute.regionBackendServices.setIamPolicy
et resourcemanager.projects.setIamPolicy
pour effectuer cette étape.
Dans la console Google Cloud, accédez à la page Services d'équilibrage de charge partagés.
Dans la section Toutes les autorisations du service de backend (autorisations au niveau du projet), sélectionnez votre projet.
Si le panneau des autorisations n'est pas visible, cliquez sur Afficher le panneau des autorisations. Le panneau Autorisations au niveau du projet s'ouvre à droite.
Cliquez sur
Ajouter un compte principal.Pour Nouveaux comptes principaux, saisissez l'adresse e-mail du compte principal ou un autre identifiant.
Pour Rôle, sélectionnez le rôle Utilisateur des services d'équilibrage de charge Compute dans la liste déroulante.
Facultatif : ajoutez une condition au rôle.
Cliquez sur Enregistrer.
Autorisations au niveau des ressources pour des services de backend individuels
Procédez comme suit pour accorder des autorisations à chaque service de backend de votre projet.
Vous devez disposer de l'autorisation compute.regionBackendServices.setIamPolicy
pour effectuer cette étape.
gcloud
Autorisations au niveau du projet
Procédez comme suit pour accorder des autorisations à tous les services de backend de votre projet.
Vous avez besoin des autorisations compute.regionBackendServices.setIamPolicy
et resourcemanager.projects.setIamPolicy
pour effectuer cette étape.
gcloud projects add-iam-policy-binding SERVICE_PROJECT_B_ID \ --member="user:LOAD_BALANCER_ADMIN" \ --role="roles/compute.loadBalancerServiceUser"
Autorisations au niveau des ressources pour des services de backend individuels
Au niveau du service de backend, les administrateurs de projet de service peuvent utiliser l'une des commandes suivantes pour attribuer le rôle d'utilisateur des services de l'équilibreur de charge Compute (roles/compute.loadBalancerServiceUser
).
Vous devez disposer de l'autorisation compute.regionBackendServices.setIamPolicy
pour effectuer cette étape.
gcloud projects add-iam-policy-binding SERVICE_PROJECT_B_ID \ --member="user:LOAD_BALANCER_ADMIN" \ --role="roles/compute.loadBalancerServiceUser" \ --condition='expression=resource.name=="projects/SERVICE_PROJECT_B_ID/regions/us-west1/backend-services/BACKEND_SERVICE_NAME",title=Shared VPC condition'
ou
gcloud compute backend-services add-iam-policy-binding BACKEND_SERVICE_NAME \ --member="user:LOAD_BALANCER_ADMIN" \ --role="roles/compute.loadBalancerServiceUser" \ --project=SERVICE_PROJECT_B_ID \ --region=us-west1
Pour utiliser ces commandes, remplacez LOAD_BALANCER_ADMIN
par le compte principal de l'utilisateur, par exemple test-user@gmail.com
.
Vous pouvez également configurer des autorisations IAM afin qu'elles ne s'appliquent qu'à un sous-ensemble de services de backend régionaux, en utilisant des conditions et en spécifiant des attributs de condition.
Étapes suivantes
- Vous pouvez restreindre l'utilisation des fonctionnalités de VPC partagé dans votre projet, telles que la référence de services multiprojets, à l'aide de contraintes de règle d'administration. Pour plus d'informations, consultez la section Contraintes de règles d'administration pour Cloud Load Balancing.
- Pour gérer la ressource de sous-réseau proxy réservé requise par des équilibreurs de charge d'application internes, consultez la page Sous-réseau proxy réservé aux équilibreurs de charge d'application internes.
- Pour savoir comment résoudre les problèmes liés aux équilibreurs de charge d'application internes, consultez la page Résoudre les problèmes liés aux équilibreurs de charge d'application internes.
- Nettoyez la configuration de l'équilibreur de charge.