Partager via


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

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.

Capture d’écran montrant l’espace de noms Bridge to Kubernetes.

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.

Capture d’écran montrant la fenêtre de commande Bridge to Kubernetes.

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.

Capture d’écran montrant la fenêtre Sélectionner le service auquel se connecter.

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.

Capture d’écran montrant la fenêtre Entrer le numéro de port.

Choisissez Exécuter le script : dev comme tâche de lancement.

Capture d’écran montrant la fenêtre Choisir la tâche de lancement du débogueur.

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.

Capture d’écran montrant la fenêtre Choisir l’option d’isolation.

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.

Capture d’écran montrant la fenêtre Choisir le profil de lancement de débogage.

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.

Capture d’écran montrant la fenêtre Choisir le débogage avec Bridge to Kubernetes.

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.

Capture d’écran montrant le lien Choisir le site web en cours d’exécution - Choisir le lien d’état.

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.