Enregistrer un équilibreur de charge réseau passthrough externe

Cette page explique comment configurer un équilibreur de charge réseau passthrough externe afin qu'il soit automatiquement enregistré dans l'Annuaire des services.

Lorsque vous créez votre équilibreur de charge, vous pouvez l'enregistrer en tant que point de terminaison dans un espace de noms et un service de l'Annuaire des services existant de votre choix. Les applications clientes peuvent ensuite utiliser l'Annuaire des services (à l'aide de HTTP ou de gRPC) pour résoudre l'adresse du service d'équilibrage de charge réseau passthrough externe et s'y connecter directement.

Limites

L'intégration de l'Annuaire des services avec des équilibreurs de charge réseau passthrough externes présente les limites suivantes:

  • L'enregistrement automatique n'est compatible qu'avec les équilibreurs de charge de couche 4 externes. Vous pouvez enregistrer des services d'équilibrage de charge Google Kubernetes Engine à l'aide de l'intégration GKE. Vous pouvez enregistrer d'autres équilibreurs de charge externes, des équilibreurs de charge globaux, ainsi que des entrées et des passerelles Google Kubernetes Engine en appelant l'API Service Directory.
  • Vous ne pouvez utiliser l'enregistrement automatique qu'au moment de la création de la règle de transfert. L'enregistrement automatique à l'aide de la mise à jour de Google Cloud CLI pour une règle de transfert déjà existante n'est pas disponible.
  • L'annuaire des services ne fournit pas de connectivité. Par conséquent, même si l'annuaire des services stocke l'adresse IP virtuelle de l'équilibreur de charge réseau passthrough externe, la recherche de l'équilibreur de charge réseau passthrough externe dans l'annuaire des services ne garantit pas que vous pouvez vous connecter à l'adresse IP virtuelle.

Avant de commencer

Ces instructions nécessitent les éléments suivants:

  • Vous devez déjà disposer d'un espace de noms et d'un service de l'annuaire des services. Si ce n'est pas le cas, créez un espace de noms et un service en suivant la procédure décrite dans Configurer l'annuaire des services.

    Le service et l'espace de noms du répertoire de services doivent se trouver dans le même projet et la même région que la règle de transfert de l'équilibreur de charge réseau passthrough externe que vous créez.

  • Vous devez déjà avoir configuré les ressources nécessaires pour créer une règle de transfert d'équilibreur de charge réseau passthrough externe.

    Pour savoir comment créer un équilibreur de charge réseau passthrough externe, consultez la section Configurer un équilibreur de charge réseau passthrough externe.

Configurer des règles de transfert pour enregistrer un équilibreur de charge réseau passthrough externe dans l'Annuaire des services

Vous devez configurer une règle de transfert pour enregistrer l'équilibreur de charge réseau passthrough externe dans l'Annuaire des services. Pour enregistrer un équilibreur de charge réseau passthrough externe, consultez la section suivante.

Enregistrer un équilibreur de charge réseau passthrough externe

Pour enregistrer un équilibreur de charge réseau passthrough externe, exécutez la commande gcloud compute forwarding-rules create et définissez l'option service-directory-registration :

gcloud beta compute forwarding-rules create FORWARDING_RULE_NAME \
    --region=REGION \
    --load-balancing-scheme=EXTERNAL \
    --address=RESERVED_IP_ADDRESS \
    --ip-protocol=PROTOCOL_TYPE \
    --ports=PORT_NUMBER \
    --backend-service=BACKEND_SERVICE_NAME \
    --backend-service-region=REGION \
    --service-directory-registration=SD_SERVICE_NAME

Remplacez les éléments suivants :

  • FORWARDING_RULE_NAME : nom de la règle de transfert que vous souhaitez créer
  • REGION : région dans laquelle créer la règle de transfert.
  • RESERVED_IP_ADDRESS : adresse IP utilisée par la règle de transfert.
  • PROTOCOL_TYPE : protocole IP pour lequel la règle doit être diffusée
  • PORT_NUMBER : liste de ports séparés par une virgule.
  • BACKEND_SERVICE_NAME : service de backend cible qui reçoit le trafic
  • SD_SERVICE_NAME : nom complet du service de l'Annuaire des services dans lequel vous souhaitez enregistrer le point de terminaison. Ce service doit se trouver dans le même projet et la même région que la règle de transfert en cours de création. Par exemple : projects/PROJECT/locations/REGION/namespaces/NAMESPACE_NAME/services/SERVICE_NAME.

Valider le point de terminaison

Les points de terminaison de l'annuaire des services créés lorsque vous enregistrez un équilibreur de charge réseau passthrough externe présentent les caractéristiques suivantes:

  • Le point de terminaison porte le même nom que celui de la règle de transfert avec le numéro de port spécifié (<forwarding rule name>-<port>). Par exemple, si vous créez une règle de transfert RULE avec --port=8080, vous obtenez un point de terminaison appelé RULE-8080. Pour la même règle, si vous avez spécifié deux ports --port=8080, 8081, vous obtenez deux points de terminaison, RULE-8080 et RULE-8081. Si vous spécifiez --port=ALL, le point de terminaison de l'annuaire des services est enregistré avec le port 0. Si vous êtes le propriétaire de l'équilibreur de charge réseau passthrough externe, vous devez vous assurer que l'appelant de l'API connaît le port auquel se connecter.
  • Vous ne pouvez pas modifier ni supprimer le point de terminaison à l'aide de l'API publique de l'Annuaire des services. Le point de terminaison n'est automatiquement supprimé que lorsque vous supprimez la règle de transfert. Cela signifie que vous ne pouvez pas supprimer le service et l'espace de noms dans lesquels se trouve le point de terminaison tant que la règle de transfert existe.
  • Le point de terminaison lui-même n'est pas facturé, mais les conditions tarifaires standards s'appliquent à tous les appels d'API vers le point de terminaison.

Pour vérifier que le point de terminaison est créé, résolvez le service dans l'annuaire des services. Un point de terminaison portant le même nom que celui de la règle de transfert avec le numéro de port spécifié devrait s'afficher.

Pour résoudre le service dans Annuaire des services, exécutez la commande gcloud service-directory services resolve:

gcloud service-directory services resolve SD_SERVICE_NAME \
    --namespace=SD_NAMESPACE_NAME \
    --location=REGION

Remplacez les éléments suivants :

  • SD_SERVICE_NAME: nom du service de l'Annuaire des services à résoudre. Il doit résider dans le nom de l'espace de noms de l'Annuaire des services.
  • SD_NAMESPACE_NAME: nom que vous avez attribué à l'espace de noms contenant votre service.
  • REGION: région Google Cloud contenant l'espace de noms. Il doit s'agir de la même région que celle dans laquelle vous avez créé la règle de transfert.

Nettoyage

Pour supprimer les ressources que vous avez créées, procédez comme suit :

  1. Pour supprimer la règle de transfert, exécutez la commande gcloud compute forwarding-rules delete:

    gcloud compute forwarding-rules delete FORWARDING_RULE_NAME \
      --region=REGION
    

    Remplacez les éléments suivants :

    • FORWARDING_RULE_NAME: nom de la règle de transfert que vous avez créée
    • REGION : région de la règle de transfert.

    Pour en savoir plus, consultez Supprimer une règle de transfert.

    Pour vérifier que la suppression de la règle de transfert a automatiquement supprimé le point de terminaison de l'annuaire des services, exécutez la commande gcloud service-directory services resolve décrite dans la section Vérifier le point de terminaison de votre service d'annuaire des services.

  2. Pour supprimer l'espace de noms et le service de l'Annuaire des services, consultez Supprimer des ressources.

Étape suivante

  • Pour obtenir une présentation de l'annuaire des services, consultez la présentation de l'annuaire des services.
  • Pour trouver des solutions aux problèmes courants que vous pouvez rencontrer lors de l'utilisation de l'Annuaire des services, consultez la page Dépannage.