Sous-réseaux proxy réservés aux équilibreurs de charge basés sur Envoy

Cette page explique comment utiliser les sous-réseaux proxy réservés utilisés par les équilibreurs de charge basés sur Envoy. Un sous-réseau proxy réservé fournit un pool d'adresses IP réservées exclusivement aux proxys Envoy utilisés par les équilibreurs de charge Google Cloud. Il ne peut pas être utilisé à d'autres fins.

Les proxys interrompent les connexions entrantes, puis évaluent la destination de chaque requête en fonction du mappage d'URL, de l'affinité de session du service de backend, du mode d'équilibrage de chaque groupe d'instances backend ou groupe de points de terminaison du réseau, ainsi que d'autres facteurs.

  1. Un client établit une connexion avec l'adresse IP et le port de la règle de transfert de l'équilibreur de charge.

  2. Chaque proxy écoute l'adresse IP et le port spécifiés par la règle de transfert de l'équilibreur de charge correspondant. L'un des proxys reçoit la connexion réseau du client et y met fin.

  3. Le proxy établit une connexion à la VM de backend ou au point de terminaison approprié dans un groupe de points de terminaison du réseau, tel que déterminé par les services de backend et le mappage d'URL de l'équilibreur de charge.

Une adresse IP interne est attribuée à chacun des proxys de l'équilibreur de charge. Les paquets envoyés à partir d'un proxy vers une VM ou un point de terminaison de backend possèdent une adresse IP source provenant du sous-réseau proxy réservé.

Le sous-réseau proxy réservé ne peut pas être utilisé à d'autres fins. L'adresse IP de la règle de transfert de l'équilibreur de charge ne provient pas du sous-réseau proxy réservé. Il en est de même pour les adresses IP des points de terminaison et des VM backend.

Équilibreurs de charge compatibles

Les équilibreurs de charge basés sur Envoy suivants nécessitent des sous-réseaux proxy réservés :

Place des sous-réseaux proxy réservés dans l'architecture de l'équilibreur de charge

Le schéma suivant présente les ressources Google Cloud requises pour un équilibreur de charge d'application interne régional.

Composants numérotés de l'équilibreur de charge d'application interne régionale.
Composants numérotés de l'équilibreur de charge d'application interne régional (cliquez pour agrandir).

Comme le montrent les schémas, le déploiement d'un équilibreur de charge basé sur Envoy nécessite au moins deux sous-réseaux :

  • Les VM de backend et les points de terminaison de backend de l'équilibreur de charge utilisent un seul sous-réseau, dont la plage d'adresses IP principale est 10.1.2.0/24 (dans cet exemple). Ce sous-réseau n'est pas le sous-réseau proxy réservé. Vous pouvez utiliser plusieurs sous-réseaux pour vos VM de backend et points de terminaison si les sous-réseaux se trouvent dans la même région que l'équilibreur de charge. Pour les équilibreurs de charge d'application internes, l'adresse IP de l'équilibreur de charge associée à la règle de transfert peut également se trouver dans ce sous-réseau (mais ce n'est pas obligatoire).
  • Le sous-réseau proxy réservé est 10.129.0.0/23 (dans cet exemple).

Recommandations sur la taille du sous-réseau proxy réservé

Un sous-réseau proxy réservé doit fournir au moins 64 adresses IP. Cela correspond à une longueur de préfixe inférieure ou égale à /26. Nous vous recommandons de commencer par un sous-réseau proxy réservé avec un préfixe /23 (512 adresses proxy réservées), puis de modifier la taille à mesure que vos besoins en termes de trafic évoluent.

Les proxys sont alloués au niveau du VPC, et non au niveau de l'équilibreur de charge. Vous devez créer un sous-réseau proxy réservé dans chaque région d'un réseau VPC où vous utilisez des équilibreurs de charge basés sur Envoy. Si vous déployez plusieurs équilibreurs de charge dans la même région et le même réseau VPC, ils partagent le même sous-réseau proxy réservé pour l'équilibrage de charge.

Les équilibreurs de charge basés sur Envoy évoluent automatiquement le nombre de proxys disponibles pour gérer votre trafic en fonction de vos besoins en termes de trafic. Les frais d'instances de proxy sont basés sur le nombre d'instances de proxy nécessaires pour répondre à vos besoins en termes de trafic. Chaque proxy supplémentaire entraîne des frais horaires supplémentaires selon les tarifs indiqués dans le tableau précédent.

Le nombre de proxys alloués à votre équilibreur de charge est calculé en fonction de la capacité mesurée nécessaire pour gérer votre trafic sur une période de 10 minutes. Durant cette période, nous observons la plus haute valeur enregistrée pour :

  • Le nombre de proxys nécessaires pour répondre aux besoins en bande passante de votre trafic. Chaque instance de proxy peut gérer jusqu'à 18 Mo par seconde. Nous surveillons la bande passante totale nécessaire et divisons ce total par la bande passante que peut gérer une instance de proxy.
  • Le nombre de proxys nécessaires pour gérer les connexions et les requêtes. Nous comptons le total de chacune des ressources suivantes et divisons cette valeur par ce que peut gérer une instance de proxy :
    • 600 nouvelles connexions HTTP ou 150 nouvelles connexions HTTPS par seconde
    • 3 000 connexions actives
    • 1 400 requêtes par seconde*

* Une instance de proxy peut gérer 1 400 requêtes par seconde si Cloud Logging est désactivé. Si vous activez Logging, votre instance de proxy ne peut pas gérer autant de requêtes par seconde. Par exemple, la journalisation de l'intégralité des requêtes réduit la capacité de gestion des requêtes du proxy à 700 requêtes par seconde. Vous pouvez configurer Logging de manière à échantillonner un pourcentage inférieur du trafic. Cela vous permet de répondre à vos besoins d'observabilité tout en contrôlant vos coûts.

Pour obtenir un exemple détaillé de facturation des sous-réseaux proxy réservés, consultez la page Frais des instances de proxy dans la documentation sur les tarifs de Cloud Load Balancing.

Créer un sous-réseau proxy réservé

Vous devez créer des sous-réseaux proxy réservés pour les équilibreurs de charge basés sur Envoy, que votre réseau soit en mode automatique ou personnalisé. La création d'un sous-réseau proxy réservé suit essentiellement la même procédure que celle permettant de créer n'importe quel sous-réseau, à l'exception de certaines options en plus.

Pour un sous-réseau proxy réservé, --purpose doit être défini sur REGIONAL_MANAGED_PROXY ou GLOBAL_MANAGED_PROXY, selon votre équilibreur de charge.

Vous ne pouvez pas réutiliser un sous-réseau existant en tant que sous-réseau proxy réservé. Vous devez créer un sous-réseau dans chaque région disposant d'un équilibreur de charge basé sur Envoy. Cela est en partie dû au fait que la commande subnets update ne permet pas de modifier le champ --purpose d'un sous-réseau.

Vous devez créer un sous-réseau proxy réservé destiné aux proxys des équilibreurs de charge avant de créer des règles de transfert pour vos équilibreurs de charge régionaux. Si vous tentez de configurer un équilibreur de charge régional sans avoir préalablement créé de sous-réseau proxy réservé pour la région, le processus de création de l'équilibreur de charge échoue.

Console

  1. Dans Google Cloud Console, accédez à la page Réseaux VPC.
    Accéder à la page Réseaux VPC
  2. Cliquez sur le nom du réseau VPC partagé auquel vous souhaitez ajouter un sous-réseau proxy réservé.
  3. Cliquez sur Ajouter un sous-réseau.
  4. Saisissez un nom.
  5. Sélectionnez une région.
  6. Définissez le champ Objectif sur l'un des éléments suivants :
    • Pour les équilibreurs de charge régionaux : proxy géré régional
    • Pour les équilibreurs de charge interrégionaux : proxy géré interrégional
    • Saisissez une plage d'adresses IP.
    • Cliquez sur Ajouter.

gcloud

La commande gcloud compute networks subnets create crée un sous-réseau proxy réservé.

gcloud compute networks subnets create SUBNET_NAME \
    --purpose=SUBNET_PURPOSE \
    --role=ACTIVE \
    --region=REGION \
    --network=VPC_NETWORK_NAME \
    --range=CIDR_RANGE

Les champs sont définis comme suit :

  • SUBNET_NAME est le nom du sous-réseau proxy réservé.
  • SUBNET_PURPOSE est l'objectif du sous-réseau. Définissez cette valeur surREGIONAL_MANAGED_PROXYou GLOBAL_MANAGED_PROXY selon votre équilibreur de charge.
  • REGION est la région du sous-réseau proxy réservé.
  • VPC_NETWORK_NAME est le nom du réseau VPC qui contient le sous-réseau.
  • CIDR_RANGE correspond à la plage d'adresses IP principale du sous-réseau. Vous devez utiliser un masque de sous-réseau ne dépassant pas 26 afin qu'au moins 64 adresses IP soient disponibles pour les proxys de la région. La longueur de masque de sous-réseau recommandée est /23.

Pour obtenir un exemple de configuration complet, consultez la section Configurer le sous-réseau proxy réservé.

Vous devez configurer une règle de pare-feu pour que vos backends acceptent les connexions provenant du sous-réseau proxy réservé. Pour obtenir un exemple complet de configuration incluant la configuration des règles de pare-feu, consultez les pages suivantes :

Disponibilité du proxy

Parfois, les régions Google Cloud ne disposent pas d'une capacité de proxy suffisante pour un nouvel équilibreur de charge. 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 :

  • Sélectionnez une autre région pour votre équilibreur de charge. Cette option peut être pratique si vous avez des backends dans une autre région.
  • Sélectionnez un réseau VPC comportant déjà un sous-réseau proxy réservé alloué.
  • Attendez que le problème de capacité soit résolu.

Modifier la taille ou la plage d'adresses d'un sous-réseau proxy réservé

Lorsque la quantité de trafic gérée par votre équilibreur de charge augmente, vous devrez peut-être augmenter la taille de votre sous-réseau proxy réservé pour permettre l'attribution d'un plus grand nombre de proxys Envoy à votre équilibreur de charge.

Vous ne pouvez pas développer un sous-réseau proxy réservé de la même manière qu'une plage d'adresses principale (à l'aide de la commande expand-ip-range). Au lieu de cela, vous devez créer un sous-réseau proxy réservé de secours qui répond à vos besoins, puis le promouvoir à un rôle actif. Ceci est dû au fait qu'un seul sous-réseau proxy réservé peut être actif par région et par réseau VPC, et que vous pouvez uniquement étendre la plage d'adresses IP principale d'un sous-réseau.

Le passage d'un sous-réseau proxy réservé du statut de secours à actif n'interrompt pas les nouvelles connexions :

  • Le sous-réseau proxy réservé qui vient d'être activé est utilisé pour les nouvelles connexions.
  • Le sous-réseau proxy réservé précédemment actif (désormais sous-réseau de secours) n'est plus utilisé pour les nouvelles connexions.
  • Google Cloud commence le drainage des connexions existantes dans les proxys du sous-réseau proxy réservé précédemment actif (désormais sous-réseau de secours).

Vous ne pouvez créer qu'un seul sous-réseau proxy réservé actif et un seul sous-réseau proxy réservé de secours par région et par réseau VPC.

Console

  1. Créer un sous-réseau proxy réservé de secours dans la même région, en spécifiant une plage d'adresses IP principale qui répond à vos besoins

    1. Dans Google Cloud Console, accédez à la page Réseaux VPC.
      Accéder à la page Réseaux VPC
    2. Cliquez sur le nom du réseau VPC partagé auquel vous souhaitez ajouter un sous-réseau proxy réservé.
    3. Cliquez sur Ajouter un sous-réseau.
    4. Saisissez un nom.
    5. Sélectionnez une région.
    6. Définissez le champ Objectif sur l'un des éléments suivants :
      • Pour les équilibreurs de charge régionaux : proxy géré régional
      • Pour les équilibreurs de charge interrégionaux : proxy géré interrégional
      • Pour le champ Rôle, sélectionnez De secours.
      • Saisissez une plage d'adresses IP.
      • Cliquez sur Ajouter.
  2. Créez ou modifiez des règles de pare-feu autorisant les entrées qui s'appliquent à vos VM de backend ou points de terminaison, de sorte qu'elles incluent la plage d'adresses IP principale du sous-réseau proxy réservé de secours.

  3. Faites passer le sous-réseau proxy réservé de secours au statut actif. Cette action rétrograde également le sous-réseau proxy réservé précédemment actif au statut de secours :

    1. Dans Google Cloud Console, accédez à la page Réseaux VPC.
      Accéder à la page Réseaux VPC
    2. Cliquez sur le nom du réseau VPC partagé que vous souhaitez modifier.
    3. Sous Sous-réseaux proxy réservés à l'équilibrage de charge, localisez le sous-réseau de secours créé à l'étape précédente.
    4. Cliquez sur Activer.
    5. Spécifiez un délai avant expiration du drainage facultatif.
    6. Cliquez sur Activer le sous-réseau.
  4. Après expiration du délai de drainage des connexions ou après avoir vérifié que les connexions à vos VM de backend ou points de terminaison ne proviennent pas des proxys du sous-réseau proxy réservé précédemment actif (désormais de secours), vous pouvez effectuer les opérations suivantes :

    • Modifiez les règles de pare-feu autorisant les entrées qui s'appliquent à vos VM de backend ou points de terminaison de sorte qu'elles n'incluent pas la plage d'adresses IP principale du sous-réseau proxy réservé précédemment actif (désormais sous-réseau de secours).
    • Supprimez le sous-réseau proxy réservé précédemment actif (désormais sous-réseau de secours) pour libérer les adresses IP que le sous-réseau utilisait pour sa plage d'adresses IP principale.

gcloud

Les étapes suivantes supposent que vous disposez déjà d'un sous-réseau proxy réservé actif.

  1. Créez un sous-réseau proxy réservé de secours dans la même région, en spécifiant une plage d'adresses IP principale qui répond à vos besoins, à l'aide de la commande gcloud compute networks subnets create avec l'option --role=BACKUP.

    gcloud compute networks subnets create BACKUP_PROXY_ONLY_SUBNET_NAME \
       --purpose=SUBNET_PURPOSE \
       --role=BACKUP \
       --region=REGION \
       --network=VPC_NETWORK_NAME \
       --range=BACKUP_PROXY_ONLY_SUBNET_RANGE
    

    Remplacez les éléments suivants :

    • BACKUP_PROXY_ONLY_SUBNET_NAME : nom du sous-réseau proxy réservé de secours que vous venez de créer
    • SUBNET_PURPOSE : objectif du sous-réseau proxy réservé de secours que vous venez de créer
    • REGION : région du sous-réseau proxy réservé de secours que vous venez de créer. Il doit s'agir de la même région que le sous-réseau proxy réservé actif actuel.
    • REGION : réseau du sous-réseau proxy réservé de secours que vous venez de créer. Il doit s'agir du même réseau que le sous-réseau proxy réservé actif actuel.
    • BACKUP_PROXY_ONLY_SUBNET_RANGE : plage CIDR du sous-réseau proxy réservé de secours que vous venez de créer
  2. Créez ou modifiez des règles de pare-feu autorisant les entrées qui s'appliquent à vos VM de backend ou points de terminaison, de sorte qu'elles incluent désormais la plage d'adresses IP principale du sous-réseau proxy réservé de secours. La règle de pare-feu doit déjà accepter les connexions provenant du sous-réseau actif.

    gcloud compute firewall-rules update PROXY_ONLY_SUBNET_FIREWALL_RULE \
      --source-ranges ACTIVE_PROXY_ONLY_SUBNET_RANGE,BACKUP_PROXY_ONLY_SUBNET_RANGE
    

    Remplacez les éléments suivants :

    • PROXY_ONLY_SUBNET_FIREWALL_RULE : nom de la règle de pare-feu qui permet au trafic provenant du sous-réseau proxy réservé d'atteindre vos instances backend ou points de terminaison.
    • ACTIVE_PROXY_ONLY_SUBNET_RANGE : plage CIDR du sous-réseau proxy réservé actif actuel
  3. Mettez à jour le nouveau sous-réseau en le définissant comme le sous-réseau proxy réservé actif (ACTIVE) dans la région et attendez le drainage de l'ancien sous-réseau. Cette action rétrograde également le sous-réseau proxy réservé précédemment actif au statut de secours.

    Pour drainer immédiatement une plage d'adresses IP, définissez --drain-timeout sur 0s. Cette opération met fin rapidement à toutes les connexions aux proxys avec des adresses attribuées dans le sous-réseau en cours de drainage.

    gcloud compute networks subnets update BACKUP_PROXY_ONLY_SUBNET_NAME \
       --region=REGION \
       --role=ACTIVE \
       --drain-timeout=CONNECTION_DRAINING_TIMEOUT
    

    Remplacez les éléments suivants :

    • CONNECTION_DRAINING_TIMEOUT : durée, en secondes, pendant laquelle Google Cloud migre les connexions existantes hors des proxys du sous-réseau proxy réservé précédemment actif
  4. Surveillez l'état du drainage à l'aide de la commande list ou describe. L'état du sous-réseau est DRAINING pendant le drainage.

    gcloud compute networks subnets list
    

    Attendez que le drainage soit terminé. Lorsque l'ancien sous-réseau proxy réservé est drainé, l'état du sous-réseau est READY.

  5. Mettez à jour votre règle de pare-feu de sous-réseau proxy réservé pour autoriser uniquement les connexions du nouveau sous-réseau.

    gcloud compute firewall-rules PROXY_ONLY_SUBNET_FIREWALL_RULE \
      --source-ranges BACKUP_PROXY_ONLY_SUBNET_RANGE
    
  6. Une fois que vous êtes certain que les connexions à vos VM de backend ou points de terminaison ne proviennent pas de proxys du sous-réseau proxy réservé précédemment actif (désormais sous-réseau de secours), vous pouvez supprimer l'ancien sous-réseau.

    gcloud compute networks subnets delete ACTIVE_PROXY_ONLY_SUBNET_NAME \
      --region=REGION
    

Migrer l'objectif d'un sous-réseau proxy réservé

Si vous avez déjà créé un sous-réseau proxy réservé avec --purpose=INTERNAL_HTTPS_LOAD_BALANCER, vous devez migrer l'objectif du sous-réseau vers REGIONAL_MANAGED_PROXY avant de pouvoir créer d'autres équilibreurs de charge basés sur Envoy dans la même région du réseau VPC.

Console

Si vous utilisez la console Google Cloud pour créer l'équilibreur de charge, vous êtes invité à migrer l'objectif d'un sous-réseau proxy réservé précédemment créé de --purpose=INTERNAL_HTTPS_LOAD_BALANCER vers REGIONAL_MANAGED_PROXY lors de la création de l'équilibreur de charge.

gcloud

Pour remplacer l'objectif d'un sous-réseau proxy réservé existant --purpose=INTERNAL_HTTPS_LOAD_BALANCER par REGIONAL_MANAGED_PROXY, utilisez la commande suivante :

gcloud compute networks subnets update PROXY_ONLY_SUBNET \
    --purpose=REGIONAL_MANAGED_PROXY \
    --region=REGION

La migration de l'objectif d'un sous-réseau proxy réservé de --purpose=INTERNAL_HTTPS_LOAD_BALANCER vers REGIONAL_MANAGED_PROXY n'entraîne aucun temps d'arrêt. La modification devrait prendre effet presque instantanément.

Supprimer un sous-réseau proxy réservé

La suppression d'un sous-réseau proxy réservé libère sa plage d'adresses IP principale afin que vous puissiez l'utiliser à d'autres fins. Google Cloud applique les règles suivantes lorsqu'il reçoit une requête de suppression d'un sous-réseau proxy réservé :

  • Un sous-réseau proxy réservé actif ne peut pas être supprimé s'il existe au moins un équilibreur de charge régional dans la même région et le même réseau VPC.

  • Un sous-réseau proxy réservé actif ne peut pas être supprimé s'il existe un sous-réseau proxy réservé de secours dans la même région et le même réseau VPC.

    Si vous essayez de supprimer un sous-réseau proxy réservé actif avant de supprimer la sauvegarde, le message d'erreur suivant s'affiche : "Utilisation des ressources non valide : impossible de supprimer le sous-réseau ACTIF car un sous-réseau DE SECOURS existe."

En pratique, ces règles ont les effets suivants :

  • Si aucun équilibreur de charge régional n'est défini dans une région et un réseau VPC donnés, vous pouvez supprimer les sous-réseaux proxy réservés de cette région. Si un sous-réseau proxy réservé de secours existe, vous devez d'abord le supprimer avant de pouvoir supprimer le sous-réseau proxy réservé actif.

  • Si au moins un équilibreur de charge régional est défini dans une région et un réseau VPC donnés, vous ne pouvez pas supprimer le sous-réseau proxy réservé actif. Toutefois, vous pouvez promouvoir le sous-réseau proxy réservé de secours et lui donner le statut actif, ce qui rétrograde automatiquement le sous-réseau proxy réservé précédemment actif au statut de secours. Une fois les connexions drainées, vous pouvez supprimer le sous-réseau proxy réservé de secours (précédemment actif).

Pour plus d'informations, reportez-vous à la section Supprimer des sous-réseaux dans la documentation du réseau VPC.

Limites

Les contraintes suivantes s'appliquent aux sous-réseaux proxy réservés :

  • Vous ne pouvez pas avoir à la fois un sous-réseau INTERNAL_HTTPS_LOAD_BALANCER et REGIONAL_MANAGED_PROXY dans le même réseau et la même région, tout comme vous ne pouvez pas avoir deux proxys REGIONAL_MANAGED_PROXY ou deux proxys INTERNAL_HTTPS_LOAD_BALANCER.

  • Vous ne pouvez créer qu'un seul sous-réseau proxy réservé actif et un seul sous-réseau proxy réservé de secours dans chaque région et dans chaque réseau VPC.

  • Vous ne pouvez pas créer de sous-réseau proxy réservé de secours, sauf si vous avez déjà créé un sous-réseau proxy réservé actif dans cette région et ce réseau.

  • Vous pouvez modifier le statut d'un sous-réseau proxy réservé de secours et le définir comme actif en le mettant à jour. Lorsque vous effectuez cette opération, Google Cloud change automatiquement le sous-réseau proxy réservé précédemment actif en sous-réseau de secours. Vous ne pouvez pas définir explicitement un sous-réseau proxy réservé comme sous-réseau de secours en le mettant à jour.

  • Pendant la période de drainage des connexions d'un sous-réseau proxy réservé (--drain-timeout), vous ne pouvez pas remplacer son statut.

  • Google Cloud ne vous avertit pas si votre sous-réseau proxy réservé manque d'adresses IP. Toutefois, vous pouvez configurer Monitoring pour surveiller l'utilisation des adresses IP de votre sous-réseau proxy réservé. Vous pouvez définir des règles d'alerte afin de configurer une alerte pour la métrique loadbalancing.googleapis.com/subnet/proxy_only/addresses.

  • Les sous-réseaux proxy réservés ne sont pas compatibles avec les journaux de flux VPC.

Étapes suivantes