Un enregistrement d'adresse DNS, également appelé enregistrement A, permet de mapper un nom DNS à une adresse IP. Lorsque vous créez la règle de transfert pour un équilibreur de charge interne, vous pouvez éventuellement définir un libellé de service permettant à Google Cloud de créer un nom DNS interne Compute Engine pour cet équilibreur de charge. Ce nom DNS interne est créé à partir de votre ID de projet, du nom de la règle de transfert et d'un libellé de service de votre choix.
Spécifications
Cette fonctionnalité est compatible avec les règles de transfert pour les équilibreurs de charge suivants :
- Équilibrage de charge TCP/UDP interne
- Équilibrage de charge HTTP(S) interne
Pour plus de détails sur le format du nom DNS que Google Cloud crée pour votre équilibreur de charge, reportez-vous à la section Format des enregistrements DNS. Étant donné que le nom DNS contient le nom de la règle de transfert, chaque nom DNS est unique, même si vous utilisez le même libellé de service pour plusieurs règles de transfert.
À moins qu'un autre serveur de noms soit configuré, les VM clientes de toutes les régions d'un même projet et d'un même réseau VPC peuvent effectuer des recherches DNS afin de déterminer le nom DNS interne de l'équilibreur de charge. Pour accéder à l'équilibreur de charge, les VM clientes doivent être situées dans la même région, sauf si un accès mondial est disponible et activé. Si vous activez l'accès mondial pour l'équilibrage de charge TCP/UDP interne, un client de n'importe quelle région peut accéder à l'équilibreur de charge.
Vous ne pouvez spécifier un libellé de service que lorsque vous créez une règle de transfert. Vous n'avez pas la possibilité d'ajouter un libellé de service à une règle de transfert existante. Toutefois, vous pouvez remplacer une règle de transfert existante par une nouvelle règle de transfert dotée d'un libellé de service. La règle de remplacement peut utiliser la même adresse IP interne que la règle d'origine, à condition que vous ayez auparavant supprimé cette dernière.
Les noms DNS internes créés à partir des libellés de service sont soumis aux restrictions suivantes :
- Aucun enregistrement inversé (PTR) correspondant n'est créé.
- Chaque règle de transfert ne peut comporter qu'un seul libellé de service.
- Hormis le libellé de service et la règle de transfert, vous ne pouvez modifier aucune des autres parties du nom DNS interne, y compris son format et son nom de domaine (
.internal
).
Si vous avez besoin de noms DNS plus flexibles pour votre équilibreur de charge interne, vous pouvez créer des enregistrements personnalisés dans une zone privée gérée Cloud DNS.
Vous ne pouvez pas définir un libellé de service sur une règle de transfert interne faisant référence à une adresse IP interne partagée. Cela signifie que les enregistrements A DNS internes à Compute Engine ne peuvent pas être créés automatiquement pour une adresse IP interne ayant l'option
--purpose=SHARED_LOADBALANCER_VIP
, car l'adresse est utilisée par deux règles de transfert internes ou plus.
Format des enregistrements DNS
Lorsque vous ajoutez un libellé de service à une règle de transfert, Google Cloud crée un enregistrement A DNS interne à Compute Engine en utilisant l'un des formats suivants :
Pour l'équilibrage de charge TCP/UDP interne :
SERVICE_LABEL.FORWARDING_RULE_NAME.il4.REGION.lb.PROJECT_ID.internal
Pour l'équilibrage de charge HTTP(S) interne :
SERVICE_LABEL.FORWARDING_RULE_NAME.il7.REGION.lb.PROJECT_ID.internal
SERVICE_LABEL est le libellé de service de la règle de transfert que vous spécifiez. Il doit respecter le format suivant :
- Vous pouvez utiliser jusqu'à 63 lettres minuscules (de
a
àz
), chiffres (de0
à9
) ou tirets (-
). - Le libellé du service doit commencer par une lettre minuscule.
- Le libellé de service doit se terminer par une lettre minuscule ou un chiffre.
FORWARDING_RULE_NAME est le nom de la règle de transfert que vous créez.
REGION est la région de l'équilibreur de charge.
PROJECT_ID est l'ID de votre projet.
Les ID de projet définis sous la forme organization:project-id
sont convertis au format project-id.organization
. Par exemple, si votre ID de projet est example.com:example-marketing-prod
, Google Cloud utilise example-marketing-prod.example.com
.
Créer une règle de transfert avec un libellé de service
Cette procédure indique comment créer une règle de transfert avec un libellé de service pour un équilibreur de charge TCP/UDP interne ou un équilibreur de charge HTTP(S) interne.
Cette procédure se concentre uniquement sur la création d'une règle de transfert avec un libellé de service. Les propriétés de la configuration du backend de l'équilibreur de charge et les autres propriétés de la configuration du frontend sont omises. Si vous n'avez jamais utilisé l'équilibrage de charge TCP/UDP interne ou l'équilibrage de charge HTTP(S) interne auparavant, consultez les pages suivantes pour obtenir des exemples complets :
Console
- Accédez à la page "Équilibrage de charge" dans Google Cloud Console.
Accéder à la page "Équilibrage de charge" - Cliquez sur Créer un équilibreur de charge.
- Sous Équilibrage de charge HTTP(S), Équilibrage de charge TCP ou Équilibrage de charge UDP, cliquez sur Démarrer la configuration.
- Sous Internet ou interne uniquement, sélectionnez Seulement entre les VM, puis cliquez sur Continuer.
- Dans le champ Nom, saisissez le nom de l'équilibreur de charge.
- Renseignez la section Configuration du backend.
- Cliquez sur Configuration du frontend. Procédez à la configuration du frontend en renseignant la zone Libellé de service au bas de cette section.
- Cliquez sur OK, puis sur Vérification et finalisation.
gcloud
Pour créer une règle de transfert avec un libellé de service pour un équilibreur de charge TCP/UDP interne, procédez comme suit :
gcloud compute forwarding-rules create FORWARDING_RULE_NAME \ --load-balancing-scheme=INTERNAL \ --region=REGION \ --backend-service-region=REGION \ --backend-service=BACKEND_SERVICE_NAME \ --network=NETWORK \ --subnet=SUBNET \ --address=INTERNAL_IP \ --ip-protocol=PROTOCOL \ --ports=PORTS \ --service-label=SERVICE_LABEL
Pour créer une règle de transfert avec un libellé de service pour un équilibreur de charge HTTPS interne, procédez comme suit :
gcloud compute forwarding-rules create FORWARDING_RULE_NAME \ --load-balancing-scheme=INTERNAL_MANAGED \ --region=REGION \ --target-https-proxy-region=REGION \ --target-https-proxy=TARGET_PROXY_NAME \ --network=NETWORK \ --subnet=SUBNET \ --address=INTERNAL_IP \ --ip-protocol=TCP \ --ports=443 \ --service-label=SERVICE_LABEL
Pour créer une règle de transfert avec un libellé de service pour un équilibreur de charge HTTP interne, procédez comme suit :
gcloud compute forwarding-rules create FORWARDING_RULE_NAME \ --load-balancing-scheme=INTERNAL_MANAGED \ --region=REGION \ --target-http-proxy-region=REGION \ --target-http-proxy=TARGET_PROXY_NAME \ --network=NETWORK \ --subnet=SUBNET \ --address=INTERNAL_IP \ --ip-protocol=TCP \ --ports=PORT \ --service-label=SERVICE_LABEL
Remplacez les espaces réservés par les valeurs appropriées.
- FORWARDING_RULE_NAME est le nom de la règle de transfert de l'équilibreur de charge.
- REGION est la région de l'équilibreur de charge.
- BACKEND_SERVICE_NAME est le nom du service de backend de l'équilibreur de charge TCP/UDP interne.
- TARGET_PROXY_NAME est le nom du proxy HTTPS cible (pour un équilibreur de charge HTTPS interne) ou du proxy HTTP cible (pour un équilibreur de charge HTTP interne).
- NETWORK est le nom du réseau VPC dans lequel l'équilibreur de charge est créé.
- SUBNET est le nom d'un sous-réseau du réseau VPC. Le sous-réseau doit se trouver dans la même région que le service de backend ou le proxy cible de l'équilibreur de charge.
- INTERNAL_IP est une adresse IP interne comprise dans la plage d'adresses IP principale du sous-réseau choisi. Vous pouvez omettre l'option
--address
afin de laisser Google Cloud sélectionner une adresse IP disponible. - Pour les équilibreurs de charge TCP/UDP internes, PROTOCOL correspond à
TCP
ou àUDP
, selon le protocole du service de backend de l'équilibreur de charge. Pour les équilibreurs de charge HTTP(S) internes, le protocole doit êtreTCP
. - Pour les équilibreurs de charge TCP/UDP internes, PORTS correspond à un tableau comportant jusqu'à cinq ports par numéro, ou le mot
ALL
. Pour les équilibreurs de charge HTTPS internes, vous devez utiliser443
pour le port. Pour les équilibreurs de charge HTTP internes, vous pouvez utiliser80
ou8080
pour PORT. Pour plus d'informations, consultez les Spécifications de ports dans les concepts liés aux règles de transfert. - SERVICE_LABEL correspond au libellé de service souhaité. Celui-ci doit respecter les conventions de dénomination.
api
Dans les exemples suivants, vous créez des règles de transfert à l'aide de la méthode forwardingRules.insert
.
Pour créer une règle de transfert avec un libellé de service pour un équilibreur de charge TCP/UDP interne, procédez comme suit :
POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/forwardingRules { "name": "FORWARDING_RULE_NAME", "loadBalancingScheme": "INTERNAL", "backendService": "https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/backendServices/BACKEND_SERVICE_NAME", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT/global/networks/NETWORK", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/subnetworks/SUBNET", "IPAddress": "INTERNAL_IP", "IPProtocol": "PROTOCOL", "ports": PORTS, "serviceLabel": "SERVICE_LABEL" }
Pour créer une règle de transfert avec un libellé de service pour un équilibreur de charge HTTPS interne, procédez comme suit :
POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/forwardingRules { "name": "FORWARDING_RULE_NAME", "loadBalancingScheme": "INTERNAL_MANAGED", "target": "https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/targetHttpsProxies/TARGET_PROXY_NAME", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT/global/networks/NETWORK", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/subnetworks/SUBNET", "IPAddress": "INTERNAL_IP", "IPProtocol": "TCP", "ports": 443, "serviceLabel": "SERVICE_LABEL" }
Pour créer une règle de transfert avec un libellé de service pour un équilibreur de charge HTTP interne, procédez comme suit :
POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/forwardingRules { "name": "FORWARDING_RULE_NAME", "loadBalancingScheme": "INTERNAL_MANAGED", "target": "https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/targetHttpProxies/TARGET_PROXY_NAME", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT/global/networks/NETWORK", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/subnetworks/SUBNET", "IPAddress": "INTERNAL_IP", "IPProtocol": "TCP", "ports": PORT, "serviceLabel": "SERVICE_LABEL" }
Remplacez les espaces réservés par les valeurs appropriées.
- FORWARDING_RULE_NAME est le nom de la règle de transfert de l'équilibreur de charge.
- REGION est la région de l'équilibreur de charge.
- BACKEND_SERVICE_NAME est le nom du service de backend de l'équilibreur de charge TCP/UDP interne.
- TARGET_PROXY_NAME est le nom du proxy HTTPS cible (pour un équilibreur de charge HTTPS interne) ou du proxy HTTP cible (pour un équilibreur de charge HTTP interne).
- NETWORK est le nom du réseau VPC dans lequel l'équilibreur de charge est créé.
- SUBNET est le nom d'un sous-réseau du réseau VPC. Le sous-réseau doit se trouver dans la même région que le service de backend ou le proxy cible de l'équilibreur de charge.
- INTERNAL_IP est une adresse IP interne comprise dans la plage d'adresses IP principale du sous-réseau choisi. Vous pouvez omettre la clé
IPAddress
afin de laisser Google Cloud sélectionner une adresse IP disponible. - Pour les équilibreurs de charge TCP/UDP internes, PROTOCOL correspond à
TCP
ou àUDP
, selon le protocole du service de backend de l'équilibreur de charge. Pour les équilibreurs de charge HTTP(S) internes, le protocole doit êtreTCP
. - Pour les équilibreurs de charge TCP/UDP internes, PORTS correspond à un tableau comportant jusqu'à cinq ports par numéro, ou le mot
ALL
. Pour les équilibreurs de charge HTTPS internes, vous devez utiliser443
pour le port. Pour les équilibreurs de charge HTTP internes, vous pouvez utiliser80
ou8080
pour PORT. Pour plus d'informations, consultez les Spécifications de ports dans les concepts liés aux règles de transfert. - SERVICE_LABEL correspond au libellé de service souhaité. Celui-ci doit respecter les conventions de dénomination.
Afficher les libellés de service
Console
Vous pouvez afficher le nom DNS interne Compute Engine (créé à partir du libellé de service) correspondant à chaque règle de transfert interne d'un équilibreur de charge interne :
- Accédez à la page "Équilibrage de charge" dans Google Cloud Console.
Accéder à la page "Équilibrage de charge" - Cliquez sur le nom de l'équilibreur de charge interne pour afficher sa page d'informations.
- Les règles de transfert internes attribuées à l'équilibreur de charge sont répertoriées dans la section Frontend. La colonne Nom DNS indique le nom DNS interne Compute Engine attribué à chaque règle de transfert. Le libellé de service constitue la première partie de ce nom (avant le premier point). Si aucun nom n'est affiché, cela signifie qu'aucun libellé de service n'a été défini pour la règle de transfert.
gcloud
Répertoriez les règles de transfert dans votre projet utilisées par l'équilibrage de charge TCP/UDP interne ou l'équilibrage de charge HTTP(S) interne. Identifiez celle dont vous avez besoin et notez son nom et sa région pour l'étape suivante.
gcloud compute forwarding-rules list \ --filter="loadBalancingScheme=SCHEME"
La valeur de SCHEME dépend des règles de transfert que vous devez répertorier :
- Pour les équilibreurs de charge TCP/UDP internes, utilisez
INTERNAL
. - Pour les équilibreurs de charge HTTP(S) internes, utilisez
INTERNAL_MANAGED
.
- Pour les équilibreurs de charge TCP/UDP internes, utilisez
Décrivez la règle de transfert en remplaçant FORWARDING_RULE_NAME par son nom et REGION par sa région :
gcloud compute forwarding-rules describe FORWARDING_RULE_NAME \ --region=REGION \ --format="get(serviceLabel)"
api
Afficher la règle de transfert et le libellé de service via la méthode forwardingRules.get
La réponse à la requête API comprend le libellé de service (serviceLabel
) et le nom DNS interne Compute Engine (serviceName
).
GET https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/forwardingRules/FORWARDING_RULE_NAME
Réponse TCP/UDP :
{ ... "serviceLabel": "SERVICE_LABEL", "serviceName": "SERVICE_LABEL.FORWARDING_RULE_NAME.il4.REGION.lb.PROJECT.internal", ... }
Réponse HTTP(S) :
{ ... "serviceLabel": "SERVICE_LABEL", "serviceName": "SERVICE_LABEL.FORWARDING_RULE_NAME.il7.REGION.lb.PROJECT.internal", ... }
Exemple
La procédure suivante montre comment remplacer une règle de transfert par une règle dotée d'un libellé de service. Cette procédure s'applique pour l'équilibrage de charge TCP/UDP interne et l'équilibrage de charge HTTP interne.
Si vous n'avez pas encore créé de règle de transfert pour votre équilibreur de charge interne, ignorez cet exemple et consultez la page Créer une règle de transfert avec un libellé de service.
Décrivez la règle de transfert existante de votre équilibreur de charge, en indiquant l'adresse IP interne de la règle de transfert :
gcloud compute forwarding-rules describe FORWARDING_RULE_NAME \ --region=REGION \ --format="get(IPAddress)"
Supprimez la règle de transfert :
gcloud compute forwarding-rules delete FORWARDING_RULE_NAME \ --region=REGION
Créez une règle de transfert de remplacement avec le même nom et la même adresse IP interne, et avec un libellé de service. Pour obtenir des instructions, reportez-vous à la page Créer une règle de transfert avec un libellé de service.
Étape suivante
- Consultez la page Concepts d'équilibrage de charge TCP/UDP interne pour les principes de base importants.
- Pour connaître les principes de base importants, consultez les pages Concepts d'équilibrage de charge TCP/UDP interne et Concepts d'équilibrage de charge HTTP(S) interne.
- Pour plus d'informations sur le basculement, consultez la page Concepts de basculement pour l'équilibrage de charge TCP/UDP interne.
- Pour obtenir un exemple de configuration d'équilibreur de charge TCP/UDP interne, consultez la page Configurer l'équilibrage de charge TCP/UDP interne.
- Consultez les pages Configurer l'équilibrage de charge TCP/UDP interne et Configurer l'équilibrage de charge HTTP(S) interne pour obtenir des exemples de configuration d'équilibreur de charge interne.
- Pour obtenir les étapes de configuration, ainsi qu'un exemple de configuration de basculement d'équilibreur de charge TCP/UDP interne, consultez la page Configurer le basculement pour l'équilibrage de charge TCP/UDP interne.
- Pour plus d'informations sur la configuration de Logging et Monitoring pour l'équilibrage de charge TCP/UDP interne, consultez la page Surveillance de l'équilibrage de charge TCP/UDP interne.
- Pour obtenir des informations sur l'accès aux équilibreurs de charge internes à partir de réseaux de pairs connectés à votre réseau VPC, consultez la page Équilibrage de charge interne et réseaux connectés.
- Pour plus d'informations sur la résolution des problèmes liés à votre équilibreur de charge TCP/UDP interne, consultez la page Résoudre les problèmes liés à l'équilibrage de charge interne TCP/UDP.