Mapper les domaines personnalisés

Vous pouvez utiliser un domaine personnalisé au lieu de l'adresse par défaut fournie par Cloud Run pour un service déployé.

Pour que votre service utilise un domaine personnalisé, vous devez mapper ce service vers le domaine personnalisé, puis mettre à jour vos enregistrements DNS. Vous pouvez mapper un service avec un domaine, tel que example.com, ou à un sous-domaine, tel que subdomain.example.com.

Il n'est pas possible de mapper des domaines personnalisés avec des services Cloud Run (entièrement gérés) dans les régions suivantes : asia-northeast2, australia-southeast1 et northamerica-northeast1.

Si vous utilisez une connexion HTTPS, les points suivants doivent être pris en compte :

  • Pour Cloud Run (entièrement géré), un certificat géré pour les connexions HTTPS est automatiquement émis et renouvelé lorsque vous mappez un service avec un domaine personnalisé. Notez que le provisionnement du certificat SSL prend généralement environ 15 minutes, mais un délai maximal de 24 heures est parfois nécessaire. Vous ne pouvez pas télécharger ni utiliser vos propres certificats.

  • Avec Cloud Run pour Anthos sur Google Cloud, pour que les mappages de domaine fonctionnent, vous devez utiliser la fonctionnalité de certificats TLS gérés ou bien fournir vos propres certificats.

Vous pouvez mapper plusieurs domaines personnalisés avec un même service Cloud Run.

Avant de commencer

Achetez un nouveau domaine, sauf si vous en avez déjà un que vous souhaitez utiliser. Vous pouvez utiliser n'importe quel service d'enregistrement de noms de domaine, mais si vous faites appel à Google Domains, le domaine est automatiquement validé pour Cloud Run, de sorte que vous n'avez pas à passer par le processus de validation du domaine.

Mapper un domaine personnalisé avec un service

Vous pouvez utiliser Google Cloud Console ou l'outil de ligne de commande gcloud pour mapper un domaine personnalisé à un service.

Si vous utilisez WebSockets dans Cloud Run for Anthos sur Google Cloud, vous devez d'abord activer la prise en charge de WebSocket pour votre domaine personnalisé.

Découvrez comment activer la compatibilité de WebSocket avec Cloud Run pour Anthos sur Google Cloud.

Activer la compatibilité WebSocket pour les domaines personnalisés dans Cloud Run pour Anthos sur Google Cloud

Exécutez la commande kubectl pour créer un objet Istio EnvoyFilter avec allow_connect: true :

cat <<EOF | kubectl apply -f -
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  name: allowconnect-cluser-local-gateway
  namespace: gke-system
spec:
  workloadSelector:
    labels:
      app: cluster-local-gateway
  configPatches:
  - applyTo: NETWORK_FILTER
    match:
      listener:
        portNumber: 80
        filterChain:
          filter:
            name: "envoy.http_connection_manager"
    patch:
      operation: MERGE
      value:
        typed_config:
          "@type": "type.googleapis.com/envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager"
          http2_protocol_options:
            allow_connect: true
EOF

Console

  1. Ouvrez la page "Mappages de domaines" dans Google Cloud Console :
    Page "Mappages de domaines"

    Sachez que si votre fenêtre d'affichage est trop petite, le bouton Mapper les domaines personnalisés ne s'affiche pas. Vous devrez donc cliquer sur l'icône d'ellipse verticale à trois points située à droite de cette page.

  2. Sur la page Mappages de domaine, cliquez sur Add mapping (Ajouter un mappage).

  3. Dans la liste déroulante du formulaire Add mapping (Ajouter un mappage), sélectionnez le service vers lequel vous mappez le domaine personnalisé :

    Ajouter des mappages de domaine

  4. Saisissez le nom du domaine.

  5. Cliquez sur Continuer.

  6. Pour Cloud Run (entièrement géré), vous devez valider la propriété d'un domaine avant de pouvoir l'utiliser, sauf si vous l'avez acheté auprès de Google. Si vous souhaitez mapper subdomain.example.com, vous devez valider la propriété de example.com. Pour en savoir plus sur le processus de validation de la propriété d'un domaine, consultez l'aide du Centre pour les webmasters.

  7. Mettez à jour vos enregistrements DNS sur le site Web de votre service d'enregistrement de noms de domaine avec les enregistrements DNS affichés à l'étape précédente. Vous pouvez afficher les enregistrements à tout moment en cliquant sur DNS Records (Enregistrements DNS) dans le menu d'actions "..." d'un mappage de domaine.

  8. Cliquez sur OK.

Ligne de commande

  1. Pour Cloud Run (entièrement géré) seulement, vous devez valider la propriété du domaine la première fois que vous l'utilisez dans le projet Google Cloud, sauf si vous avez acheté votre domaine personnalisé auprès de Google. Vous pouvez déterminer si le domaine personnalisé que vous souhaitez utiliser a été validé à l'aide de la commande.

    gcloud domains list-user-verified

    Si vous devez valider la propriété de votre domaine, ouvrez la page de validation du Centre pour les webmasters :

    gcloud domains verify BASE-DOMAIN

    BASE-DOMAIN est le domaine de base que vous souhaitez valider. Par exemple, si vous souhaitez mapper subdomain.example.com, vous devez valider la propriété de example.com.

    Dans le Centre pour les webmasters, effectuez le processus de validation de propriété de domaine. Pour en savoir plus, consultez l'aide du Centre pour les webmasters.

  2. Mappez votre service avec le domaine personnalisé :

    gcloud beta run domain-mappings create --service SERVICE --domain DOMAIN
    • Remplacez SERVICE par le nom de votre service.
    • Remplacez DOMAIN par votre domaine personnalisé, par exemple example.com ou subdomain.example.com.
  3. Si vous utilisez Cloud Run pour Anthos sur Google Cloud, réservez l'adresse IP associée à l'équilibreur de charge pour le service de passerelle d'entrée Istio en tant qu'adresse IP statique :

    gcloud compute addresses create ADDRESS-NAME --addresses EXTERNAL-IP --region REGION

    Remplacer

    • ADDRESS-NAME par le nom que vous souhaitez donner à votre adresse IP statique ;
    • EXTERNAL-IP par l'adresse IP de l'enregistrement A obtenu à l'étape précédente à l'aide de gcloud run domain-mapping describe ;
    • REGION par la région que vous utilisez. (Et non par la zone du cluster).

Passerelle d'entrée Istio Cloud Run

Pour obtenir l'adresse IP externe de la passerelle d'entrée Istio, procédez comme suit :

kubectl get svc ISTIO-GATEWAY -n NAMESPACE 
Remplacez ISTIO-GATEWAY et NAMESPACE comme suit :
Version du cluster ISTIO-GATEWAY NAMESPACE
1.15.3-gke.19 et versions ultérieures
1.14.3-gke.12 et versions ultérieures
1.13.10-gke.8 et versions ultérieures
istio-ingress gke-system
Toutes les autres versions istio-ingressgateway istio-system

où le résultat ressemble à ce qui suit :

NAME            TYPE           CLUSTER-IP     EXTERNAL-IP  PORT(S)
ISTIO-GATEWAY    LoadBalancer   XX.XX.XXX.XX   pending     80:32380/TCP,443:32390/TCP,32400:32400/TCP

La valeur EXTERNAL-IP de l'équilibreur de charge est l'adresse IP que vous devez utiliser.

Ajouter des enregistrements DNS à votre compte de service d'enregistrement de noms de domaine

Une fois que vous avez mappé votre service avec un domaine personnalisé dans Cloud Run, vous devez mettre à jour les enregistrements DNS auprès de votre service d'enregistrement de noms de domaine. Pour plus de commodité, Cloud Run génère et affiche les enregistrements DNS que vous devez saisir. Pour que le mappage soit effectif, vous devez ajouter ces enregistrements, qui pointent vers le service Cloud Run, à votre compte de service d'enregistrement de noms de domaine.

  1. Récupérez les informations d'enregistrement DNS correspondant à votre mappage de domaine en utilisant les méthodes suivantes :

    Console

    1. Accédez à la page "Domain mappings" (Mappages de domaine) de Cloud Run :
      Page "Mappages de domaine"

    2. Cliquez sur l'icône d'ellipse verticale à trois points située à droite de votre service, puis cliquez sur DNS RECORDS (Enregistrements DNS) pour afficher tous les enregistrements DNS :

    sélectionner les enregistrements DNS

    Ligne de commande

    gcloud beta run domain-mappings describe --domain [DOMAIN]

    Remplacez [DOMAIN] par votre domaine personnalisé, par exemple example.com ou subdomain.example.com.

    Vous avez besoin de tous les enregistrements renvoyés sous l'en-tête resourceRecords.

  2. Connectez-vous au compte que vous avez créé auprès du service d'enregistrement de noms de domaine, puis ouvrez la page de configuration DNS.

  3. Recherchez la section des enregistrements d'hôtes sur la page de configuration de votre domaine, puis ajoutez chacun des enregistrements de ressources que vous avez reçus lorsque vous avez mappé votre domaine avec votre service Cloud Run.

  4. Lorsque vous ajoutez chacun des enregistrements DNS ci-dessus au compte du fournisseur DNS, procédez comme suit :

    • Sélectionnez le type renvoyé dans l'enregistrement DNS à l'étape précédente : A, AAAA ou CNAME.
    • Utilisez le nom www pour le mappage avec www.example.com.
    • Utilisez le nom @ pour le mappage avec example.com.
  5. Enregistrez les modifications dans la page de configuration DNS du compte du domaine. Dans la plupart des cas, ces modifications prennent effet en quelques minutes seulement, mais dans certains cas, cela peut prendre plusieurs heures. Tout dépend du bureau d'enregistrement et de la valeur TTL (Time To Live) des enregistrements DNS précédents pour votre domaine. Vous pouvez utiliser un outil dig, tel que la version en ligne de dig, pour vérifier que les enregistrements DNS ont bien été mis à jour.

  6. Vérifiez si la procédure a été exécutée correctement en accédant à votre service via sa nouvelle URL (par exemple, https://www.example.com). Notez que l'émission du certificat SSL géré peut prendre plusieurs minutes.

Ajouter des propriétaires de domaine validés à d'autres utilisateurs ou comptes de service

Lorsqu'un utilisateur valide un domaine, ce dernier est validé seulement pour le compte de cet utilisateur. Cela signifie que seul cet utilisateur peut ajouter d'autres mappages utilisant ce domaine. Par conséquent, pour permettre à d'autres utilisateurs d'ajouter des mappages utilisant ce domaine, vous devez les ajouter en tant que propriétaires validés.

Si vous devez ajouter des utilisateurs ou des comptes de service en tant que propriétaires validés de votre domaine, vous pouvez ajouter une autorisation via la page du Centre pour les webmasters. Pour ce faire, procédez comme suit :

  1. Dans votre navigateur Web, accédez à l'adresse suivante :

    https://www.google.com/webmasters/verification/home

  2. Sous Propriétés, cliquez sur le domaine pour lequel vous souhaitez ajouter un utilisateur ou un compte de service.

  3. Faites défiler l'écran vers le bas jusqu'à la liste Propriétaires validés, cliquez sur Ajouter un propriétaire, puis saisissez l'adresse e-mail du compte Google ou l'ID du compte de service.

    Pour afficher la liste de vos comptes de service, ouvrez la page "Comptes de service" dans Cloud Console :

    Accéder à la page "Comptes de service"

Mappage de chemin de base : non compatible

Le terme chemin de base fait référence au nom du chemin d'URL situé après le nom du domaine. Par exemple, users est le chemin de base de example.com/users. Cloud Run vous permet seulement de mapper un domaine avec /, et non avec un chemin de base spécifique. Ainsi, tout routage de chemin d'accès doit être géré à l'aide d'un routeur à l'intérieur du conteneur du service ou de Firebase Hosting.