Utiliser Bridge to Kubernetes avec un exemple
Note
Bridge to Kubernetes sera mis hors service le 30 avril 2025. Pour plus d’informations sur la mise hors service et les alternatives open source, consultez le problème GitHub.
Cet exemple montre comment Bridge to Kubernetes peut être utilisé pour développer une version de microservice d’une application TODO simple sur n’importe quel cluster Kubernetes. Cet exemple, à l’aide de Visual Studio Code, a été adapté à partir du code fourni par TodoMVC. Dans cet exemple, nous utilisons MiniKube pour héberger l’application, mais ces étapes doivent fonctionner avec n’importe quel cluster Kubernetes.
L’exemple d’application TODO est composé d’un serveur frontal et d’un back-end qui fournit un stockage persistant. Cet exemple étendu ajoute un composant de statistiques et divise l’application en un certain nombre de microservices, notamment :
- Le serveur frontal appelle l’API de base de données pour conserver et mettre à jour les éléments TODO ;
- Le service database-api s’appuie sur une base de données Mongo pour conserver les éléments TODO ;
- Le serveur front-end écrit des événements d’ajout, de fin et de suppression dans une file d’attente RabbitMQ ;
- Un travailleur en statistiques reçoit des événements de la file RabbitMQ et met à jour un cache Redis.
- Une API de statistiques expose les statistiques mises en cache pour que le serveur frontal les affiche.
Dans tous les cas, cette application TODO étendue est composée de six composants liés.
Conditions préalables
- Tout cluster Kubernetes ou gestionnaire de package Chocolatey pour installer MiniKube
- Sur Windows 10, Hyper-V
- Kubectl installé et sur le chemin dans un environnement de ligne de commande de votre choix
- Extension Visual Studio Code de Bridge to Kubernetes
Installer MiniKube
Vous pouvez utiliser n’importe quel fournisseur Kubernetes avec Bridge to Kubernetes. Dans cet article, nous utilisons MiniKube. MiniKube est un fournisseur Kubernetes léger qui vous permet d’héberger Kubernetes sur votre ordinateur local. Suivez les instructions d’installation pour installer MiniKube sur Windows 10, Linux ou macOS.
Pour obtenir de meilleurs résultats sur Windows 10, vous devez utiliser le gestionnaire de machines virtuelles Hyper-V et créer un commutateur virtuel .
Une fois installé, démarrez MiniKube, spécifiez l’utilisation d’Hyper-V et indiquez le nom du commutateur virtuel principal. Cette commande doit être exécutée à partir d’une invite de commandes avec des privilèges d’administrateur.
minikube start --vm-driver hyperv --hyperv-virtual-switch "Primary Virtual Switch"
Déployer l’application
Clonez le référentiel Bridge to Kubernetes et ouvrez une fenêtre Commande avec le dossier de travail actuel pour todo-app.
Créez un espace de noms pour l’exemple.
kubectl create namespace todo-app
Ensuite, appliquez le manifeste de déploiement :
kubectl apply -n todo-app -f deployment.yaml
Il s’agit d’un déploiement simple qui expose le front-end à l’aide d’un service de type LoadBalancer
. Attendez que tous les pods s’exécutent et que l’adresse IP externe du service frontend
devienne disponible.
Si vous effectuez des tests avec MiniKube, vous devez utiliser minikube tunnel
pour résoudre une adresse IP externe.
kubectl get services -n todo-app
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
frontend LoadBalancer 10.0.49.177 127.0.0.1 80:30145/TCP 18h
Accédez à l’application à l’aide de l’adresse IP externe et du port local (le premier numéro de la colonne PORT(S).
http://{external-ip}:{local-port}
Testez l’application en cours d’exécution dans le navigateur. Lorsque vous ajoutez, complétez et supprimez des éléments todo, notez que la page statistiques est mise à jour avec les métriques attendues.
Déboguer le service stats-api
Vous pouvez maintenant utiliser l’extension Bridge to Kubernetes pour montrer comment le trafic du cluster Kubernetes peut être redirigé vers une version localement en cours d’exécution de l’api stats-api.
cd stats-api/
Ouvrez le code source de l’API stats-api dans VS Code.
code .
Une fois VS Code lancé, ouvrez le volet Kubernetes à partir de la barre latérale gauche de VS Code, puis sélectionnez l'espace de noms todo-app dans votre cluster MiniKube. Faites un clic droit sur le nœud todo-app, puis choisissez Utiliser l’espace de noms.
Installez les dépendances en exécutant npm install
dans une fenêtre de terminal (CTRL + ~).
npm install
Ensuite, placez un point d’arrêt sur la ligne 17 de server.js
.
Ouvrez la palette de commandes (Ctrl+Maj+P ou Cmd+Maj+P sur un Mac) et tapez Bridge to Kubernetes. Sélectionnez l’option Bridge to Kubernetes : configurer.
Vous êtes invité à configurer le service que vous souhaitez remplacer, le port à transférer à partir de votre ordinateur de développement et la tâche de lancement à utiliser.
Choisissez le service stats-api
.
Une fois que vous avez sélectionné votre service, vous êtes invité à entrer le port TCP de votre application locale. Pour cet exemple, entrez 3001.
Choisissez Exécuter le script : dev comme tâche de lancement.
Vous avez la possibilité d’exécuter de manière isolée ou non isolée. Si vous exécutez isolé, seules vos demandes sont acheminées vers votre processus local ; d’autres développeurs peuvent utiliser le cluster sans être affectés. Si vous n'exécutez pas en mode isolé, tout le trafic est redirigé vers votre processus local. Pour plus d’informations sur cette option, consultez Utilisation des fonctionnalités de routage pour le développement en isolation. Pour cet exemple, utilisons le mode non isolé.
Note
VS Code vous invite à autoriser EndpointManager à exécuter avec élévation de privilèges et à modifier votre fichier hosts.
Le profil de débogage Bridge to Kubernetes a été correctement configuré.
Sélectionnez l'icône de débogage située à gauche, puis choisissez Exécuter le script : dev avec Kubernetes. Cliquez sur le bouton démarrer à côté de Exécuter le script : dev avec Kubernetes.
Votre ordinateur de développement est connecté lorsque la barre d’état VS Code devient orange et que l’extension Kubernetes indique que vous êtes connecté. Une fois que votre ordinateur de développement est connecté, le trafic est redirigé vers votre ordinateur de développement pour l'API de statistiques que vous remplacez.
Accédez au point d’entrée front-end de votre todo-app. Pour minikube, nous allons utiliser 127.0.0.1
. Pour accéder à l’URL du point de terminaison local de votre application, ouvrez le menu Kubernetes dans la barre d’état et choisissez l’entrée de point de terminaison.
Effectuez une requête à l’api stats en choisissant le lien stats.
Notez que le trafic qui a démarré initialement dans votre cluster a été redirigé vers votre version en cours d’exécution locale (en dehors du cluster) où le point d’arrêt a été déclenché.
Appuyez sur lecture et laissez la requête continuer de façon transparente.
Cet exemple illustre simplement comment utiliser Bridge to Kubernetes sur des clusters non AKS. Essayez-le sur votre propre projet ensuite !
Nettoyer
Pour nettoyer les ressources produites par cet exemple, exécutez :
kubectl delete namespace todo-app
Étapes suivantes
Vous pouvez également déployer votre application sur Azure Kubernetes Service (AKS) avec Bridge to Kubernetes. Consultez Utiliser Bridge to Kubernetes avec AKS