Lire en anglais

Partager via


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.

Note

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).

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 :

Diagramme montrant l'exemple d'architecture Azure Store.

  • 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.

Note

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

  1. 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.

    Azure Developer CLI
    azd init --template Azure-Samples/aks-store-demo
    
  2. 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.

    Output
    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.

  1. Connectez-vous à votre compte en tirant parti de la commande azd auth login.

    Azure Developer CLI
    azd auth login
    
  2. Copiez le code d’appareil qui s’affiche dans la sortie, puis appuyez sur entrée pour vous connecter.

    Output
    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ête curl vers l'URL localhost vers laquelle vous avez été redirigé après avoir exécuté [azd auth login][az-auth-login].

  3. Authentifiez-vous avec vos informations d’identification sur la page de connexion de votre organisation.

  4. Confirmez que vous tentez de vous connecter à partir d’Azure CLI.

  5. Vérifiez le message « Authentification du code de l’appareil terminée. Connecté à Azure. » s’affiche dans votre terminal d’origine.

    Output
    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.

  1. 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 sur https://graph.microsoft.com/.default.

    Azure CLI
    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 :

    Output
    https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize?clientid=<your_client_id>.
    
  2. Copiez l’URL localhost de la page web reçue après la tentative de connexion avec azd auth login.

  3. 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.

    Console
    curl <localhost>
    

    Une connexion réussie sort une page web HTML comme illustré dans l’exemple suivant :

    Output
    <!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>
    
  4. Fermez le terminal actuel et ouvrez le terminal d’origine. Une liste JSON de vos abonnements doit s’afficher.

  5. Copiez le champ id de l’abonnement que vous souhaitez utiliser.

  6. Définissez votre abonnement à l’aide de la commande az account set.

    Azure CLI
    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

  1. Créez toutes les ressources d’application en tirant parti de la commande azd up.

    Azure Developer CLI
    azd up
    
  2. Sélectionnez un abonnement Azure pour votre utilisation de la facturation.

    Output
    ? Select an Azure Subscription to use:  [Use arrows to move, type to filter]
    > 1. My Azure Subscription (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
    
  3. Sélectionnez une région vers laquelle déployer votre application.

    Output
    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 :

    Output
    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.

  1. Définissez votre espace de noms comme espace de noms de version de démonstration pets en utilisant la commande kubectl set-context.

    Console
    kubectl config set-context --current --namespace=pets
    
  2. Vérifiez l'état des pods déployés à l'aide de la commande kubectl get pods. Vérifiez que tous les pods sont Running avant de continuer.

    Console
    kubectl get pods
    
  3. 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.

    Console
    kubectl get service store-front --watch
    

    La sortie EXTERNAL-IP pour le service store-front indique initialement qu'il est en attente :

    Output
    NAME          TYPE           CLUSTER-IP    EXTERNAL-IP   PORT(S)        AGE
    store-front   LoadBalancer   10.0.100.10   <pending>     80:30025/TCP   4h4m
    
  4. 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 surveillance kubectl.

    L’exemple de sortie suivant montre une adresse IP publique valide affectée au service :

    Output
    NAME          TYPE           CLUSTER-IP    EXTERNAL-IP    PORT(S)        AGE
    store-front   LoadBalancer   10.0.100.10   20.62.159.19   80:30025/TCP   4h5m
    
  5. Ouvrez un navigateur web à l'adresse IP externe de votre service pour voir l'application Azure Store en action.

    Capture d’écran de l’exemple d’application AKS Store.

Supprimer le cluster

Une fois le démarrage rapide terminé, supprimez les ressources inutiles pour éviter les frais Azure.

  1. Supprimez toutes les ressources créées dans le guide de démarrage rapide en utilisant la commande azd down.

    Azure Developer CLI
    azd down
    
  2. Confirmez votre décision de supprimer toutes les ressources utilisées à partir de votre abonnement en tapant y et en appuyant sur Enter.

    Output
    ? Total resources to delete: 14, are you sure you want to continue? (y/N)
    
  3. Permettez à la suppression définitive de réutiliser les variables du démarrage rapide, le cas échéant, en tapant y et en appuyant sur Enter.

    Output
    [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 :

    Output
    SUCCESS: Your application was removed from Azure in 14 minutes 30 seconds.
    

Note

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.