Présentation des groupes de points de terminaison du réseau zonaux

Vous pouvez utiliser des groupes de points de terminaison du réseau (NEG, Network Endpoint Group) zonaux en tant que backend pour un service de backend. Cette configuration sert principalement à déployer des conteneurs sur vos VM afin de pouvoir exécuter des services dans ces conteneurs. Vous pouvez également répartir le trafic de manière précise vers les applications exécutées sur les VM.

Ce document traite de l'utilisation des groupes de points de terminaison du réseau zonaux avec les types d'équilibreurs de charge suivants :

Vous ne pouvez pas utiliser des NEG zonaux en tant que backend avec les types d'équilibreurs de charge suivants :

Pour en savoir plus sur les NEG Internet, consultez la page Présentation des groupes de points de terminaison du réseau Internet.

Pour en savoir plus sur les NEG sans serveur, consultez la page Présentation des groupes de points de terminaison du réseau sans serveur.

Présentation

Les groupes de points de terminaison du réseau (NEG) zonaux sont des ressources zonales qui représentent les collections de combinaisons d'adresses IP et de ports pour les ressources Google Cloud faisant partie d'un même sous-réseau. Chaque combinaison d'adresse IP et de port est appelée point de terminaison du réseau.

Les groupes de points de terminaison du réseau zonaux peuvent être utilisés en tant que backends dans les services de backend pour l'équilibrage de charge HTTP(S) ou HTTP(S) interne, ainsi qu'avec les équilibreurs de charge proxy TCP et SSL. Vous ne pouvez pas utiliser de NEG zonaux en tant que backend avec des équilibreurs de charge TCP/UDP internes. Les backends NEG zonaux vous permettent de spécifier les adresses IP et les ports. Par conséquent, vous pouvez répartir le trafic de manière précise entre les applications ou les conteneurs exécutés au sein des instances de VM.

Relations entre points de terminaison

Lorsque vous créez un groupe de points de terminaison du réseau, vous sélectionnez une zone, un réseau et un sous-réseau. Chaque adresse IP de point de terminaison doit se trouver dans le même sous-réseau que le NEG zonal.

Si le réseau que vous sélectionnez est un réseau en mode automatique, vous pouvez omettre de spécifier le sous-réseau. Cependant, un sous-réseau est toujours associé au NEG zonal. Si vous spécifiez un réseau automatique sans spécifier de sous-réseau lors de la création d'un NEG zonal, le sous-réseau utilisé est le sous-réseau créé automatiquement dans la zone sélectionnée pour le NEG zonal.

Les groupes de points de terminaison du réseau ne sont compatibles qu'avec le type GCE_VM_IP_PORT. Cela signifie que les points de terminaison individuels doivent avoir des adresses IP associées à des VM Google Cloud. Lorsque vous ajoutez des points de terminaison à un NEG zonal :

  • Vous devez spécifier le nom d'une instance de VM. L'instance de VM doit se trouver dans la même zone que le NEG zonal et l'interface réseau du réseau VPC doit se trouver dans un sous-réseau de la même région que la zone.

  • Vous pouvez avoir jusqu'à 10 000 points de terminaison dans un même NEG. L'ensemble de ces points de terminaison peuvent se trouver sur la même VM. Chaque point de terminaison est créé en référençant la VM lors de l'ajout d'un point de terminaison à un NEG zonal existant. Les points de terminaison créés dans différents NEG zonaux peuvent pointer vers la même VM.

    • Vous pouvez spécifier une adresse IP ou une combinaison d'adresse IP et de port, en plus de spécifier l'instance de VM. Toute adresse IP spécifiée doit être l'adresse IP interne principale de la VM ou une adresse IP d'alias de la VM située dans le même sous-réseau que le NEG zonal.

    • Si vous ne spécifiez pas d'adresse IP lorsque vous ajoutez un point de terminaison, c'est l'adresse IP interne principale de la VM qui est utilisée dans le réseau VPC.

    • Si vous ne spécifiez pas de port lors de l'ajout d'un point de terminaison, vous devez avoir défini un port par défaut pour le NEG zonal. Les points de terminaison utilisent le port par défaut, sauf s'ils spécifient un port qui leur est propre. Cela signifie que vous devez spécifier un port par défaut lorsque vous créez un groupe de points de terminaison du réseau zonal, ou que vous devez spécifier un port pour chaque point de terminaison que vous ajoutez.

    • Chaque point de terminaison d'un NEG zonal doit être une combinaison unique d'adresse IP et de port. Si aucun port n'est spécifié pour une adresse IP donnée, la combinaison est créée à partir de l'adresse IP et du port par défaut.

Points de terminaison, conteneurs et services

Pour créer un point de terminaison du réseau unique pour un conteneur ou une application s'exécutant sur une VM, vous devez utiliser l'adresse IP principale de la VM ou une adresse IP secondaire attribuée à la VM à l'aide de la fonctionnalité d'adresse IP d'alias. Vous devez associer les logiciels exécutés dans le conteneur ou l'application exécutée sur la VM à l'adresse IP utilisée par le point de terminaison du réseau.

Les NEG sont particulièrement utiles dans le cadre de GKE. Pour plus d'informations sur l'utilisation des NEG zonaux avec GKE, consultez la page Utiliser l'équilibrage de charge natif en conteneurs.

Les NEG sont également utiles car ils vous permettent de créer des regroupements logiques d'adresses IP et de ports représentant des services logiciels au lieu de VM entières. Les adresses IP des microservices (exécutés sur les VM Google Cloud) gérées par d'autres outils d'orchestration tels qu'Apache Mesos ou Cloud Foundry peuvent constituer des points de terminaison.

Équilibrage de charge

Services de backend

Les NEG zonaux peuvent être utilisés comme backends pour les services de backend d'un équilibreur de charge. Lorsque vous utilisez un NEG zonal en tant que backend pour un service de backend, tous les autres backends de ce service doivent également être des NEG zonaux. Vous ne pouvez pas utiliser à la fois des groupes d'instances et des groupes de points de terminaison du réseau zonaux sur le même service de backend.

Vous pouvez ajouter le même point de terminaison du réseau (combinaison d'adresse IP et de port) à plusieurs NEG zonaux. Vous pouvez utiliser le même NEG zonal en tant que backend pour plusieurs services de backend.

Les services de backend employant des NEG zonaux comme backends ne peuvent utiliser que des modes d'équilibrage RATE ou CONNECTION. Vous ne pouvez pas utiliser le mode d'équilibrage UTILIZATION pour les services de backend utilisant des NEG zonaux en tant que backends.

Équilibrage de charge HTTP(S), HTTP(S) interne, proxy TCP et proxy SSL

Vous pouvez utiliser des groupes de points de terminaison du réseau (NEG, Network Endpoint Group) zonaux dans des équilibreurs de charge à l'aide de niveaux de service réseau Standard ou Premium.

Les illustrations suivantes présentent les composants de configuration des équilibreurs de charge HTTP(S), proxy TCP/SSL et HTTP(S) internes où les NEG zonaux sont les backends :

  • Dans le Niveau Premium, les équilibreurs de charge HTTP(S) et proxy TCP/SSL possèdent chacun leur propre règle de transfert externe globale pour rediriger le trafic vers l'objet de proxy cible adéquat.

  • Dans le Niveau Standard, les équilibreurs de charge HTTP(S) et proxy TCP/SSL possèdent chacun leur propre règle de transfert externe régionale pour rediriger le trafic vers l'objet de proxy cible adéquat.

  • Chaque équilibreur de charge HTTP(S) interne possède sa propre règle de transfert gérée interne régionale pour rediriger le trafic vers l'objet de proxy cible adéquat.

  • Pour les proxys HTTP(S) cibles, le service de backend à utiliser est déterminé en analysant le nom d'hôte et le chemin de la requête par rapport au mappage d'URL. Les équilibreurs de charge HTTP(S) externes et internes peuvent disposer de plusieurs services de backend référencés dans le mappage d'URL.

  • Pour les serveurs proxy TCP ou proxy SSL cibles, vous ne pouvez définir qu'un seul service de backend.

  • Le service de backend dirige le trafic vers les NEG zonaux de son backend. Pour chaque requête, l'équilibreur de charge sélectionne un point de terminaison du réseau à partir de l'un des NEG zonaux et y envoie le trafic.

Groupes de points de terminaison du réseau zonaux dans le cadre de l'équilibrage de charge (cliquez sur l'image pour agrandir)
Groupes de points de terminaison du réseau zonaux dans le cadre de l'équilibrage de charge (cliquez sur l'image pour agrandir)

Équilibrer la charge avec des conteneurs

L'exemple suivant montre comment distribuer le trafic entre des microservices exécutés dans des conteneurs sur vos VM. Les VM sont configurées pour utiliser des plages d'adresses IP d'alias situées dans leurs sous-réseaux, qui sont également utilisées par les conteneurs. Cette configuration utilise l'équilibrage de charge HTTP(S), HTTP(S) interne, proxy TCP ou proxy SSL.

Groupes de points de terminaison du réseau zonaux de l'équilibrage de charge avec des conteneurs (cliquez sur l'image pour l'agrandir)
Groupes de points de terminaison du réseau zonaux de l'équilibrage de charge avec des conteneurs (cliquez sur l'image pour l'agrandir)

Cet exemple peut être configuré comme suit :

  1. Configurez des conteneurs ou des services sur les VM. Si chaque VM doit exécuter plusieurs conteneurs, ou que ceux-ci nécessitent des adresses IP propres, configurez des adresses IP d'alias pour les VM. Si vous configurez des services, vous devez exécuter deux services ou plus sur la même VM de sorte qu'a minima, les numéros de ports soient différents.
  2. Créez des groupes de points de terminaison du réseau zonaux. Si vous utilisez Kubernetes ou Google Kubernetes Engine, cette étape n'est pas nécessaire, car le contrôleur d'entrée crée les NEG zonaux.
  3. Ajoutez des points de terminaison du réseau aux groupes de points de terminaison du réseau zonaux.
  4. Créez une vérification d'état.
  5. Créez un service de backend.
  6. Pour l'équilibrage de charge HTTP(S), créez un mappage d'URL et connectez-y le service de backend.
  7. Créez le type de proxy cible adéquat, par exemple un proxy cible HTTP, HTTPS, SSL ou TCP. Associez le proxy cible au mappage d'URL (pour l'équilibrage de charge HTTP(S)) ou au service de backend (pour l'équilibrage de charge proxy TCP et proxy SSL).
  8. Créez une règle de transfert et associez-la au proxy cible.

Pour découvrir un exemple de configuration à l'aide de l'outil de ligne de commande gcloud, consultez la section Exemple de groupe de points de terminaison du réseau d'équilibrage de charge.

Restrictions

  • Vous ne pouvez pas utiliser de NEG zonaux avec les anciens réseaux.
  • L'adresse IP d'un point de terminaison du réseau doit être une adresse IP principale ou d'alias qui appartient à l'instance de VM spécifiée.

Limites

  • Les NEG zonaux peuvent être utilisés en tant que backends uniquement pour l'équilibrage de charge. Les types d'équilibreurs de charge compatibles avec les NEG zonaux sont les suivants : HTTP(S) externe, HTTP(S) interne, proxy TCP et proxy SSL.
  • Seul le mode d'équilibrage FRÉQUENCE est compatible avec les NEG zonaux pour l'équilibrage de charge HTTP, tandis que le mode CONNEXION est compatible avec l'équilibrage de charge TCP/SSL. L'équilibrage de charge basé sur l'utilisation n'est pas accepté.
  • Un service de backend utilisant des NEG comme backends ne peut pas utiliser également des groupes d'instances comme backends.
  • Seules les adresses IP internes (RFC 1918) peuvent actuellement être ajoutées à un NEG zonal.
  • Pour en savoir plus sur les quotas NEG, tels que les NEG par projet, les NEG par service de backend et les points de terminaison par NEG, reportez-vous à la page quotas d'équilibrage de charge.

Dépannage

Le trafic n'atteint pas les points de terminaison

Une fois le service configuré, les nouveaux points de terminaison sont généralement accessibles après leur association au NEG zonal, à condition qu'ils répondent aux vérifications d'état.

Si le trafic ne peut pas atteindre les points de terminaison, ce qui génère alors une erreur de code 502 pour HTTP(S) ou occasionne des rejets de connexions pour les équilibreurs de charge TCP/SSL, vérifiez les points suivants :

  • Vérifiez que les règles de pare-feu autorisent le trafic TCP entrant vers vos points de terminaison à partir des plages d'adresses IP 130.211.0.0/22 and 35.191.0.0/16.
  • Vérifiez que vos points de terminaison sont opérationnels à l'aide de la commande gcloud, comme illustré ci-dessous, ou appelez l'API getHealth sur la ressource du service de backend, ou l'API listEndpoints sur le NEG zonal en veillant à ce que le paramètre showHealth soit défini sur SHOW. La commande gcloud suivante affiche les informations d'état par point de terminaison du réseau :
gcloud compute network-endpoint-groups list-network-endpoints NAME \
    --zone=ZONE

Étapes suivantes