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
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 à Cloud Domains, le domaine est automatiquement validé pour Knative serving, de sorte que vous n'avez 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 Knative serving.
Vous devez au moins disposer du rôle Identity and Access Management de développeur Kubernetes Engine ou d'autorisations équivalentes.
Pour activer HTTPS avec vos mappages de domaines personnalisés, vous devez configurer des certificats TLS gérés ou configurer vos propres certificats.
Pour mapper un domaine personnalisé à votre cluster ou à vos services dans un réseau privé interne, vous devez désactiver les certificats TLS gérés.
Mapper un domaine personnalisé
Vous pouvez utiliser Google Cloud Console 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 :
- Facultatif : Réservez l'adresse IP de votre équilibreur de charge.
- Mappez vos services ou le cluster au domaine personnalisé dans Knative serving.
- 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 :
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 :- Accédez à la page GKE dans la console Google Cloud :
Accéder à GKE - Cliquez sur Services et entrées.
- 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
. - 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 que00.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.
- Accédez à la page GKE dans la console Google Cloud :
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 cartographie
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
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.
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.
Dans la liste déroulante du formulaire Add mapping (Ajouter un mappage), sélectionnez le service vers lequel vous souhaitez mapper votre domaine personnalisé :
Saisissez le nom du domaine. Par exemple,
your-domain.com
ousubdomain.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 deyour-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'adressetest.default.your-domain.com
, vous ne devez pas créer de mappage de domaine sur le même sous-domainetest.default.
your-domain.com
.
- 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,
Cliquez sur Continuer.
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.
Cliquez sur OK.
gcloud
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
ousubdomain.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 deyour-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'adressetest.default.your-domain.com
, vous ne devez pas créer de mappage de domaine sur le même sous-domainetest.default.
your-domain.com
.
- 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,
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
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.
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é.
Cochez la case pour appliquer votre nouveau mappage de domaine à tous les services existants de votre cluster.
Dans la liste déroulante du formulaire Add mapping (Ajouter un mappage), sélectionnez le cluster sur lequel vous souhaitez mapper votre domaine personnalisé :
Saisissez le nom du domaine. Par exemple,
your-domain.com
ousubdomain.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 deyour-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'adressetest.default.your-domain.com
, vous ne devez pas créer de mappage de domaine sur le même sous-domainetest.default.
your-domain.com
.
- 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,
Cliquez sur Continuer.
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.
Cliquez sur OK.
kubectl
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
ousubdomain.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 deyour-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'adressetest.default.your-domain.com
, vous ne devez pas créer de mappage de domaine sur le même sous-domainetest.default.
your-domain.com
.
- 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,
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.
Récupérez les informations d'enregistrement DNS correspondant à votre mappage de domaine en utilisant les méthodes suivantes :
Console
Accédez à la page "Mappages de domaine Knative serving" :
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
ousubdomain.your-domain.com
.Vous avez besoin de tous les enregistrements renvoyés sous l'en-tête
resourceRecords
.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.
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.
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
ouCNAME
. - Utilisez le nom
www
pour le mappage avecwww.your-domain.com
. - Utilisez le nom
@
pour le mappage avecyour-domain.com
. - Utilisez le caractère générique
*
pour le mappage avec*.your-domain.com
.
- Sélectionnez le type renvoyé dans l'enregistrement DNS à l'étape précédente :
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 dedig
, pour vérifier que les enregistrements DNS ont bien été mis à jour.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 :
Dans votre navigateur Web, accédez à l'adresse suivante :
Sous Propriétés, cliquez sur le domaine pour lequel vous souhaitez ajouter un utilisateur ou un compte de service.
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 :
Enregistrer un domaine avec Cloud Domains dans la console Knative serving
Pour enregistrer un domaine avec Cloud Domains à partir de la console Knative serving :
Accédez à la page "Mappages de domaine Knative serving" :
Cliquez sur Enregistrer le domaine.
Suivez le processus d'enregistrement en suivant les instructions pour enregistrer un domaine.
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.