Découvrez comment accéder aux services Knative serving de 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 Knative serving 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 générique 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 la console Google Cloud ou créer l'URL manuellement.
Console
Dans la console Google Cloud, accédez à la page Knative serving.
Dans la liste, cliquez sur le service pour lequel vous souhaitez obtenir l'URL.
En haut de la page, l'URL s'affiche.
Par exemple :
http://my-service.default.kuberun.11.111.11.111.nip.io
Où my-service correspond au nom du service Knative serving, default à l'espace de noms et 11.111.11.111 à 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
Assurez-vous que vos outils de ligne de commande Google Cloud CLI et kubectl sont installés et à jour :
Vous devez au moins disposer du rôle Identity and Access Management de développeur Kubernetes Engine ou d'autorisations équivalentes.
Obtenir l'adresse IP externe
Lors de la création de votre cluster GKE Enterprise, le contrôleur d'entrée Istio crée un équilibreur de charge réseau Google Cloud avec une adresse IP publique.
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 :- 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.
Après avoir obtenu l'adresse IP externe de votre équilibreur de charge, vous pouvez l'utiliser dans les commandes cURL ou avec un service DNS wildcard pour accéder à vos services Knative serving.
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 Knative serving ;
- 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 Knative serving 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
Knative serving utilise le fichier ConfigMap config-domain
pour définir le domaine de base utilisé par tous vos services Knative serving 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 :
Accédez à la page Mappages de domaines de Knative serving dans la console Google Cloud :
Sélectionnez Ajouter un mappage > Ajouter un domaine par défaut pour le cluster.
Cochez la case à côté de "Appliquer ce mappage de domaine à tous les services Knative serving déployés sur ce cluster".
Sélectionnez votre cluster dans le menu déroulant.
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}
.