Mapper les domaines personnalisés

Vous pouvez utiliser un domaine personnalisé pour votre service Cloud Run pour Anthos sur Google Cloud.

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

Si vous utilisez HTTPS, vous devez utiliser la fonctionnalité de certificats TLS gérés ou fournir vos propres certificats pour que les mappages de domaine fonctionnent.

Vous pouvez mapper plusieurs domaines personnalisés au même service Cloud Run pour Anthos.

Avant de commencer

  • Vous devez posséder ou acheter le domaine que vous souhaitez mapper à vos services. Vous pouvez utiliser n'importe quel service d'enregistrement de noms de domaine, mais si vous faites appel à Google Domains ou à Cloud Domains, le domaine est automatiquement validé pour Cloud Run pour Anthos. Ainsi, vous n'aurez pas à passer par le processus de validation du domaine.

    Si vous souhaitez enregistrer un domaine avec Cloud Domains, consultez la section Enregistrer un domaine avec Cloud Domains dans la console Cloud Run for Anthos sur Google Cloud.

  • Si vous utilisez WebSockets dans Cloud Run pour Anthos, vous devez d'abord activer la compatibilité WebSocket en exécutant la commande kubectl suivante afin de 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
    

Mapper un domaine personnalisé à un service

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

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. Le mappage du chemin de base n'est pas disponible. Le terme chemin de base fait référence au nom de chemin d'URL situé après le nom du domaine. Par exemple, users est le chemin de base de example.com/users. Cloud Run pour Anthos vous permet uniquement de mapper un domaine à /, et non à 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 à l'aide de Firebase Hosting.

  5. Cliquez sur Continuer.

  6. Validez la propriété de votre domaine avant d'essayer de l'utiliser dans votre projet Google Cloud, sauf si vous avez acheté votre domaine personnalisé auprès de Google Domains. Par exemple, si vous souhaitez mapper subdomain.example.com à un service, vous devez valider la propriété du domaine 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. Validez la propriété de votre domaine avant d'essayer de l'utiliser dans votre projet Google Cloud, sauf si vous avez acheté votre domaine personnalisé auprès de Google Domains. Vous pouvez déterminer si le domaine personnalisé que vous souhaitez utiliser a été validé à l'aide de la commande suivante :

    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 kuberun core domain-mappings create --service SERVICE --domain DOMAIN
    • Remplacez SERVICE par le nom de votre service.
    • Remplacez DOMAIN par votre domaine personnalisé. Le mappage du chemin de base n'est pas disponible. Le terme chemin de base fait référence au nom de chemin d'URL situé après le nom du domaine. Par exemple, users est le chemin de base de example.com/users. Cloud Run pour Anthos vous permet uniquement de mapper un domaine à /, et non à 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 à l'aide de Firebase Hosting.
  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

    Remplacez :

    • 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 kuberun core domain-mapping describe.
    • REGION par la région que vous utilisez (et non par la zone du cluster).

Passerelle d'entrée Istio de Cloud Run pour Anthos

Pour obtenir l'adresse IP externe de la passerelle d'entrée Istio, exécutez la commande suivante :

kubectl get svc istio-ingress -n gke-system

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

NAME            TYPE           CLUSTER-IP     EXTERNAL-IP  PORT(S)
istio-ingress   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 à un domaine personnalisé dans Cloud Run pour Anthos, vous devez mettre à jour les enregistrements DNS auprès de votre service d'enregistrement de noms de domaine. Pour plus de commodité, Cloud Run pour Anthos 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 pour Anthos au niveau de votre service d'enregistrement de noms de domaine.

Si vous utilisez Cloud DNS comme fournisseur DNS, consultez la section Ajouter un enregistrement.

  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 "Mappages de domaines" de Cloud Run pour Anthos :
      Page "Mappages de domaines"

    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 kuberun core domain-mappings describe [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 à votre service Cloud Run pour Anthos.

  4. Lorsque vous ajoutez chacun des enregistrements DNS ci-dessus au compte au niveau 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

Enregistrer un domaine avec Cloud Domains dans la console Cloud Run for Anthos sur Google Cloud

Pour enregistrer un domaine avec Cloud Domains dans la console Cloud Run for Anthos sur Google Cloud, procédez comme suit :

  1. Accédez à Cloud Run for Anthos sur Google Cloud.
  2. Cliquez sur Gérer les domaines personnalisés.
  3. Cliquez sur Enregistrer le domaine.
  4. Suivez le processus d'enregistrement en suivant les instructions pour enregistrer un domaine.
  5. Mappez votre domaine à Cloud Run pour Anthos et ajoutez des enregistrements DNS au niveau de votre service d'enregistrement de noms de domaine.