Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Avec Kubernetes, vous pouvez utiliser des services PaaS, tels qu’Azure Service Bus, pour développer et exécuter vos applications.
Dans ce tutoriel, vous allez créer un espace de noms et une file d’attente Azure Service Bus pour tester votre application. Vous allez apprendre à effectuer les actions suivantes :
- Créez un espace de noms et une file d’attente Azure Service Bus.
- Mettez à jour le fichier manifeste Kubernetes pour utiliser la file d’attente Azure Service Bus.
- Testez l’application mise à jour en plaçant une commande.
Avant de commencer
Dans les didacticiels précédents, vous avez empaqueté une application dans une image conteneur, chargé l’image dans Azure Container Registry, créé un cluster Kubernetes et déployé une application. Pour suivre ce didacticiel, vous avez besoin du fichier manifeste Kubernetes aks-store-quickstart.yaml déjà créé. Ce téléchargement de fichier était inclus avec le code source de l’application dans un didacticiel précédent. Vérifiez que vous avez cloné le référentiel et modifié les répertoires dans le référentiel cloné. Si vous n’avez pas effectué ces étapes et voulez suivre cette procédure, commencez par Tutoriel 1 : préparer une application pour AKS.
Ce didacticiel crée des ressources Azure Service Bus facturables. Pour effectuer ces étapes, utilisez une identité qui peut créer et gérer des ressources Service Bus et mettre à jour des charges de travail AKS dans votre groupe de ressources, telles que Contributeur ou Propriétaire.
Ce tutoriel nécessite l’installation de AKS desktop.
Créer des variables d’environnement
Utilisez le Azure CLI pour créer les variables d’environnement suivantes à utiliser pour les commandes de ce didacticiel :
LOC_NAME=westus2 RAND=$RANDOM RG_NAME=myResourceGroup AKS_NAME=myAKSCluster SB_NS=sb-store-demo-$RAND
Créer un espace de noms Azure Service Bus et une file d’attente
Dans les didacticiels précédents, vous avez utilisé un conteneur RabbitMQ pour stocker les commandes soumises par le order-service. Dans ce tutoriel, vous utilisez un espace de noms Azure Service Bus pour fournir un conteneur d’étendue pour les ressources Service Bus au sein de l’application. Vous utilisez également une file d’attente Azure Service Bus pour envoyer et recevoir des messages entre les composants de l’application. Pour plus d’informations sur Azure Service Bus, consultez Créer un espace de noms et une file d’attente Azure Service Bus.
Dans ce flux, order-service envoie des messages à la file d’attente orders à l’aide de la règle d’autorisation sender et de la clé que vous créez dans cette section.
Utilisez le Azure CLI pour créer les variables d’environnement suivantes à utiliser pour les commandes de ce didacticiel.
Créez un espace de noms Azure Service Bus à l’aide de la
az servicebus namespace createcommande.az servicebus namespace create --name $SB_NS --resource-group $RG_NAME --location $LOC_NAMEContinuez une fois que la commande s’est exécutée avec succès et a renvoyé les détails de l’espace de noms.
Créez une file d’attente Azure Service Bus à l’aide de la commande
az servicebus queue create.az servicebus queue create --name orders --resource-group $RG_NAME --namespace-name $SB_NSVérifiez que la file d’attente existe avant de continuer :
az servicebus queue show --name orders --resource-group $RG_NAME --namespace-name $SB_NS --query name -o tsvCréez une règle d’autorisation Azure Service Bus à l’aide de la commande
az servicebus queue authorization-rule create.az servicebus queue authorization-rule create \ --name sender \ --namespace-name $SB_NS \ --resource-group $RG_NAME \ --queue-name orders \ --rights SendObtenez les informations d’identification Azure Service Bus pour une utilisation ultérieure à l’aide des commandes
az servicebus namespace showetaz servicebus queue authorization-rule keys list.az servicebus namespace show --name $SB_NS --resource-group $RG_NAME --query name -o tsv az servicebus queue authorization-rule keys list --namespace-name $SB_NS --resource-group $RG_NAME --queue-name orders --name sender --query primaryKey -o tsvEnregistrez ces valeurs pour l’étape de mise à jour du manifeste :
-
<REPLACE_WITH_YOUR_ACR_NAME>: le nom de votre Azure Container Registry issu des tutoriels précédents. -
<REPLACE_WITH_YOUR_SB_NS_HOSTNAME>:$SB_NS.servicebus.windows.net. -
<REPLACE_WITH_YOUR_SB_SENDER_PASSWORD>: valeurprimaryKeyde la sortie de la commande.
-
Mise à jour du fichier manifeste Kubernetes
Accédez à Projets dans le bureau AKS et sélectionnez celui que vous avez créé dans le didacticiel précédent.
my-dev-frontendSélectionnez l’onglet Ressources, puis sélectionnez Déploiement des> charges de travail: order-service.
Sélectionnez l’éditeur.
Supprimez les sections StatefulSet, ConfigMap et Service existantes
rabbitmq. Remplacez la section Déploiement existantorder-servicepar le contenu suivant. Copiez et collez le contenu :apiVersion: apps/v1 kind: Deployment metadata: name: order-service spec: replicas: 1 selector: matchLabels: app: order-service template: metadata: labels: app: order-service spec: nodeSelector: "kubernetes.io/os": linux containers: - name: order-service image: <REPLACE_WITH_YOUR_ACR_NAME>.azurecr.io/aks-store-demo/order-service:latest ports: - containerPort: 3000 env: - name: ORDER_QUEUE_HOSTNAME value: "<REPLACE_WITH_YOUR_SB_NS_HOSTNAME>" # Example: sb-store-demo-123456.servicebus.windows.net - name: ORDER_QUEUE_PORT value: "5671" - name: ORDER_QUEUE_TRANSPORT value: "tls" - name: ORDER_QUEUE_USERNAME value: "sender" - name: ORDER_QUEUE_PASSWORD value: "<REPLACE_WITH_YOUR_SB_SENDER_PASSWORD>" - name: ORDER_QUEUE_NAME value: "orders" - name: FASTIFY_ADDRESS value: "0.0.0.0" resources: requests: cpu: 1m memory: 50Mi limits: cpu: 75m memory: 128Mi startupProbe: httpGet: path: /health port: 3000 failureThreshold: 5 initialDelaySeconds: 20 periodSeconds: 10 readinessProbe: httpGet: path: /health port: 3000 failureThreshold: 3 initialDelaySeconds: 3 periodSeconds: 5 livenessProbe: httpGet: path: /health port: 3000 failureThreshold: 5 initialDelaySeconds: 3 periodSeconds: 3
Remarque
L’ajout direct d’informations sensibles, telles que des clés API, à vos fichiers manifeste Kubernetes n’est pas sécurisé et risque d’être validé accidentellement dans les référentiels de code. Cet exemple l’ajoute par souci de simplicité. Pour les charges de travail de production, utilisez l’identité managée pour vous authentifier auprès d’Azure Service Bus, ou stockez vos secrets dans Azure Key Vault.
Conservez la mise à jour en sélectionnant Enregistrer & Appliquer.
Vérifiez que le
order-servicedéploiement mis à jour a atteint un état sain dans la vue de la charge de travail avant de continuer.
Déployer l’application mise à jour
Déployez l’application mise à jour à l’aide de la
kubectl applycommande.kubectl apply -f aks-store-quickstart.yamlL’exemple de sortie suivant montre les ressources mises à jour avec succès :
deployment.apps/order-service configured service/order-service unchanged deployment.apps/product-service unchanged service/product-service unchanged deployment.apps/store-front configured service/store-front unchangedVérifiez que le déploiement mis à jour est en cours d’exécution.
kubectl get pods
Continuez lorsque les pods d’application sont à l’état Running.
Test de l’application
Passer une commande d’exemple
Poste de travail AKS
Obtenez l’adresse IP publique en accédant à Ressource>Réseau>Service : store-front>IP externe.
Ligne de commande
Obtenez l’adresse IP externe du service
store-frontà l’aide de la commandekubectl get service.kubectl get service store-frontSi
EXTERNAL-IPest<pending>, attendez une minute et exécutez de nouveau la commande jusqu’à ce qu’une adresse IP publique apparaisse.Accédez à l’adresse IP externe du service
store-frontdans votre navigateur à l’aide dehttp://<external-ip>.Passez une commande en choisissant un produit et en sélectionnant Ajouter au panier.
Sélectionnez Panier pour afficher votre commande, puis sélectionnez Finaliser la commande.
Afficher la commande dans la file d’attente Azure Service Bus
- Accédez au portail Microsoft Azure et ouvrez l’espace de noms Azure Service Bus que vous avez créé précédemment.
- Sous Entités, sélectionnez Files d’attente, puis sélectionnez la file d’attente des commandes.
- Dans la file d’attente des commandes, sélectionnez Service Bus Explorer.
- Sélectionnez Aperçu depuis le début pour afficher la commande que vous avez envoyée.
Étapes suivantes
Dans ce tutoriel, vous avez utilisé Azure Service Bus pour mettre à jour et tester l’exemple d’application. Vous avez appris à :
- Créez un espace de noms et une file d’attente Azure Service Bus.
- Mettez à jour le fichier manifeste Kubernetes pour utiliser la file d’attente Azure Service Bus.
- Testez l’application mise à jour en plaçant une commande.
Dans le tutoriel suivant, vous allez apprendre à mettre à l’échelle une application dans AKS.