Configurer un équilibreur de charge réseau proxy interne régional avec une connectivité hybride

L'équilibreur de charge réseau proxy interne régional est un équilibreur de charge régional de couche 4 basé sur un proxy qui vous permet d'exécuter et d'effectuer le scaling de votre trafic de service TCP derrière une adresse IP interne accessible uniquement aux clients situés dans le même réseau cloud privé virtuel (VPC) ou aux clients connectés à votre réseau VPC. Si vous souhaitez que le service soit disponible pour les clients d'autres réseaux VPC, vous pouvez utiliser Private Service Connect pour publier le service.

Cette page explique comment configurer un équilibreur de charge réseau proxy interne afin d'équilibrer la charge du trafic vers les backends sur site ou dans d'autres environnements cloud connectés via une connectivité hybride. La configuration de la connectivité hybride pour connecter vos réseaux à Google Cloud n'est pas traitée dans cette page.

Présentation

Dans cet exemple, nous utiliserons l'équilibreur de charge pour répartir le trafic TCP entre les VM de backend situées sur site ou dans d'autres environnements cloud.

Dans cet exemple, vous configurez les éléments suivants :

Exemple de configuration d'équilibreur de charge réseau proxy interne avec des backends de NEG hybrides.
Exemple de configuration d'un équilibreur de charge réseau proxy régional interne avec des backends NEG hybrides (cliquez pour agrandir).

L'équilibreur de charge réseau proxy interne régional est un équilibreur de charge régional. Tous les composants de l'équilibreur de charge (groupes d'instances backend, service de backend, proxy cible et règle de transfert) doivent se trouver dans la même région.

Autorisations

Pour configurer l'équilibrage de charge hybride, vous devez disposer des autorisations suivantes :

  • Sur Google Cloud

  • 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.

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.

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 votre 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. Vous pouvez sélectionner n'importe quel sous-réseau de ce réseau pour réserver l'adresse IP de l'équilibreur de charge et créer l'équilibreur de charge. Ceci est désigné par LB_SUBNET dans cette procédure.

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é

Un sous-réseau proxy réservé fournit un ensemble d'adresses IP utilisées par Google pour exécuter des proxys Envoy en votre nom. Les proxys interrompent les connexions du client et créent de nouvelles connexions vers les backends.

Le sous-réseau proxy réservé est destiné à tous les équilibreurs de charge régionaux basés sur Envoy dans la région REGION du réseau VPC NETWORK.

Il ne peut y avoir qu'un seul sous-réseau proxy réservé actif par région et par réseau VPC. Vous pouvez ignorer cette étape s'il existe déjà un sous-réseau proxy réservé dans cette région.

Console

Si vous utilisez la console Google Cloud, vous pouvez créer le sous-réseau proxy réservé ultérieurement sur la page Équilibrage de charge.

Si vous souhaitez créer le sous-réseau proxy réservé maintenant, procédez comme suit :

  1. Dans Google Cloud Console, accédez à la page Réseaux VPC.

    Accéder aux réseaux VPC

  2. Accédez au réseau utilisé pour configurer la connectivité hybride entre les environnements.

  3. Cliquez sur Ajouter un sous-réseau.

  4. Saisissez un Nom : PROXY_ONLY_SUBNET_NAME.

  5. Sélectionnez une Région : REGION.

  6. Définissez le champ Objectif sur Proxy géré régional.

  7. Saisissez une plage d'adresses IP : PROXY_ONLY_SUBNET_RANGE.

  8. 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

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 IPv4 partagée, ce qui vous permet d'utiliser la même adresse IPv4 avec plusieurs règles de transfert. Toutefois, si vous souhaitez publier un équilibreur de charge à l'aide de Private Service Connect, n'utilisez pas d'adresse IPv4 partagée pour la règle de transfert.

Pour réserver une adresse IPv4 interne statique pour votre équilibreur de charge, consultez la page Réserver une nouvelle adresse interne statique IPv4 ou IPv6.

Configurer le NEG de connectivité hybride

Lorsque vous créez le NEG, utilisez une 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, la ZONE utilisée pour créer le NEG doit se trouver dans la même région dans laquelle le tunnel Cloud VPN ou le rattachement de VLAN Cloud Interconnect ont été configurés pour la connectivité hybride.

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 NEG de connectivité hybride :

  1. Dans la console Google Cloud, accédez à la page Groupes de points de terminaison du réseau.

    Accéder à la page Groupes de points de terminaison du réseau

  2. Cliquez sur Créer un groupe de points de terminaison du réseau.

  3. Saisissez un nom pour le NEG hybride. Appelé HYBRID_NEG_NAME dans cette procédure.

  4. 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).

  5. Sélectionnez le réseau : NETWORK.

  6. Sélectionnez le sous-réseau : LB_SUBNET.

  7. Sélectionnez la zone : HYBRID_NEG_ZONE.

  8. Saisissez le port par défaut.

  9. Cliquez sur Créer.

Ajoutez des points de terminaison au NEG de connectivité hybride :

  1. Dans la console Google Cloud, accédez à la page Groupes de points de terminaison du réseau.

    Accéder à la page Groupes de points de terminaison du réseau

  2. Cliquez sur le nom du groupe de points de terminaison du réseau créé à l'étape précédente (HYBRID_NEG_NAME). La page Détails du groupe de points de terminaison du réseau s'affiche.

  3. 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.

  4. Saisissez l'adresse IP du nouveau point de terminaison du réseau.

  5. Sélectionnez le type de port.

    1. 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.
    2. Si vous sélectionnez Personnalisé, vous pouvez saisir un numéro de port différent à utiliser par le point de terminaison.
  6. 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.

  7. Après avoir ajouté tous les points de terminaison autres que Google Cloud, cliquez sur Créer.

gcloud

  1. Créez un NEG de connectivité hybride à l'aide de la commande gcloud compute network-endpoint-groups create.

    gcloud compute network-endpoint-groups create HYBRID_NEG_NAME \
       --network-endpoint-type=NON_GCP_PRIVATE_IP_PORT \
       --zone=HYBRID_NEG_ZONE \
       --network=NETWORK
    
  2. Ajoutez le point de terminaison IP:Port sur site au NEG hybride :

    gcloud compute network-endpoint-groups update HYBRID_NEG_NAME \
        --zone=HYBRID_NEG_ZONE \
        --add-endpoint="ip=ENDPOINT_IP_ADDRESS,port=ENDPOINT_PORT"
    

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

Démarrer la configuration

  1. Dans Google Cloud Console, accédez à la page Équilibrage de charge.

    Accéder à la page "Équilibrage de charge"

  2. Cliquez sur Créer un équilibreur de charge.
  3. Sous Type d'équilibreur de charge, sélectionnez Équilibreur de charge réseau (TCP/UDP/SSL), puis cliquez sur Suivant.
  4. Pour Proxy ou passthrough, sélectionnez Équilibreur de charge proxy, puis cliquez sur Suivant.
  5. Pour Public ou interne, sélectionnez Interne, puis cliquez sur Suivant.
  6. 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.
  7. Cliquez sur Configurer.

Configuration de base

  1. Dans le champ Name (Nom), saisissez le nom de l'équilibreur de charge.
  2. Sélectionnez la région : REGION.
  3. Sélectionnez le réseau : NETWORK.

Réserver un sous-réseau proxy réservé

Pour réserver un sous-réseau proxy réservé :

  1. Cliquez sur Réserver un sous-réseau.
  2. Saisissez lenom : PROXY_ONLY_SUBNET_NAME.
  3. Saisissez une plage d'adresses IP : PROXY_ONLY_SUBNET_RANGE.
  4. Cliquez sur Ajouter.

Configuration du backend

  1. Cliquez sur Configuration du backend.
  2. Pour le type de backend, sélectionnez Groupe de points de terminaison du réseau de connectivité hybride (zonal).
  3. Dans le champ Protocole, sélectionnez TCP.
  4. Sous Nouveau backend, sélectionnez le NEG hybride créé précédemment : HYBRID_NEG_NAME. Vous pouvez également cliquer sur Créer un groupe de points de terminaison du réseau pour créer le NEG hybride maintenant. Pour obtenir des conseils sur la configuration du NEG, consultez la page Configurer le NEG hybride.
  5. Conservez les valeurs par défaut restantes, puis cliquez sur OK.
  6. Configurez la vérification d'état :
    1. Sous Vérification d'état, sélectionnez Créer une vérification d'état.
    2. Dans le champ Name (Nom), saisissez le nom de la vérification d'état.
    3. Dans le champ Protocole, sélectionnez TCP.
    4. Dans la section Port, saisissez 80.
  7. Conservez les valeurs par défaut restantes, puis cliquez sur Enregistrer.
  8. Dans la console Google Cloud, vérifiez qu'une coche apparaît à côté de Configuration du backend. Si ce n'est pas le cas, vérifiez que vous avez bien suivi la procédure ci-dessous dans son intégralité.

Configuration de l'interface

  1. Cliquez sur Configuration de l'interface.
  2. Saisissez un nom pour la règle de transfert.
  3. Pour Sous-réseau, sélectionnez LB_SUBNET.
  4. Pour Adresse IP, sélectionnez LB_IP_ADDRESS.
  5. Pour Numéro de port, saisissez un numéro de port compris entre 1 et 65535. La règle de transfert transfère les paquets avec un port de destination correspondant.
  6. N'activez le protocole de proxy que si celui-ci fonctionne avec le service exécuté sur votre point de terminaison sur site ou sur un autre point de terminaison cloud. Par exemple, le protocole PROXY ne fonctionne pas avec le logiciel Apache HTTP Server. Pour en savoir plus, consultez la section Protocole de proxy.
  7. Cliquez sur OK.
  8. Dans Google Cloud Console, vérifiez qu'une coche apparaît à côté de Configuration du frontend. Dans le cas contraire, vérifiez que vous avez bien suivi la procédure ci-dessus dans son intégralité.

Vérifier et finaliser

  1. Cliquez sur Vérification et finalisation.
  2. Vérifiez vos paramètres.
  3. Cliquez sur Create (Créer).

gcloud

  1. Créez une vérification d'état régionale pour les backends.

    gcloud compute health-checks create tcp TCP_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é.

  2. Créez un service de backend.

    gcloud compute backend-services create BACKEND_SERVICE_NAME \
       --load-balancing-scheme=INTERNAL_MANAGED \
       --protocol=TCP \
       --region=REGION \
       --health-checks=TCP_HEALTH_CHECK_NAME \
       --health-checks-region=REGION
    
  3. Ajoutez le backend de NEG hybride au service de backend.

    gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
       --network-endpoint-group=HYBRID_NEG_NAME \
       --network-endpoint-group-zone=HYBRID_NEG_ZONE \
       --region=REGION \
       --balancing-mode=CONNECTION \
       --max-connections=MAX_CONNECTIONS
    

    Pour MAX_CONNECTIONS, saisissez le nombre maximal de connexions simultanées que le backend doit gérer.

  4. Créez le proxy TCP cible.

    gcloud compute target-tcp-proxies create TARGET_TCP_PROXY_NAME \
       --backend-service=BACKEND_SERVICE_NAME \
       --region=REGION
    
  5. Créez la règle de transfert.

    Créez la règle de transfert à l'aide de la commande gcloud compute forwarding-rules create.

    Remplacez FWD_RULE_PORT par un numéro de port unique compris entre 1 et 65 535. La règle de transfert transfère les paquets avec un port de destination correspondant.

    gcloud compute forwarding-rules create FORWARDING_RULE \
       --load-balancing-scheme=INTERNAL_MANAGED \
       --network=NETWORK \
       --subnet=LB_SUBNET \
       --address=LB_IP_ADDRESS \
       --ports=FWD_RULE_PORT \
       --region=REGION \
       --target-tcp-proxy=TARGET_TCP_PROXY_NAME \
       --target-tcp-proxy-region=REGION
    

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

Créez une VM cliente (client-vm) dans la même région que l'équilibreur de charge.

Console

  1. Dans la console Google Cloud, accédez à la page Instances de VM.

    Accéder à la page "Instances de VM"

  2. Cliquez sur Créer une instance.

  3. Pour Nom, définissez client-vm.

  4. Définissez le champ Zone sur CLIENT_VM_ZONE.

  5. Cliquez sur Options avancées.

  6. Cliquez sur Mise en réseau et configurez les champs suivants :

    1. Pour Tags réseau, saisissez allow-ssh.
    2. Pour Interfaces réseau, sélectionnez l'option suivante :
      • Réseau : NETWORK
      • Sous-réseau : LB_SUBNET
  7. Cliquez sur Créer.

gcloud

La VM cliente doit se trouver dans le même réseau VPC et dans la même région que l'équilibreur de charge. Elle ne doit pas nécessairement se trouver dans le même sous-réseau ou la même zone. Le client utilise le même sous-réseau que les VM de backend.

gcloud compute instances create client-vm \
    --zone=CLIENT_VM_ZONE \
    --image-family=debian-10 \
    --image-project=debian-cloud \
    --tags=allow-ssh \
    --subnet=LB_SUBNET

Autoriser le trafic SSH vers la VM de test

Dans cet exemple, vous devez créer la règle de pare-feu suivante :

  • 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 cible allow-ssh pour identifier la VM cliente de test à laquelle elle doit s'appliquer.

Console

  1. Dans la console Google Cloud, accédez à la page Règles d'administration. Accéder aux stratégies de pare-feu
  2. Cliquez de nouveau sur Créer une règle de pare-feu pour créer la règle autorisant les connexions SSH entrantes :
    1. Nom : fw-allow-ssh
    2. Réseau : NETWORK
    3. Priorité : 1000
    4. Sens du trafic : entrée
    5. Action en cas de correspondance : autoriser
    6. Cibles : tags cibles spécifiés
    7. Tags cibles : allow-ssh
    8. Filtre source : Plages IPv4
    9. Plages IPv4 sources : 0.0.0.0/0
    10. Protocoles et ports : sélectionnez Protocoles et ports spécifiés, puis saisissez tcp:22.
    11. Cliquez sur Créer.

gcloud

  1. Créez la règle de pare-feu fw-allow-ssh pour autoriser la connectivité SSH aux VM avec le tag réseau allow-ssh.

    gcloud compute firewall-rules create fw-allow-ssh \
        --network=NETWORK \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-ssh \
        --rules=tcp:22
    

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.

  1. Connectez-vous à l'instance cliente via SSH.

    gcloud compute ssh client-vm \
      --zone=CLIENT_VM_ZONE
    
  2. Vérifiez que l'équilibreur de charge diffuse les noms d'hôte de backend comme prévu.

    1. Utilisez la commande compute addresses describe pour afficher l'adresse IP de l'équilibreur de charge :

      gcloud compute addresses describe LB_IP_ADDRESS \
        --region=REGION
      

      Notez l'adresse IP.

    2. Envoyez du trafic à l'équilibreur de charge sur l'adresse IP et le port spécifiés lors de la création de la règle de transfert de l'équilibreur de charge. Le fait que les backends de NEG hybride répondent aux requêtes dépend du service qui s'exécute sur les points de terminaison autres que Google Cloud.

Facultatif : Publier le service à l'aide de Private Service Connect

Un équilibreur de charge réseau proxy interne régional avec connectivité hybride vous permet de rendre un service hébergé sur site ou dans d'autres environnements cloud disponibles pour les clients de votre réseau VPC.

Si vous souhaitez que le service hybride soit disponible dans d'autres réseaux VPC, vous pouvez utiliser Private Service Connect pour publier le service. En plaçant un rattachement de service devant votre équilibreur de charge réseau proxy interne régional, vous pouvez permettre aux clients d'autres réseaux VPC d'atteindre les services hybrides exécutés dans des environnements sur site ou dans le cloud.

Publier un service hybride à l'aide de Private Service Connect.
Publier un service hybride à l'aide de Private Service Connect (cliquez pour agrandir).

Étapes suivantes