Mapper les domaines personnalisés

Configurez des domaines personnalisés à utiliser pour accéder à vos services Knative serving. Vous pouvez mapper un ou plusieurs domaines personnalisés à un service individuel, ou mapper un seul domaine à votre cluster que tous les services utilisent. Le mappage de domaine personnalisé peut être le domaine de base, tel que your-domain.com ou un sous-domaine, tel que your-subdomain.your-domain.com.

Par défaut, les services que vous déployez sur vos clusters Knative serving sont définis sur le domaine de base nip.io. Cela vous permet de tester immédiatement vos services sur une URL telle que :

http://{SERVICE_NAME}.{NAMESPACE}.kuberun.{EXTERNAL_IP}.nip.io

Apprenez-en plus sur les domaines de test.

Avant de commencer

Mapper un domaine personnalisé

Vous pouvez utiliser la console Google Cloud ou les outils de ligne de commande pour mapper votre domaine personnalisé.

En règle générale, pour configurer un domaine personnalisé, vous devez procéder comme suit :

  1. Facultatif : Réservez l'adresse IP de votre équilibreur de charge.
  2. Mappez vos services ou le cluster au domaine personnalisé dans Knative serving.
  3. Mettez à jour les enregistrements DNS dans votre bureau d'enregistrement de noms de domaine.

Réserver l'adresse IP de l'équilibreur de charge

Lorsque Knative serving est installé, le contrôleur d'entrée Istio crée un équilibreur de charge avec une adresse IP disponible.

Selon votre cluster GKE, vous devrez peut-être réserver l'adresse IP de l'équilibreur de charge pour le contrôleur d'entrée Istio :

En dehors de Google Cloud
Consultez la documentation de l'environnement dans lequel vous exécutez votre cluster GKE pour déterminer la façon dont les adresses IP sont gérées et si l'adresse IP de votre équilibreur de charge est statique. Consultez également les pages de configuration de votre cluster GKE. Par exemple, selon la configuration de l'équilibrage de charge pour Google Distributed Cloud, vous avez peut-être déjà réservé ces adresses IP.
Sur Google Cloud

Vous devez réserver l'adresse IP externe de l'équilibreur de charge pour vous assurer qu'elle reste identique si votre service d'entrée est supprimé. Selon la configuration de votre cluster, l'adresse IP est disponible en externe ou en interne seulement, par exemple des clusters privés.

Équilibreurs de charge internes sur Google Cloud
Consultez la page suivante pour savoir comment réserver l'adresse IP de votre équilibreur de charge interne : Réserver une adresse IP interne statique
Équilibreurs de charge externes sur Google Cloud
Pour réserver l'adresse IP de votre équilibreur de charge externe, procédez comme suit :
  1. Obtenez l'adresse IP de l'équilibreur de charge :

    Console

    Pour obtenir l'adresse IP externe de l'équilibreur de charge à partir de Google Cloud Console, procédez comme suit :
    1. Accédez à la page GKE dans la console Google Cloud :
      Accéder à GKE
    2. Cliquez sur Services et entrées.
    3. Identifiez le service correspondant à l'entrée Istio de votre cluster. Le type de service est Équilibreur de charge externe et le Nom est istio-ingressgateway.
    4. Une fois que vous avez trouvé le service d'entrée Istio de votre cluster, copiez son point de terminaison. Il s'agira de l'adresse IP sans le numéro de port. Par exemple, 00.000.000.000:11 peut être répertorié en tant que point de terminaison, mais vous ne devez copier que 00.000.000.000.

    kubectl

    Pour obtenir l'adresse IP externe de l'équilibreur de charge, exécutez la commande suivante :

    kubectl get svc istio-ingressgateway -n ASM-INGRESS-NAMESPACE

    Remplacez ASM-INGRESS-NAMESPACE par l'espace de noms où se trouve votre entrée Cloud Service Mesh. Spécifiez istio-system si vous avez installé Cloud Service Mesh à l'aide de sa configuration par défaut.

    La sortie ressemble à ceci :

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

    où la valeur EXTERNAL-IP est votre adresse IP externe de l'équilibreur de charge.

  2. Réservez l'adresse IP 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 externe de l'équilibreur de charge obtenue à l'étape précédente ;
    • REGION par la région où se trouve votre cluster.

Une fois que vous avez obtenu l'adresse IP de votre équilibreur de charge, vous pouvez l'utiliser pour mapper votre domaine personnalisé :

Services de mappage

Choisissez l'une des méthodes suivantes pour mapper votre domaine personnalisé à un service Knative serving. Chaque service individuel peut être mappé sur plusieurs domaines.

Console

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

    Accéder aux 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. Cliquez sur Ajouter un mappage, puis sélectionnez Ajouter un mappage de domaine pour le service afin de mapper un domaine à un service individuel. Vous pouvez mapper plusieurs domaines à chaque service.

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

  4. Saisissez le nom du domaine. Par exemple, your-domain.com ou subdomain.your-domain.com. Exigences relatives au 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 your-domain.com/users. Knative serving 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.
    • Vous ne pouvez pas mapper votre domaine à un sous-domaine qui correspond à l'URL de vos services. Les URL d'un service sont définies comme suit : http://{service}.{namespace}.{your-domain.com} Par conséquent, si vous avez un service à l'adresse test.default.your-domain.com, vous ne devez pas créer de mappage de domaine sur le même sous-domaine test.default.your-domain.com.

  5. Cliquez sur Continuer.

  6. 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.

  7. Cliquez sur OK.

gcloud

  1. Mappez votre service avec le domaine personnalisé :

    gcloud run domain-mappings create --service SERVICE --domain DOMAIN

    Remplacez :

    • SERVICE par le nom de votre service.
    • DOMAIN par votre domaine personnalisé. Par exemple, your-domain.com ou subdomain.your-domain.com. Exigences relatives au 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 your-domain.com/users. Knative serving 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.
      • Vous ne pouvez pas mapper votre domaine à un sous-domaine qui correspond à l'URL de vos services. Les URL d'un service sont définies comme suit : http://{service}.{namespace}.{your-domain.com} Par conséquent, si vous avez un service à l'adresse test.default.your-domain.com, vous ne devez pas créer de mappage de domaine sur le même sous-domaine test.default.your-domain.com.

Maintenant que votre domaine personnalisé est mappé à Knative serving, vous devez ajouter des enregistrements DNS à votre bureau d'enregistrement de noms de domaine.

Mapper des clusters

Choisissez l'une des méthodes suivantes pour mapper le domaine personnalisé à votre cluster :

Console

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

    Accéder aux 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. Cliquez sur Ajouter un mappage, puis sélectionnez Ajouter un domaine par défaut pour mapper un domaine à tous les services de votre cluster. Par défaut, les nouveaux services que vous déployez utilisent le domaine mappé.

  3. Cochez la case pour appliquer votre nouveau mappage de domaine à tous les services existants de votre cluster.

  4. Dans la liste déroulante du formulaire Add mapping (Ajouter un mappage), sélectionnez le cluster sur lequel vous souhaitez mapper votre domaine personnalisé :

  5. Saisissez le nom du domaine. Par exemple, your-domain.com ou subdomain.your-domain.com. Exigences relatives au 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 your-domain.com/users. Knative serving 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.
    • Vous ne pouvez pas mapper votre domaine à un sous-domaine qui correspond à l'URL de vos services. Les URL d'un service sont définies comme suit : http://{service}.{namespace}.{your-domain.com} Par conséquent, si vous avez un service à l'adresse test.default.your-domain.com, vous ne devez pas créer de mappage de domaine sur le même sous-domaine test.default.your-domain.com.

  6. Cliquez sur Continuer.

  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.

kubectl

  1. Exécutez la commande suivante pour supprimer le domaine de base existant du fichier ConfigMap config-domain et le remplacer par votre domaine personnalisé :

    kubectl patch configmap config-domain --namespace knative-serving --patch \
    '{"data": {"nip.io": null, "DOMAIN": ""}}'

    Remplacez DOMAIN par votre domaine personnalisé. Par exemple, your-domain.com ou subdomain.your-domain.com. Exigences relatives au 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 your-domain.com/users. Knative serving 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.
    • Vous ne pouvez pas mapper votre domaine à un sous-domaine qui correspond à l'URL de vos services. Les URL d'un service sont définies comme suit : http://{service}.{namespace}.{your-domain.com} Par conséquent, si vous avez un service à l'adresse test.default.your-domain.com, vous ne devez pas créer de mappage de domaine sur le même sous-domaine test.default.your-domain.com.

Maintenant que votre domaine personnalisé est mappé à Knative serving, vous devez ajouter des enregistrements DNS à votre bureau d'enregistrement de noms de domaine.

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 Knative serving, vous devez mettre à jour les enregistrements DNS auprès de votre service d'enregistrement de noms de domaine. Pour plus de commodité, Knative serving 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 Knative serving, à votre bureau 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 domaine Knative serving" :

      Accéder aux 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 :

    gcloud

    gcloud run domain-mappings describe --domain DOMAIN

    Remplacez DOMAIN par votre domaine personnalisé. Par exemple, your-domain.com ou subdomain.your-domain.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 Knative serving.

  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.your-domain.com.
    • Utilisez le nom @ pour le mappage avec your-domain.com.
    • Utilisez le caractère générique * pour le mappage avec *.your-domain.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.your-domain.com). Notez que l'émission du certificat SSL/TLS 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 de Search Console :

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

    https://search.google.com/search-console/welcome

  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 des 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 la console Google Cloud :

    Accéder à la page "Comptes de service"

Enregistrer un domaine avec Cloud Domains dans la console Knative serving

Pour enregistrer un domaine avec Cloud Domains à partir de la console Knative serving :

  1. Accédez à la page "Mappages de domaine Knative serving" :

    Accéder aux mappages de domaines

  2. Cliquez sur Enregistrer le domaine.

  3. Suivez le processus d'enregistrement en suivant les instructions pour enregistrer un domaine.

  4. Suivez les étapes précédentes de cette page pour mapper votre domaine à Knative serving, puis ajoutez des enregistrements DNS à votre bureau d'enregistrement de noms de domaine.

Dépannage

Consultez les problèmes courants dans Résoudre les problèmes liés aux domaines personnalisés et aux certificats TLS gérés.