Démarrage rapide : déployer un cluster Azure Kubernetes Service (AKS) en utilisant le produit Azure Developer CLI
AKS (Azure Kubernetes Service) est un service Kubernetes managé qui vous permet de déployer et de gérer rapidement des clusters. Dans ce guide de démarrage rapide, vous allez apprendre à :
- Téléchargez et installez le produit Azure Developer CLI (
azd
). - Clonez des applications à partir d’un modèle Azure Developer CLI (modèle
azd
). - Déployez un cluster AKS en utilisant le produit Azure Developer CLI (
azd
). - Exécutez un exemple d’application multiconteneur avec un groupe de microservices qui simule une application de vente au détail.
- Supprimez et nettoyez des conteneurs générés à partir du modèle
azd
.
Remarque
Dans cet article, vous trouverez les étapes à suivre pour déployer rapidement un cluster AKS. Les paramètres par défaut sont utilisés à des fins d'évaluation uniquement. Avant de déployer un cluster prêt pour la production, nous vous recommandons de vous familiariser avec notre architecture de référence de base pour prendre en compte la façon dont elle s’aligne sur vos besoins métier.
Avant de commencer
Ce guide de démarrage rapide suppose une compréhension élémentaire des concepts liés à Kubernetes. Pour plus d’informations, consultez Concepts de base de Kubernetes pour AKS (Azure Kubernetes Service).
-
Si vous n’avez pas d’abonnement Azure, créez un compte gratuit Azure avant de commencer.
Pour faciliter l’utilisation, exécutez cet exemple sur Bash ou PowerShell dans le service Azure Cloud Shell. Pour plus d’informations, consultez Démarrage rapide pour Azure Cloud Shell.
Pour utiliser
azd
localement, installez la version 1.6.1 ou ultérieure du produit Azure Developer CLI.- Si vous utilisez Azure Cloud Shell, la version la plus récente de
azd
est déjà installée.
- Si vous utilisez Azure Cloud Shell, la version la plus récente de
Passer en revue du code d’application
Vous pouvez passer en revue du code d’application dans le référentiel GitHub Azure-Samples/aks-store-demo.
L’application de démarrage rapide inclut les déploiements et services Kubernetes suivants :
- Vitrine : application web permettant aux clients d’afficher les produits et de passer des commandes.
- Service de produit : affiche les informations sur le produit.
- Service de commande : passe des commandes.
- Rabbit MQ : file d’attente de messages pour une file d’attente de commandes.
Remarque
Nous vous déconseillons d’exécuter des conteneurs avec état, tels que Rabbit MQ, sans stockage persistant pour une utilisation en production. Bien que ces conteneurs soient utilisés par souci de simplicité, nous recommandons d'utiliser plutôt des services gérés comme Azure CosmosDB ou Azure Service Bus.
Cloner le modèle Azure Developer CLI
Clonez le modèle de version de démonstration d’AKS Store du référentiel Azure-Samples en utilisant la commande
azd init
avec le paramètre--template
.azd init --template Azure-Samples/aks-store-demo
Entrez le nom d’environnement de votre projet qui utilise uniquement des caractères alphanumériques et des traits d’union comme aks-azdqs-1.
Enter a new environment name: aks-azdqs-1
Connectez-vous à votre compte Azure Cloud
Le modèle azd
contient tout le code nécessaire pour créer les services, mais vous devez vous connecter à votre compte Azure pour héberger l’application sur AKS.
Connectez-vous à votre compte en tirant parti de la commande
azd auth login
.azd auth login
Copiez le code d’appareil qui s’affiche dans la sortie, puis appuyez sur entrée pour vous connecter.
Start by copying the next code: XXXXXXXXX Then press enter and continue to log in from your browser...
Important
Si vous utilisez une machine virtuelle en dehors du réseau ou GitHub Codespace, certaines stratégies de sécurité Azure provoquent des conflits quand vous les utilisez pour vous connecter avec
azd auth login
. Si vous rencontrez un problème ici, vous pouvez suivre la solution de contournement azd auth fournie ci-dessous, qui implique l'utilisation d'une requêtecurl
vers l'URL localhost vers laquelle vous avez été redirigé après avoir exécuté [azd auth login
][az-auth-login].Authentifiez-vous avec vos informations d’identification sur la page de connexion de votre organisation.
Confirmez que vous tentez de vous connecter à partir d’Azure CLI.
Vérifiez le message « Authentification du code de l’appareil terminée. Connecté à Azure. » s’affiche dans votre terminal d’origine.
Waiting for you to complete authentication in the browser... Device code authentication completed. Logged in to Azure.
solution de contournement azd auth
Cette solution de contournement nécessite votre installation de l’interface Azure CLI.
Ouvrez une fenêtre de terminal et connectez-vous avec l’interface Azure CLI en utilisant la commande
az login
avec le paramètre--scope
défini surhttps://graph.microsoft.com/.default
.az login --scope https://graph.microsoft.com/.default
Vous devriez être redirigé vers une page d’authentification dans un nouvel onglet pour créer un jeton d’accès de navigateur, tel qu’illustré dans l’exemple suivant :
https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize?clientid=<your_client_id>.
Copiez l’URL localhost de la page web reçue après la tentative de connexion avec
azd auth login
.Dans une nouvelle fenêtre de terminal, utilisez la requête
curl
suivante pour vous connecter. Veillez à remplacer l’espace réservé<localhost>
par l’URL localhost copiée à l’étape précédente.curl <localhost>
Une connexion réussie sort une page web HTML comme illustré dans l’exemple suivant :
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta http-equiv="refresh" content="60;url=https://docs.microsoft.com/cli/azure/"> <title>Login successfully</title> <style> body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; } code { font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; display: inline-block; background-color: rgb(242, 242, 242); padding: 12px 16px; margin: 8px 0px; } </style> </head> <body> <h3>You have logged into Microsoft Azure!</h3> <p>You can close this window, or we will redirect you to the <a href="https://docs.microsoft.com/cli/azure/">Azure CLI documentation</a> in 1 minute.</p> <h3>Announcements</h3> <p>[Windows only] Azure CLI is collecting feedback on using the <a href="https://learn.microsoft.com/windows/uwp/security/web-account-manager">Web Account Manager</a> (WAM) broker for the login experience.</p> <p>You may opt-in to use WAM by running the following commands:</p> <code> az config set core.allow_broker=true<br> az account clear<br> az login </code> </body> </html>
Fermez le terminal actuel et ouvrez le terminal d’origine. Une liste JSON de vos abonnements doit s’afficher.
Copiez le champ
id
de l’abonnement que vous souhaitez utiliser.Définissez votre abonnement à l’aide de la commande
az account set
.az account set --subscription <subscription_id>
Créer et déployer des ressources pour votre cluster
azd
exécute tous les hooks dans le dossier azd-hooks
pour préinscrire, approvisionner et déployer les services d’application.
Le modèle azd
pour ce démarrage rapide crée un groupe de ressources avec un cluster AKS et un coffre de clés Azure. Le coffre de clés stocke les clés secrètes client et exécutez les services dans l’espace de noms pets
Créez toutes les ressources d’application en tirant parti de la commande
azd up
.azd up
Sélectionnez un abonnement Azure pour votre utilisation de la facturation.
? Select an Azure Subscription to use: [Use arrows to move, type to filter] > 1. My Azure Subscription (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
Sélectionnez une région vers laquelle déployer votre application.
Select an Azure location to use: [Use arrows to move, type to filter] 1. (South America) Brazil Southeast (brazilsoutheast) 2. (US) Central US (centralus) 3. (US) East US (eastus) > 43. (US) East US 2 (eastus2) 4. (US) East US STG (eastusstg) 5. (US) North Central US (northcentralus) 6. (US) South Central US (southcentralus)
azd
exécute automatiquement les commandes d’approvisionnement antérieur et postérieur pour créer les ressources de votre application. L’exécution de ce processus peut prendre plusieurs minutes. Une fois terminé, vous devez voir un résultat similaire à l’exemple suivant :SUCCESS: Your workflow to provision and deploy to Azure completed in 9 minutes 40 seconds.
Test de l’application
Quand l’application s’exécute, un service Kubernetes expose le front-end de l’application sur Internet. L’exécution de ce processus peut prendre plusieurs minutes. Pour gérer un cluster Kubernetes, utilisez kubectl, le client de ligne de commande Kubernetes. kubectl
est déjà installé pendant azd up
.
Définissez votre espace de noms comme espace de noms de version de démonstration
pets
en utilisant la commandekubectl set-context
.kubectl config set-context --current --namespace=pets
Vérifiez l'état des pods déployés à l'aide de la commande
kubectl get pods
. Vérifiez que tous les pods sontRunning
avant de continuer.kubectl get pods
Recherchez une adresse IP publique dans l’application store-front (vitrine) et monitorez la progression en tirant parti de la commande
kubectl get service
avec l’argument--watch
.kubectl get service store-front --watch
La sortie EXTERNAL-IP pour le service
store-front
indique initialement qu'il est en attente :NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE store-front LoadBalancer 10.0.100.10 <pending> 80:30025/TCP 4h4m
Quand l’adresse EXTERNAL-IP passe de l’état pending à une adresse IP publique réelle, utilisez
CTRL-C
pour arrêter le processus de surveillancekubectl
.L’exemple de sortie suivant montre une adresse IP publique valide affectée au service :
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE store-front LoadBalancer 10.0.100.10 20.62.159.19 80:30025/TCP 4h5m
Ouvrez un navigateur web à l'adresse IP externe de votre service pour voir l'application Azure Store en action.
Supprimer le cluster
Une fois le démarrage rapide terminé, supprimez les ressources inutiles pour éviter les frais Azure.
Supprimez toutes les ressources créées dans le guide de démarrage rapide en utilisant la commande
azd down
.azd down
Confirmez votre décision de supprimer toutes les ressources utilisées à partir de votre abonnement en tapant
y
et en appuyant surEnter
.? Total resources to delete: 14, are you sure you want to continue? (y/N)
Permettez à la suppression définitive de réutiliser les variables du démarrage rapide, le cas échéant, en tapant
y
et en appuyant surEnter
.[Warning]: These resources have soft delete enabled allowing them to be recovered for a period or time after deletion. During this period, their names may not be reused. In the future, you can use the argument --purge to skip this confirmation. ? Would you like to permanently delete these resources instead, allowing their names to be reused? (y/N)
Une fois les ressources supprimées, vous devez voir un résultat similaire à l’exemple suivant :
SUCCESS: Your application was removed from Azure in 14 minutes 30 seconds.
Remarque
Cet exemple d’application est donné à des fins de démonstration et ne représente pas toutes les meilleures pratiques pour les applications Kubernetes. Pour obtenir des conseils sur la création de solutions complètes avec AKS pour la production, consultez Conseils pour les solutions AKS.
Étapes suivantes
Dans ce Démarrage rapide, vous avez déployé un cluster Kubernetes dans lequel vous avez ensuite déployé une application de plusieurs conteneurs. Cet exemple d’application est fourni à des fins de version de démonstration uniquement et ne représente pas toutes les meilleures pratiques pour les applications Kubernetes. Pour obtenir des conseils sur la création de solutions complètes avec AKS pour la production, consultez Conseils pour les solutions AKS.
Pour en savoir plus sur AKS et parcourir l’exemple complet allant du code au déploiement, passez au tutoriel sur le cluster Kubernetes.
Azure Kubernetes Service