Tutoriel : utiliser des services PaaS avec un cluster Azure Kubernetes Service (AKS)
Avec Kubernetes, vous pouvez utiliser des services PaaS, tels qu’Azure Service Bus, pour développer et exécuter vos applications.
Dans ce tutoriel, la partie cinq sur sept, vous créez 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=eastus 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_NAME
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_NS
Cré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 Send
Obtenez les informations d’identification Azure Service Bus pour une utilisation ultérieure à l’aide des commandes
az servicebus namespace show
etaz 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
kubectl
pour qu’il se connecte à votre cluster à l’aide de la commandeaz aks get-credentials
.az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Ouvrez le fichier
aks-store-quickstart.yaml
dans un éditeur de texte.Supprimez les sections StatefulSet, ConfigMap et Service
rabbitmq
existantes et remplacez la section Deploymentorder-service
existante 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
Remarque
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.yaml
L’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-front
Accédez à l’adresse IP externe du service
store-front
dans 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.
Azure Kubernetes Service