Utiliser un domaine de test

Apprenez à utiliser les enregistrements DNS génériques afin de configurer un domaine pour votre cluster. Vous devez configurer un domaine pour permettre à vos services d'accepter des requêtes et vous permettre d'y accéder à des fins de test.

Par défaut, vos clusters Cloud Run for Anthos sur Google Cloud utilisent le domaine de base example.com et n'autorisent pas les requêtes adressées à vos services. Par exemple, l'envoi de requêtes à http://{service}.{namespace}.example.com échoue.

Pour permettre aux services de votre cluster d'accepter des requêtes, vous devez configurer votre domaine de manière à utiliser l'un des éléments suivants :

  • Service d'enregistrement DNS wildcard gratuit
  • Domaine personnalisé dont vous êtes le propriétaire (pour en savoir plus, consultez la page Mapper des domaines personnalisés)

Les enregistrements DNS wildcard ne doivent être utilisés qu'à des fins de tests en raison de problèmes liés à la fiabilité des requêtes. En savoir plus sur les enregistrements DNS wildcard.

Avant de commencer

Vérifiez que vous avez bien installé et configuré le SDK Cloud et kubectl.

Choisir entre un service DNS wildcard et un domaine personnalisé

Pendant vos phases de développement et de test, vous pouvez modifier le domaine par défaut pour utiliser un site de test DNS wildcard. Voici quelques exemples :

Si vous possédez déjà un domaine que vous souhaitez utiliser à des fins de test ou si vous souhaitez acheter un domaine à des fins de test, vous pouvez définir le domaine par défaut pour qu'il utilise votre propre domaine. Un domaine personnalisé offre une meilleure fiabilité lors des tests.

Obtenir l'adresse IP externe

Avant de continuer, vous devez obtenir l'adresse IP externe du service d'équilibrage de charge créé pour le contrôleur d'entrée Istio.

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" de Cloud Console :
    Accéder à la page "GKE"

  2. Cliquez sur Services et entrées.

  3. Identifiez le service correspondant au contrôleur d'entrée Istio de votre cluster. Le type de service sera défini sur Équilibreur de charge externe. Le tableau suivant indique le nom du service en fonction de la version de votre cluster :

    Version du cluster ISTIO-GATEWAY
    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
    Toutes les autres versions istio-ingressgateway
  4. Une fois que vous avez trouvé le contrôleur 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.

Ligne de commande

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.

Si vous utilisez un service wildcard, vous avez besoin de l'adresse IP externe lorsque vous modifiez la configuration du cluster. Si vous utilisez votre propre domaine personnalisé, vous avez besoin de l'adresse IP externe pour créer ou mettre à jour un enregistrement auprès de votre bureau d'enregistrement de domaine.

Configurer le domaine de votre cluster

Cloud Run for Anthos se sert du fichier ConfigMap config-domain pour définir le domaine de base de tous les services déployés dans le cluster. La commande permettant de modifier cette configuration varie selon que vous utilisez un service DNS générique ou un domaine personnalisé dont vous êtes propriétaire. Si vous souhaitez mettre à jour le domaine de cluster par défaut ultérieurement, répétez ces étapes avec des valeurs différentes.

Effectuer des tests avec un service DNS wildcard

xip.io explique comment configurer votre domaine de manière à utiliser un service DNS wildcard, mais vous pouvez le remplacer par le service de votre choix.

Console

Pour remplacer le domaine de base par défaut example.com par l'un des services DNS wildcard (par exemple, xip.io) dans Cloud Console, procédez comme suit :

  1. Accédez à la page Mappage de domaines Cloud Run for Anthos dans Google Cloud Console :
    Accéder à la page "Mappages de domaines"

  2. Sélectionnez Ajouter un mappage > Ajouter un domaine par défaut pour le cluster.

  3. Cochez la case "Appliquer ce mappage de domaine à tous les services Cloud Run for Anthos déployés sur le cluster".

  4. Sélectionnez votre cluster dans le menu déroulant.

  5. Dans le champ Domaine, saisissez [EXTERNAL-IP].xip.io. Remplacez :

    • [EXTERNAL-IP] par l'adresse IP externe de l'équilibreur de charge ;

    • xip.io par le site DNS wildcard que vous utilisez.

Ligne de commande

Pour remplacer le domaine de base par défaut example.com par l'un des sites DNS wildcard (par exemple, xip.io) dans Cloud Console, utilisez la commande suivante :

kubectl patch configmap config-domain --namespace knative-serving --patch \
  '{"data": {"example.com": null, "[EXTERNAL-IP].xip.io": ""}}'

Remplacez

  • [EXTERNAL-IP] par l'adresse IP externe de l'équilibreur de charge ;
  • xip.io par le site DNS wildcard que vous utilisez.

Votre service est maintenant disponible sur {service-name}.{namespace}.{[EXTERNAL-IP].xip.io}.

Effectuer des tests avec un domaine personnalisé

Si vous souhaitez utiliser votre propre domaine personnalisé pour effectuer des tests, les étapes suivantes vous aideront à le configurer.

Commencez par mettre à jour le fichier ConfigMap du cluster pour qu'il pointe vers votre domaine :

Console

  1. Accédez à la page Mappage de domaines Cloud Run for Anthos dans Google Cloud Console :
    Accéder à la page "Mappages de domaines"

  2. Sélectionnez Ajouter un mappage > Ajouter un domaine par défaut pour le cluster.

  3. Cochez la case "Appliquer ce mappage de domaine à tous les services Cloud Run for Anthos déployés sur le cluster".

  4. Sélectionnez votre cluster dans le menu déroulant.

  5. Dans le champ Domaine, saisissez votre nom de domaine. Exemple : example.com.

Ligne de commande

Spécifiez votre domaine personnalisé à l'aide de la commande suivante :

kubectl patch configmap config-domain --namespace knative-serving --patch \
'{"data": {"example.com": null, "[DOMAIN]": ""}}'

Remplacez [DOMAIN] par votre propre domaine, par exemple mydomain.com. La commande ci-dessus supprime example.com du fichier ConfigMap et ajoute mydomain.com comme domaine de base par défaut. Si vous souhaitez à nouveau remplacer ce domaine par un autre, vous pouvez répéter cette commande en utilisant des valeurs différentes.

Vous devez effectuer les étapes suivantes sur le site Web de votre bureau d'enregistrement de domaine :

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

  2. Recherchez la section des enregistrements d'hôtes sur la page de configuration de votre domaine, puis ajoutez les enregistrements de ressources dont vous avez besoin.

    1. Pour ajouter un enregistrement DNS au fournisseur DNS, procédez comme suit :

      • Sélectionnez le type d'enregistrement A.
      • Fournissez le caractère générique *, comme indiqué dans l'exemple suivant :

        dns générique

    2. 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 TIL (Time To Live) de tout enregistrement DNS précédemment enregistré pour votre domaine.

Après avoir mis à jour vos enregistrements DNS et les avoir fait pointer vers votre cluster, votre service sera disponible sur {service-name}.{namespace}.{your-domain}.