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 effectuer ce didacticiel, vous avez besoin du fichier manifeste Kubernetes aks-store-quickstart.yaml. 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 nécessite Azure CLI version 2.34.1 ou ultérieure. Exécutez az --version pour trouver la version. Si vous devez installer ou mettre à niveau, voir Installer Azure CLI.
Créer des variables d’environnement
Créez 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 et une file d’attente Azure Service Bus
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.
Créez un espace de noms Azure Service Bus à l’aide de la commande
az servicebus namespace create.az servicebus namespace create --name $SB_NS --resource-group $RG_NAME --location $LOC_NAMECré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_NSCré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 tsv
Mise à jour du fichier manifeste Kubernetes
Configurez
kubectlpour qu’il se connecte à votre cluster à l’aide de la commandeaz aks get-credentials.az aks get-credentials --resource-group myResourceGroup --name myAKSClusterOuvrez le fichier
aks-store-quickstart.yamldans un éditeur de texte.Supprimez les sections StatefulSet, ConfigMap et Service
rabbitmqexistantes et remplacez la section Deploymentorder-serviceexistante par le contenu suivant :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: 3Remarque
L’ajout direct d’informations sensibles, telles que des clés API, à vos fichiers manifestes Kubernetes n’est pas sécurisé et peut être accidentellement validée dans des référentiels de code. Nous les avons ajoutées ici pour plus 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.
Enregistrez et fermez le fichier mis à jour
aks-store-quickstart.yaml.
Déployer l’application mise à jour
Déployez l’application mise à jour à l’aide de la commande
kubectl apply.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 unchanged
Test de l’application
Passer un exemple de commande
Obtenez l’adresse IP externe du service
store-frontà l’aide de la commandekubectl get service.kubectl get service store-frontAccé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.