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

Un groupe de points de terminaison du réseau (NEG) est un objet de configuration qui spécifie un groupe de points de terminaison ou de services de backend. Les NEG zonaux sont des ressources zonales qui représentent des collections d'adresses IP ou de combinaisons adresses IP/port pour les ressources Google Cloud faisant partie d'un même sous-réseau.

Les NEG sont 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.

Pour en savoir plus sur les autres types de NEG, consultez les pages suivantes :

Deux types de NEG zonaux sont disponibles, en fonction du type de points de terminaison du réseau qui constituent le NEG. Chacun d'eux est compatible avec différents cas d'utilisation et types d'équilibreurs de charge.

Vous ne pouvez pas utiliser des NEG zonaux en tant que backend avec l'équilibrage de charge réseau.

NEG GCE_VM_IP

Ces NEG zonaux contiennent un ou plusieurs points de terminaison du réseau internes qui renvoient l'adresse IP principale d'une VM Compute Engine. Vous ne pouvez pas spécifier de port avec ce type de NEG zonal.

Ces points de terminaison ne peuvent être utilisés en tant que backends que dans les services de backend des équilibreurs de charge TCP/UDP internes.

Les NEG GCE_VM_IP ne vous permettent d'associer que des points de terminaison appartenant à l'adresse IP interne principale d'une VM au sein du réseau VPC du NEG. Vous pouvez ajouter les adresses IP internes principales de n'importe quelle carte d'interface réseau d'une VM à un NEG, tant que celui-ci utilise le même réseau VPC que la carte d'interface réseau.

NEG GCE_VM_IP_PORT

Ces NEG zonaux contiennent un ou plusieurs points de terminaison du réseau internes qui renvoient l'adresse IP interne principale d'une VM ou une adresse IP figurant dans l'une de ses plages d'adresses IP d'alias. Par exemple, GKE utilise ce type de NEG dont les points de terminaison correspondent à une adresse IP de la plage d'adresses IP d'alias du nœud, ainsi qu'un port (adresse IP du pod et port du conteneur). Chaque point de terminaison du réseau est spécifié à l'aide d'une combinaison d'adresse IP et de port.

Ces NEG peuvent être utilisés en tant que backends dans les services de backend des équilibreurs de charge HTTP(S) externe, HTTP(S) interne, proxy TCP et proxy SSL. Vous ne pouvez pas utiliser les points de terminaison GCE_VM_IP_PORT avec des équilibreurs de charge TCP/UDP internes ou des équilibreurs de charge réseau. Les backends de 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.

Pour créer un point de terminaison du réseau GCE_VM_IP_PORT 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 GCE_VM_IP_PORT sont particulièrement utiles dans GKE. Pour en savoir plus sur l'utilisation des NEG zonaux avec GKE, consultez la page Utiliser l'équilibrage de charge natif en conteneurs.

Relations entre points de terminaison

Lorsque vous créez un NEG, 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.

Vous spécifiez le type du NEG zonal lorsque vous en créez un (GCE_VM_IP ou GCE_VM_IP_PORT). Cela détermine les types de points de terminaison acceptés par le NEG.

Pour les NEG zonaux GCE_VM_IP et GCE_VM_IP_PORT :

  • Vous devez spécifier le nom de chaque point de terminaison de la VM.

  • Toutes les VM doivent se trouver dans la même zone que le NEG.

  • Chaque point de terminaison du NEG doit correspondre à une combinaison unique d'adresse IP et de port. Plusieurs NEG peuvent faire référence à une combinaison unique d'adresse IP et de port d'un point de terminaison.

  • Chaque VM du point de terminaison doit posséder une interface réseau (carte d'interface réseau) sur le même réseau VPC que le NEG. Les adresses IP des points de terminaison doivent être associées au même sous-réseau que celui spécifié dans le NEG.

  • Chaque NEG peut gérer plusieurs points de terminaison dans la limite du nombre maximal autorisé par NEG. Les points de terminaison peuvent être répartis entre plusieurs VM uniques ou tous se situer sur une même VM.

Lorsque vous ajoutez un point de terminaison à un NEG GCE_VM_IP_PORT, vous pouvez choisir de spécifier une adresse IP et un port, seulement une adresse IP, ou aucun des deux :

  • Si vous spécifiez une adresse IP et un port, l'adresse IP peut être l'adresse IP interne principale de la carte d'interface réseau de la VM ou une adresse IP d'alias de la carte d'interface réseau. Vous pouvez indiquer le port de votre choix.

  • Si vous ne spécifiez qu'une adresse IP, celle-ci peut être l'adresse IP interne principale de la carte d'interface réseau de la VM ou une adresse IP d'alias de la carte d'interface réseau. Le port utilisé est le port par défaut du NEG.

  • Si vous ne spécifiez aucun de ces deux éléments, Google Cloud sélectionne l'adresse IP interne principale de la carte d'interface réseau et utilise le port par défaut du NEG.

Équilibrage de charge avec des NEG zonaux

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 du même type (GCE_VM_IP ou GCE_VM_IP_PORT). Vous ne pouvez pas utiliser à la fois des groupes d'instances et des NEG zonaux comme backends dans le même service de backend.

Vous pouvez ajouter le même point de terminaison du réseau à plusieurs NEG zonaux. Vous pouvez utiliser le même NEG zonal en tant que backend pour plusieurs services de backend.

Les NEG zonaux GCE_VM_IP_PORT peuvent utiliser le mode d'équilibrage RATE ou le mode d'équilibrage CONNECTION en fonction du protocole du service de backend. Vous devez définir la capacité cible des équilibreurs de charge acceptés.

Les NEG zonaux GCE_VM_IP doivent utiliser le mode d'équilibrage CONNECTION et ne peuvent pas définir de capacité cible, car les équilibreurs de charge TCP/UDP internes n'acceptent pas ce paramètre.

Vous ne pouvez pas utiliser le mode d'équilibrage UTILIZATION pour les backends de NEG zonaux.

Équilibrage de charge TCP/UDP interne

Les NEG zonaux dotés de points de terminaison GCE_VM_IP ne peuvent être utilisés comme backends que pour les services de backend des équilibreurs de charge TCP/UDP internes.

Voici les principaux cas d'utilisation des NEG avec des points de terminaison GCE_VM_IP :

Gestion simplifiée des VM pour les équilibreurs de charge TCP/UDP internes

Comme pour les groupes d'instances, vous pouvez utiliser le même NEG comme backend pour plusieurs équilibreurs de charge TCP/UDP internes. Contrairement aux groupes d'instances, le point de terminaison d'une VM peut appartenir à plusieurs NEG, chacun d'eux pouvant être utilisé comme backend pour un ou plusieurs équilibreurs de charge TCP/UDP internes.

Équilibreurs de charge TCP/UDP internes avec des NEG zonaux GCE_VM_IP se chevauchant
Équilibreurs de charge TCP/UDP internes avec des NEG zonaux se chevauchant

Sous-paramètre GKE

GKE utilise des NEG zonaux GCP_VM_IP et un sous-paramètre pour améliorer l'évolutivité des équilibreurs de charge TCP/UDP internes de la manière suivante :

Sans sous-paramètre, GKE crée un groupe d'instances non géré par zone, constitué des nœuds du cluster issus de tous les pools de nœuds de cette zone. Ces groupes d'instances zonaux sont utilisés comme backends pour un ou plusieurs services LoadBalancer (et pour les objets Ingress externes n'utilisant pas de NEG).

Avec un sous-paramètre, GKE crée des NEG zonaux GCE_VM_IP pour chaque service LoadBalancer interne. Le même point de terminaison peut appartenir à plusieurs NEG zonaux. Contrairement aux groupes d'instances, Google Cloud peut équilibrer la charge sur plusieurs NEG zonaux contenant le même point de terminaison.

Le sous-paramètre répartit plus efficacement le trafic vers les services LoadBalancer internes des clusters comptant plus de 250 nœuds. Par exemple, un cluster GKE de 300 nœuds peut disposer d'un service LoadBalancer interne avec 25 nœuds au sein d'un NEG, car ce service contient 25 pods actifs. Les 300 nœuds ne doivent pas tous être ajoutés au backend d'un groupe d'instances pour ce service.

Notez que les quotas pour les NEG, les règles de transfert, les services de backend et d'autres ressources de mise en réseau Google Cloud continuent de s'appliquer.

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

Les NEG zonaux dotés de points de terminaison GCE_VM_IP_PORT peuvent être utilisés comme backends pour les services de backend dans les types d'équilibreurs de charge suivants : HTTP(S) externe, HTTP(S) interne, proxy TCP et proxy SSL.

Le principal cas d'utilisation des NEG zonaux GCE_VM_IP_PORT est l'équilibrage de charge natif en conteneurs, qui permet de répartir directement le trafic vers les conteneurs s'exécutant sur des VM (par exemple, vers les adresses IP des pods dans les clusters GKE).

L'exemple suivant montre comment les équilibreurs de charge répartissent le trafic entre les 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.

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)

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)

Cas d'utilisation : équilibrage de charge natif en conteneurs

L'équilibrage de charge natif en conteneurs permet aux équilibreurs de charge de cibler directement les pods et de prendre des décisions sur la distribution de la charge au niveau du pod plutôt qu'au niveau de la VM. Il existe deux manières de configurer l'équilibrage de charge natif en conteneurs : utiliser les NEG gérés par GKE Ingress ou employer des NEG autonomes.

Kubernetes Ingress avec des NEG (méthode recommandée)

Lorsque des groupes de points de terminaison du réseau sont utilisés avec Ingress, le contrôleur d'entrée facilite la création de tous les aspects de l'équilibreur de charge L7. Cela inclut la création de l'adresse IP virtuelle, des règles de transfert, des vérifications d'état, des règles de pare-feu, etc. Pour savoir comment configurer cela, consultez la page Équilibrage de charge natif en conteneurs via Ingress.

L'objet Ingress constitue la méthode recommandée pour utiliser les Negs pour l'équilibrage de charge natif en conteneurs, car il comporte de nombreuses fonctionnalités qui simplifient la gestion des NEG. Les NEG autonomes peuvent être utilisés si les NEG gérés par Ingress ne répondent pas à votre cas d'utilisation.

Pour obtenir des instructions sur la configuration d'un équilibreur de charge via Ingress, consultez la page Équilibrage de charge natif en conteneurs via Ingress.

NEG autonomes

Lorsque des NEG zonaux sont déployés avec des équilibreurs de charge provisionnés via une méthode ne faisant pas appel à GKE Ingress, ils sont considérés comme des NEG autonomes. Les NEG zonaux autonomes sont déployés et gérés via le contrôleur NEG, tandis que les règles de transfert, les vérifications d'état et d'autres composants d'équilibrage de charge sont déployés manuellement.

Pour voir des exemples d'utilisation des NEG zonaux autonomes avec GKE, consultez les pages suivantes :

Limites

  • Vous ne pouvez pas utiliser de NEG zonaux avec les anciens réseaux.
  • Un service de backend utilisant des NEG comme backends ne peut pas utiliser également des groupes d'instances comme backends.

Limites des NEG zonaux GCE_VM_IP :

  • Les NEG zonaux avec des points de terminaison GCE_VM_IP ne sont compatibles qu'avec les équilibreurs de charge TCP/UDP internes.
  • La propriété default-port n'est pas disponible dans les NEG zonaux GCE_VM_IP.
  • Vous ne pouvez pas créer ou gérer des NEG GCE_VM_IP à l'aide de Cloud Console. Utilisez gcloud ou l'API REST.

Quotas

  • 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