Utiliser Bridge to Kubernetes avec AKS
Remarque
Microsoft prévoit de ne plus maintenir activement le projet Bridge to Kubernetes. Au cours des prochains mois, nous allons faire passer le projet à un état d’archivage. Entre-temps, le projet reste disponible à l’utilisation et au téléchargement. Pendant cette période, nous espérons explorer et recommander des projets communautaires qui offrent des avantages similaires à Bridge to Kubernetes pour votre usage futur. Si vous avez des questions, veuillez nous contacter sur notre tableau des problèmes sur GitHub.
Dans ce tutoriel, vous utilisez un exemple d’application web AKS spécifique pour apprendre à utiliser Bridge to Kubernetes pour déboguer localement dans un seul pod faisant partie d’un cluster Azure Kubernetes Service (AKS).
Avant de commencer
Ce guide utilise l’exemple d’application Todo App pour illustrer la connexion de votre ordinateur de développement à un cluster Kubernetes s’exécutant dans AKS. Si votre propre application s’exécute déjà sur un cluster Kubernetes, consultez Développer avec Kubernetes. Si vous utilisez un autre cluster, tel que MiniKube exécuté localement, consultez Utiliser Bridge to Kubernetes avec un exemple.
Prérequis
- Un abonnement Azure. Si vous n’avez pas d’abonnement Azure, vous pouvez créer un compte gratuit.
- Azure CLI.
- Visual Studio Code s’exécute sur macOS, Windows 10 ou Linux.
- Extension Bridge to Kubernetes installée dans Visual Studio Code.
Créer un cluster Kubernetes
Créez un cluster AKS dans une région prise en charge. Les commandes suivantes créent un groupe de ressources appelé MyResourceGroup
et un cluster AKS appelé MyAKS
.
az group create \
--name MyResourceGroup \
--location eastus
az aks create \
--resource-group MyResourceGroup \
--name MyAKS \
--location eastus \
--node-count 3 \
--generate-ssh-keys
Installation de l’exemple d’application
Télécharger le code et installer des dépendances
git clone https://github.com/hsubramanianaks/b2k-samples
cd b2k-samples/todo-app
npm install stats-api\
Se connecter à votre cluster et déployer l’application
Sur votre ordinateur de développement, téléchargez et configurez l’interface CLI Kubernetes pour vous connecter à votre cluster Kubernetes à l’aide de az aks get-credentials
.
az aks get-credentials --resource-group MyResourceGroup --name MyAKS
kubectl create namespace todo-app
kubectl config set-context --current --namespace=todo-app
kubectl apply -f deployment.yaml --namespace todo-app
Essayer l’application
Sur le même terminal que celui que vous avez utilisé précédemment, exécutez la commande suivante et copiez l’adresse IP du service front-end sous la colonne IP externe.
kubectl get services
Pour tester l’application, ouvrez l’URL : {your external IP from above command goes here}.nip.io
Déboguer le service stats-api
Sur le même terminal que vous avez utilisé précédemment, tapez la commande suivante pour ouvrir stats-api dans VS Code.
code ./stats-api
Commencez par placer un point d’arrêt sur la ligne 17 de server.js
.
Ensuite, assurez-vous que l’espace de noms todo-app
du cluster MyAKS
est défini par défaut (s’il est précédé d’un *). S’il n’est pas défini par défaut, cliquez avec le bouton droit sur le nœud todo-app, puis choisissez Utiliser l’espace de noms.
Configurez ensuite le pont : 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
.
Important
Vous ne pouvez rediriger que les services qui n’ont qu’un seul pod.
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 isolément ou non. Si vous exécutez isolément, seules vos demandes sont routées vers votre processus local ; d’autres développeurs peuvent utiliser le cluster sans être affectés. Si vous n’exécutez pas isolément, 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, nous utilisons le mode non isolé. Si vous avez choisi l’isolation, task.json a le préfixe que vous devez utiliser pour acheminer la requête vers votre ordinateur.
Notes
Lors des lancements suivants, il vous suffira de cliquer sur l’icône de débogage sans passer par cette configuration et être invité à entrer le nom du service, le port, la tâche de lancement ou s’il faut procéder à l’exécution isolément. Ces valeurs sont enregistrées dans .vscode/tasks.json
. Pour modifier ces paramètres ultérieurement, ouvrez la palette de commandes (Ctrl+Maj+P ou Cmd+Maj+P sur un Mac), puis exécutez la commande Bridge to Kubernetes : Configurer.
Le profil de débogage Bridge to Kubernetes a été correctement configuré.
Pour commence le débogage, sélectionnez l’icône Déboguer à gauche, puis sélectionnez Exécuter le script : dev avec Kubernetes. Cliquez sur le bouton de démarrage en regard de Exécuter le script : dev avec Kubernetes.
Notes
Il vous sera demandé d’autoriser EndpointManager à exécuter des tâches élevées et à modifier votre fichier d’hôtes.
Votre ordinateur de développement est connecté lorsque la barre d’état de 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 commence à être redirigé vers votre ordinateur de développement pour le stats-api que vous remplacez.
Accédez au point d’entrée front-end de votre application via l’adresse IP externe que vous avez trouvée précédemment, {your external IP from get services command}.nip.io
. Notez que si vous avez sélectionné le mode d’isolation, vous devez utiliser {your prefix - can be found in task.json}.{your external IP from get services command}.nip.io
.
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.
Nettoyage
Lorsque vous arrêtez le débogueur, toutes les modifications apportées au cluster sont rétablies. Notez que si vous étiez en cours d’exécution avec l’isolation activée, le pod du gestionnaire de routage sera laissé là pour accélérer le démarrage du débogueur la prochaine fois.
Vous pouvez laisser votre cluster AKS activé pour un débogage ultérieur ou le supprimer avec la commande suivante.
az aks delete --name MyAKS --resource-group MyResourceGroup
Étapes suivantes
Pour en savoir plus sur Bridge to Kubernetes, consultez Comment fonctionne Bridge to Kubernetes.