Utiliser des domaines de test

Découvrez comment accéder aux services de diffusion Knative dans votre cluster à des fins de test avant de choisir de mapper un domaine personnalisé.

Par défaut, les services que vous déployez sur vos clusters de diffusion Knative sont définis sur le domaine de base nip.io. Par conséquent, si vous utilisez le nom recommandé pour la passerelle d'entrée, vous pouvez immédiatement tester vos services et envoyer des requêtes sans configuration supplémentaire. Exemple : http://{SERVICE_NAME}.{NAMESPACE}.kuberun.{EXTERNAL_IP}.nip.io.

Notez que vous pouvez rencontrer des problèmes au niveau de la fiabilité des requêtes lorsque vous utilisez des DNS génériques, y compris le domaine nip.io, qui est un service DNS wildcard gratuit. En revanche, la configuration et l'utilisation d'un domaine personnalisé à des fins de tests peuvent offrir une fiabilité accrue.

Vous pouvez également accéder à vos services via l'adresse IP externe.

Utiliser le domaine de test nip.io

Pour accéder à un service à l'aide du domaine de base nip.io par défaut, vous pouvez localiser l'URL depuis Google Cloud Console ou créer l'URL manuellement.

Console

  1. Dans la console Google Cloud, accédez à la page Diffusion Knative.

    Accéder à l'inférence Knative

  2. Dans la liste, cliquez sur le service pour lequel vous souhaitez obtenir l'URL.

  3. En haut de la page, l'URL s'affiche.

    Par exemple : http://my-service.default.kuberun.11.111.11.111.nip.io

    my-service est le nom du service de diffusion Knative, default est l'espace de noms et 11.111.11.111 est l'adresse IP de votre équilibreur de charge externe.

Manuellement

Pour créer manuellement l'URL de votre service, utilisez le nom du service, l'espace de noms dans lequel ce service est exécuté et l'adresse IP de votre équilibreur de charge :

http://SERVICE.NAMESPACE.kuberun.EXTERNAL_IP.nip.io

Remplacez :

  • SERVICE_NAME par le nom de votre service.
  • NAMESPACE par l'espace de noms dans lequel vous avez déployé le service. Par défaut, les services sont déployés dans l'espace de noms default.
  • EXTERNAL_IP par l'adresse IP externe de votre équilibreur de charge.

Par exemple, si vous avez un service nommé hello dans l'espace de noms default et que votre adresse IP externe est 12.345.67.890, l'URL peut se présenter comme suit :

http://hello.default.kuberun.12.345.67.890.nip.io

Utiliser l'adresse IP externe

Vous pouvez éventuellement utiliser l'adresse IP externe de votre équilibreur de charge pour accéder à vos services via des commandes cURL ou en configurant manuellement un autre service DNS wildcard.

Avant de commencer

Obtenir l'adresse IP externe

Lorsque votre cluster GKE Enterprise est créé, le contrôleur d'entrée Istio crée un équilibreur de charge réseau Google Cloud avec une adresse IP accessible au public.

Pour configurer l'accès à votre service avec cURL ou un service DNS, vous devez d'abord obtenir l'adresse IP externe du service d'équilibrage 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 Anthos Service Mesh. Spécifiez istio-system si vous avez installé Anthos 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.

Une fois que vous avez obtenu l'adresse IP externe de votre équilibreur de charge, vous pouvez l'utiliser dans les commandes cURL ou avec un service de caractères génériques DNS pour accéder à vos services de diffusion Knative.

Utiliser cURL

Vous pouvez utiliser des commandes cURL avec le domaine de base nip.io par défaut pour envoyer des requêtes à votre service.

Spécifiez l'adresse IP externe de votre équilibreur de charge, ainsi que les noms de votre service et de votre espace de noms dans la commande cURL :

curl --header 'Host: SERVICE_NAME.NAMESPACE.kuberun.EXTERNAL_IP.nip.io' EXTERNAL_IP

Remplacez :

  • SERVICE_NAME par le nom de votre service de diffusion Knative.
  • NAMESPACE par l'espace de noms dans lequel votre service s'exécute ;
  • EXTERNAL_IP par l'adresse IP externe de votre équilibreur de charge.

Exemple :

curl --header 'Host: my-service.default.kuberun.12.345.67.890.nip.io' http://12.345.67.890

Utiliser d'autres services DNS wildcard

Par défaut, vos services de diffusion Knative utilisent le service générique DNS nip.io. Vous pouvez toutefois choisir d'utiliser d'autres services tels que sslip.io. Pour configurer d'autres services génériques DNS, vous devez d'abord obtenir l'adresse IP externe de votre équilibreur de charge, puis utiliser cette adresse IP pour configurer le service générique DNS.

Configurer le domaine de votre cluster

La diffusion Knative utilise le ConfigMap config-domain pour définir le domaine de base utilisé par tous vos services de diffusion Knative déployés. Vous pouvez mettre à jour ce ConfigMap via Google Cloud Console ou à l'aide des commandes kubectl.

Console

Pour remplacer le domaine de base par défaut nip.io par l'un des services DNS wildcard dans la console Google Cloud, procédez comme suit :

  1. Dans la console Google Cloud, accédez à la page Mappages de domaines de diffusion Knative:

    Accéder aux 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 de diffusion Knative déployés sur ce cluster".

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

  5. Dans le champ Domaine, saisissez le nom du site à DNS générique que vous souhaitez utiliser. Exemple : sslip.io

kubectl

Pour remplacer le domaine de base par défaut nip.io par l'un des sites à DNS générique, utilisez la commande suivante :

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

Remplacer

  • EXTERNAL_IP par l'adresse IP externe de l'équilibreur de charge ;
  • DNS_SERVICE par le site DNS wildcard que vous utilisez. Exemple : sslip.io

Votre service est maintenant disponible sur http://{SERVICE_NAME}.{NAMESPACE}.kuberun.{EXTERNAL_IP}.{DNS_SERVICE}.