Tutoriel : Exécuter et déboguer localement avec Bridge to Kubernetes sur Visual Studio
Remarque
Microsoft prévoit de ne plus maintenir activement le projet Bridge to Kubernetes. Au cours des prochains mois, nous allons passer le projet à un état d’archivage. En attendant, le projet est toujours disponible pour être utilisé, et télécharger. Pendant cette période, nous espérons explorer et recommander des projets communautaires qui offrent des avantages similaires à Bridge to Kubernetes pour votre utilisation future. Si vous avez des questions, contactez-nous sur notre tableau des problèmes sur GitHub.
Dans ce tutoriel, vous allez apprendre à rediriger le trafic entre votre cluster Kubernetes et votre ordinateur de développement. Ce tutoriel utilise Bridge to Kubernetes et Visual Studio pour le débogage d’un service. Pour utiliser Visual Studio Code, consultez Exécuter et déboguer localement avec Bridge to Kubernetes avec VS Code.
Pour en savoir plus sur Bridge to Kubernetes, consultez How Bridge to Kubernetes works.
Dans ce tutoriel, vous allez apprendre à :
- Connectez-vous à votre cluster avec Bridge to Kubernetes.
- Acheminer les demandes vers un service en cours d’exécution localement à des fins de développement.
- Déboguer un service en cours d’exécution sur votre ordinateur local.
Conditions préalables
- Un cluster Kubernetes. Vous pouvez en créer un dans le portail Azure . Si vous n’avez pas d’abonnement Azure, vous pouvez créer un compte gratuitement.
- Le fichier exécutable kubectl installé sur votre système.
- Visual Studio 2019 version 16.7 ou ultérieure s’exécutant sur Windows 10 ou version ultérieure ou Visual Studio 2022.
- Extension Bridge to Kubernetes pour Visual Studio 2019 ou extension Bridge to Kubernetes pour Visual Studio 2022.
Configurer un service
Ce tutoriel utilise Bridge to Kubernetes pour utiliser un exemple d’application simple sur n’importe quel cluster Kubernetes.
L’exemple d’application a un serveur frontal pour interagir et un serveur principal qui fournit un stockage persistant.
Ouvrez une fenêtre Bash et vérifiez que votre cluster est disponible et prêt. Définissez ensuite le contexte sur ce cluster.
kubectl cluster-info kubectl config use-context <kubernetes-cluster>
Clonez l’exemple de dépôt.
git clone https://github.com/hsubramanianaks/b2k-samples
Remplacez le répertoire par todo-app, puis créez un espace de noms pour l’exemple.
kubectl create namespace todo-app
Appliquez le manifeste de déploiement :
kubectl apply -n todo-app -f deployment.yaml
Ce déploiement simple 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 servicefrontend
devienne disponible.Si vous effectuez des tests avec MiniKube, utilisez
minikube tunnel
pour résoudre une adresse IP externe. Si vous utilisez AKS ou un autre fournisseur Kubernetes basé sur le cloud, une adresse IP externe est automatiquement affectée.Utilisez la commande suivante pour surveiller le service
frontend
pour attendre qu’il soit opérationnel :kubectl get service -n todo-app frontend --watch NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE frontend LoadBalancer 10.0.245.78 10.73.226.228 80:31910/TCP 6m26s
Se connecter à votre cluster
Ouvrez Visual Studio. Dans la fenêtre Démarrer, sélectionnez Continuer sans code.
Sélectionnez Ouvrir>Projet/solution, puis recherchez le projet todo-app\database-api\databaseApi.csproj et sélectionnez Ouvrir.
Dans le projet, sélectionnez Bridge to Kubernetes dans les paramètres de lancement, comme indiqué ici :
Sélectionnez le bouton Démarrer à côté de Bridge to Kubernetes. Dans la boîte de dialogue Créer un profil pour Bridge to Kubernetes, entrez les valeurs suivantes :
- Sélectionnez le nom de votre cluster.
- Sélectionnez todo-app pour votre espace de noms.
- Sélectionnez database-api pour la redirection du service.
- Sélectionnez la même URL que celle utilisée précédemment pour lancer votre navigateur.
Si vous souhaitez exécuter en mode isolé, sélectionnez Activer l’isolation du routage. Si vous activez l’isolation du routage, d’autres utilisateurs du cluster ne sont pas affectés par vos modifications. Le mode Isolement route vos demandes vers la copie de chacun de vos services affectés. Il route le reste du trafic normalement. Pour plus d’informations, consultez How Bridge to Kubernetes Works.
Sélectionnez Enregistrer et déboguer pour enregistrer vos modifications.
Remarque
EndpointManager vous invite à autoriser des privilèges élevés pour votre fichier hosts .
Votre ordinateur de développement se connecte au cluster. La barre d’état indique que vous êtes connecté au service
database-api
.Essayez d’entrer des tâches et de les marquer comme terminées.
Sélectionnez Déboguer>Arrêter le débogage pour arrêter le débogage. Le raccourci de cette action est Maj+F5, ou utilisez le bouton Arrêter le débogage dans la barre d’outils.
Bridge to Kubernetes redirige tout le trafic pour le service database-api. Il redirige vers la version de votre application sur votre ordinateur de développement. Pont vers Kubernetes achemine également tout le trafic sortant de l’application vers votre cluster Kubernetes.
Remarque
Par défaut, l’arrêt de la tâche de débogage déconnecte également votre ordinateur de développement de votre cluster Kubernetes. Pour modifier ce comportement, sélectionnez Outils>Options, puis sélectionnez Outils de débogage Kubernetes. Définissez Déconnecter après le débogage sur False.
Après la mise à jour de ce paramètre, votre ordinateur de développement reste connecté lorsque vous arrêtez et démarrez le débogage. Pour déconnecter votre ordinateur de développement de votre cluster, cliquez sur le bouton Déconnecter dans la barre d’outils.
Définir un point d’arrêt
Dans cette section, vous définissez un point d’arrêt dans votre service.
Dans Explorateur de solutions, sélectionnez MongoHelper.cs pour ouvrir le fichier dans l’éditeur. Si vous ne voyez pas l’Explorateur de solutions, sélectionnez Afficher>l’Explorateur de solutions.
Placez votre curseur sur la première ligne du corps de la méthode CreateTask. Sélectionnez ensuite Déboguer>Activer/désactiver le point d’arrêt pour définir un point d’arrêt.
Un raccourci pour cette action est F9 .
Sélectionnez le bouton 'Démarrer' en regard de Bridge to Kubernetes, comme vous l’avez fait dans la section précédente. Le débogage commence par les valeurs que vous avez entrées précédemment.
Dans le navigateur qui s’ouvre, entrez une valeur dans les todos, puis sélectionnez Entrée. Le code atteint le point d’arrêt que vous avez défini. Lorsque vous effectuez des tâches de débogage réelles, vous pouvez utiliser les options de débogage pour parcourir le code.
Sélectionnez Déboguer>Arrêter le débogage pour arrêter le débogage.
Pour supprimer le point d’arrêt, sélectionnez cette ligne, puis sélectionnez Déboguer>Activer/désactiver le point d’arrêt ou sélectionnez F9.
Modifier le profil de lancement
Si vous devez modifier la façon dont Bridge to Kubernetes se connecte à votre cluster, dans cette section, vous allez modifier les paramètres du profil de lancement.
Dans la barre de commandes de Visual Studio, cliquez sur la flèche en regard du bouton Démarrer (triangle vert ou icône « lecture ») pour ouvrir la liste déroulante, puis cliquez sur Propriétés de débogage de databaseApi.
Cliquez sur le lien Modifier le profil de Bridge to Kubernetes dans la boîte de dialogue Profils de lancement.
Une autre façon d’accéder à cet écran :
Cliquez avec le bouton droit sur le nœud du projet dans l’Explorateur de solutions, puis choisissez Propriétés (ou appuyez sur Alt+Entrée).
Faites défiler jusqu’à Débogage, puis choisissez Ouvrir l’interface utilisateur des profils de lancement de débogage.
Nettoyer les ressources
Si vous avez utilisé l’exemple d’application todo pour ce didacticiel, vous pouvez le supprimer de votre cluster à l’aide du portail Azure. Si vous avez cloné ce référentiel localement, vous pouvez le supprimer manuellement.
Étapes suivantes
En savoir plus sur Bridge to Kubernetes à Comment fonctionne Bridge to Kubernetes.
Pour savoir comment connecter votre ordinateur de développement à un cluster à l’aide de Visual Studio Code, consultez cet article :