Enregistrer un équilibreur de charge interne

Cette page explique comment configurer un équilibreur de charge réseau passthrough interne ou un équilibreur de charge d'application interne (preview) 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 gRPC) et/ou le DNS (si vous avez créé une zone DNS de l'Annuaire des services) pour résoudre l'adresse du service d'équilibreur de charge interne et s'y connecter directement.

Limites

L'intégration de l'Annuaire des services à l'équilibrage de charge interne présente les limites suivantes:

  • L'enregistrement automatique ne s'applique qu'aux équilibreurs de charge internes et réseau. Vous pouvez enregistrer des services d'équilibrage de charge Google Kubernetes Engine à l'aide de l'intégration GKE. Vous pouvez enregistrer 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.
  • Vous pouvez enregistrer des équilibreurs de charge internes dans l'annuaire des services dans les projets hôte ou de service d'une configuration de réseau VPC partagé. Toutefois, tous les composants et les backends d'équilibrage de charge doivent se trouver dans le même projet. Pour en savoir plus, consultez les limites de l'équilibrage de charge interne.
  • L'annuaire des services ne fournit pas de connectivité. Par conséquent, bien que l'annuaire des services stocke l'adresse IP virtuelle de l'équilibreur de charge interne, la recherche de l'équilibreur de charge interne 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 la section Configurer l'annuaire des services.

    L'espace de noms et le service 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 interne 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 interne.

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

Vous devez configurer une règle de transfert pour enregistrer l'équilibreur de charge interne dans l'Annuaire des services. Pour enregistrer un équilibreur de charge réseau passthrough interne ou un équilibreur de charge d'application interne, consultez les sections suivantes.

Enregistrer un équilibreur de charge réseau passthrough interne

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

gcloud compute forwarding-rules create FORWARDING_RULE_NAME \
    --region=REGION \
    --load-balancing-scheme=INTERNAL \
    --network=NETWORK_NAME \
    --subnet=SUBNET_NAME \
    --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.
  • NETWORK_NAME : réseau auquel s'applique cette règle de transfert.
  • SUBNET_NAME : sous-réseau auquel s'applique cette règle de transfert.
  • RESERVED_IP_ADDRESS : adresse IP utilisée par la règle de transfert.
  • PROTOCOL_TYPE : protocole IP qui sera utilisé par la règle.
  • 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. Il doit résider 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.

Enregistrer un équilibreur de charge d'application interne

Pour enregistrer un équilibreur de charge d'application interne régional, 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=INTERNAL_MANAGED \
    --network=NETWORK_NAME \
    --address=RESERVED_IP_ADDRESS \
    --target-https-proxy=PROXY_NAME \
    --target-https-proxy-region=PROXY_REGION \
    --ports=PORT_NUMBER \
    --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.
  • NETWORK_NAME : réseau auquel s'applique cette règle de transfert.
  • RESERVED_IP_ADDRESS : adresse IP utilisée par la règle de transfert.
  • PROXY_NAME : proxy cible qui reçoit le trafic.
  • PROXY_REGION : région du proxy sur lequel effectuer des opérations.
  • PORT_NUMBER : liste de ports séparés par une virgule.
  • 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

Un ou plusieurs points de terminaison de l'annuaire des services créés lorsque vous enregistrez un équilibreur de charge interne 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 interne, vous devez vous assurer que l'appelant de l'API sait sur quel port se connecter.
  • Vous ne pouvez pas modifier ni supprimer le point de terminaison à l'aide de l'API publique du Service Directory. 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 Service Directory, procédez comme suit:

gcloud

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 contenant l'espace de noms. Google Cloud Il doit s'agir de la même région que celle dans laquelle vous avez créé la règle de transfert.

Facultatif: Créer une zone d'annuaire des services à l'aide de Cloud DNS

Vous pouvez résoudre les points de terminaison de l'annuaire des services enregistrés via cette intégration à l'aide du DNS, comme n'importe quel autre point de terminaison de l'annuaire des services. Pour créer une zone de l'annuaire des services à l'aide de Cloud DNS, consultez la section Configurer une zone de l'annuaire des services.

Pour vérifier que votre zone est correctement configurée, vous pouvez exécuter une requête DNS sur votre zone de l'annuaire des services. Pour savoir comment interroger des données à l'aide d'un DNS, consultez la page Interroger des données à l'aide d'un DNS. Si votre zone est correctement configurée, l'adresse IP de votre équilibreur de charge interne doit s'afficher dans la sortie de la commande.

Nettoyage

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

gcloud

  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 la zone, si vous en avez créé une, suivez les instructions de la section Supprimer une zone gérée.

  3. Pour supprimer l'espace de noms et le service de l'Annuaire des services, consultez la section 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 Service Directory, consultez la page Dépannage.