Démarrage rapide : Déployer un cluster Azure Kubernetes Service à l’aide d’Azure CLIQuickstart: Deploy an Azure Kubernetes Service cluster using the Azure CLI

Dans ce guide de démarrage rapide, vous déployez un cluster AKS (Azure Kubernetes Service) à l’aide de l’interface Azure CLI.In this quickstart, you deploy an Azure Kubernetes Service (AKS) cluster using the Azure CLI. AKS est un service Kubernetes géré qui vous permet de déployer et de gérer rapidement des clusters.AKS is a managed Kubernetes service that lets you quickly deploy and manage clusters. Une application multiconteneur composée d’un front-end web et d’une instance Redis est exécutée dans le cluster.A multi-container application that includes a web front end and a Redis instance is run in the cluster. Vous pouvez ainsi voir comment superviser l’intégrité du cluster et des pods qui exécutent votre application.You then see how to monitor the health of the cluster and pods that run your application.

Si vous souhaitez utiliser des conteneurs Windows Server (actuellement en préversion dans AKS), consultez Créer un cluster AKS prenant en charge les conteneurs Windows Server.If you want to use Windows Server containers (currently in preview in AKS), see Create an AKS cluster that supports Windows Server containers.

Application de vote déployée dans Azure Kubernetes Service

Ce guide de démarrage rapide suppose une compréhension élémentaire des concepts liés à Kubernetes.This quickstart assumes a basic understanding of Kubernetes concepts. Pour plus d’informations, consultez Concepts de base de Kubernetes pour AKS (Azure Kubernetes Service.For more information, see Kubernetes core concepts for Azure Kubernetes Service (AKS).

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.If you don't have an Azure subscription, create a free account before you begin.

Utiliser Azure Cloud ShellUse Azure Cloud Shell

Azure héberge Azure Cloud Shell, un environnement d’interpréteur de commandes interactif que vous pouvez utiliser dans votre navigateur.Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Cloud Shell vous permet d’utiliser bash ou PowerShell pour travailler avec les services Azure.Cloud Shell lets you use either bash or PowerShell to work with Azure services. Vous pouvez utiliser les commandes préinstallées Cloud Shell pour exécuter le code de cet article sans avoir à installer quoi que ce soit dans votre environnement local.You can use the Cloud Shell pre-installed commands to run the code in this article without having to install anything on your local environment.

Pour lancer Azure Cloud Shell :To launch Azure Cloud Shell:

OptionOption Exemple/LienExample/Link
Sélectionnez Essayer dans le coin supérieur droit d’un bloc de code.Select Try It in the upper-right corner of a code block. La sélection de Essayer ne copie pas automatiquement le code dans Cloud Shell.Selecting Try It doesn't automatically copy the code to Cloud Shell. Exemple Essayer pour Azure Cloud Shell
Accédez à https://shell.azure.com ou sélectionnez le bouton Lancer Cloud Shell pour ouvrir Cloud Shell dans votre navigateur.Go to https://shell.azure.com or select the Launch Cloud Shell button to open Cloud Shell in your browser. Lancer Cloud Shell dans une nouvelle fenêtreLaunch Cloud Shell in a new window
Sélectionnez le bouton Cloud Shell dans la barre de menus en haut à droite du portail Azure.Select the Cloud Shell button on the top-right menu bar in the Azure portal. Bouton Cloud Shell du portail Azure

Pour exécuter le code de cet article dans Azure Cloud Shell :To run the code in this article in Azure Cloud Shell:

  1. Lancez Cloud Shell.Launch Cloud Shell.

  2. Sélectionnez le bouton Copier dans un bloc de code pour copier le code.Select the Copy button on a code block to copy the code.

  3. Collez le code dans la session Cloud Shell avec Ctrl+Maj+V sur Windows et Linux, ou Cmd+ Maj+V sur macOS.Paste the code into the Cloud Shell session with Ctrl+Shift+V on Windows and Linux, or Cmd+Shift+V on macOS.

  4. Appuyez sur Entrée pour exécuter le code.Press Enter to run the code.

Si vous choisissez d'installer et d'utiliser l'interface CLI localement, ce guide de démarrage rapide exige au minimum Azure CLI version 2.0.64.If you choose to install and use the CLI locally, this quickstart requires that you are running the Azure CLI version 2.0.64 or later. Exécutez az --version pour trouver la version.Run az --version to find the version. Si vous devez installer ou mettre à niveau, voir Installer Azure CLI.If you need to install or upgrade, see Install Azure CLI.

Notes

Si vous exécutez les commandes mentionnées dans ce guide de démarrage rapide localement (plutôt que dans Azure Cloud Shell), veillez à le faire en tant qu’administrateur.If running the commands in this quickstart locally (instead of Azure Cloud Shell), ensure you run the commands as administrator.

Créer un groupe de ressourcesCreate a resource group

Un groupe de ressources Azure est un groupe logique dans lequel des ressources Azure sont déployées et gérées.An Azure resource group is a logical group in which Azure resources are deployed and managed. Lorsque vous créez un groupe de ressources, vous devez spécifier un emplacement.When you create a resource group, you are asked to specify a location. Il s’agit de l’emplacement de stockage des métadonnées de groupe de ressources. C’est également là que vos ressources s’exécutent dans Azure si vous ne spécifiez pas une autre région lors de la création de ressources.This location is where resource group metadata is stored, it is also where your resources run in Azure if you don't specify another region during resource creation. Créez un groupe de ressources avec la commande az group create.Create a resource group using the az group create command.

L’exemple suivant crée un groupe de ressources nommé myResourceGroup à l’emplacement eastus.The following example creates a resource group named myResourceGroup in the eastus location.

az group create --name myResourceGroup --location eastus

L’exemple de sortie suivant montre que le groupe de ressources a été créé correctement :The following example output shows the resource group created successfully:

{
  "id": "/subscriptions/<guid>/resourceGroups/myResourceGroup",
  "location": "eastus",
  "managedBy": null,
  "name": "myResourceGroup",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null
}

Créer un cluster ACSCreate AKS cluster

Utilisez la commande az aks create pour créer un cluster AKS.Use the az aks create command to create an AKS cluster. L’exemple suivant crée un cluster à un nœud nommé myAKSCluster.The following example creates a cluster named myAKSCluster with one node. Il est également possible d’activer Azure Monitor pour conteneurs à l’aide du paramètre --enable-addons monitoring.Azure Monitor for containers is also enabled using the --enable-addons monitoring parameter. L’exécution de cette commande prend plusieurs minutes.This will take several minutes to complete.

[REMARQUE] Lors de la création d’un cluster AKS, un deuxième groupe de ressources est automatiquement créé pour stocker les ressources AKS.[NOTE] When creating an AKS cluster a second resouce group is automatically created to store the AKS resources. Pour plus d’informations, consultez Pourquoi deux groupes de ressources sont-ils créés avec AKS ?For more information see Why are two resource groups created with AKS?

az aks create --resource-group myResourceGroup --name myAKSCluster --node-count 1 --enable-addons monitoring --generate-ssh-keys

Au bout de quelques minutes, la commande se termine et retourne des informations au format JSON sur le cluster.After a few minutes, the command completes and returns JSON-formatted information about the cluster.

Connexion au clusterConnect to the cluster

Pour gérer un cluster Kubernetes, vous utilisez kubectl, le client de ligne de commande Kubernetes.To manage a Kubernetes cluster, you use kubectl, the Kubernetes command-line client. Si vous utilisez Azure Cloud Shell, kubectl est déjà installé.If you use Azure Cloud Shell, kubectl is already installed. Pour installer kubectl en local, utilisez la commande az aks install-cli :To install kubectl locally, use the az aks install-cli command:

az aks install-cli

Pour configurer kubectl afin de vous connecter à votre cluster Kubernetes, exécutez la commande az aks get-credentials.To configure kubectl to connect to your Kubernetes cluster, use the az aks get-credentials command. Cette commande télécharge les informations d’identification et configure l’interface CLI Kubernetes pour les utiliser.This command downloads credentials and configures the Kubernetes CLI to use them.

az aks get-credentials --resource-group myResourceGroup --name myAKSCluster

Pour vérifier la connexion à votre cluster, utilisez la commande kubectl get pour retourner une liste des nœuds du cluster.To verify the connection to your cluster, use the kubectl get command to return a list of the cluster nodes.

kubectl get nodes

L’exemple de sortie suivant montre le nœud unique créé au cours des étapes précédentes.The following example output shows the single node created in the previous steps. Vérifiez que l’état du nœud est Ready :Make sure that the status of the node is Ready:

NAME                       STATUS   ROLES   AGE     VERSION
aks-nodepool1-31718369-0   Ready    agent   6m44s   v1.12.8

Exécution de l'applicationRun the application

Un fichier manifeste Kubernetes définit un état souhaité pour le cluster, notamment les images conteneur à exécuter.A Kubernetes manifest file defines a desired state for the cluster, such as what container images to run. Dans ce guide de démarrage rapide, un manifeste est utilisé afin de créer tous les objets nécessaires pour l’exécution de l’application Azure Vote.In this quickstart, a manifest is used to create all objects needed to run the Azure Vote application. Ce manifeste inclut deux déploiements Kubernetes : un pour les exemples d’applications Azure Vote Python et l’autre pour une instance Redis.This manifest includes two Kubernetes deployments - one for the sample Azure Vote Python applications, and the other for a Redis instance. Deux services Kubernetes sont également créés : un service interne pour l’instance Redis et un service externe pour accéder à l’application Azure Vote à partir d’Internet.Two Kubernetes Services are also created - an internal service for the Redis instance, and an external service to access the Azure Vote application from the internet.

Conseil

Dans ce guide de démarrage rapide, vous créez et déployez manuellement vos manifestes d’application sur le cluster AKS.In this quickstart, you manually create and deploy your application manifests to the AKS cluster. Dans des scénarios plus probables, vous pouvez utiliser Azure Dev Spaces pour itérer et déboguer votre code rapidement, directement dans le cluster AKS.In more real-world scenarios, you can use Azure Dev Spaces to rapidly iterate and debug your code directly in the AKS cluster. Vous pouvez utiliser les espaces Dev Spaces sur des plateformes de système d’exploitation ainsi que des environnements de développement et collaborer avec les autres personnes de votre équipe.You can use Dev Spaces across OS platforms and development environments, and work together with others on your team.

Créez un fichier nommé azure-vote.yaml, et copiez-y la définition YAML suivante.Create a file named azure-vote.yaml and copy in the following YAML definition. Si vous utilisez Azure Cloud Shell, vous pouvez créer ce fichier à l’aide de vi ou de nano comme si vous travailliez sur un système virtuel ou physique :If you use the Azure Cloud Shell, this file can be created using vi or nano as if working on a virtual or physical system:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: azure-vote-back
spec:
  replicas: 1
  selector:
    matchLabels:
      app: azure-vote-back
  template:
    metadata:
      labels:
        app: azure-vote-back
    spec:
      nodeSelector:
        "beta.kubernetes.io/os": linux
      containers:
      - name: azure-vote-back
        image: redis
        resources:
          requests:
            cpu: 100m
            memory: 128Mi
          limits:
            cpu: 250m
            memory: 256Mi
        ports:
        - containerPort: 6379
          name: redis
---
apiVersion: v1
kind: Service
metadata:
  name: azure-vote-back
spec:
  ports:
  - port: 6379
  selector:
    app: azure-vote-back
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: azure-vote-front
spec:
  replicas: 1
  selector:
    matchLabels:
      app: azure-vote-front
  template:
    metadata:
      labels:
        app: azure-vote-front
    spec:
      nodeSelector:
        "beta.kubernetes.io/os": linux
      containers:
      - name: azure-vote-front
        image: microsoft/azure-vote-front:v1
        resources:
          requests:
            cpu: 100m
            memory: 128Mi
          limits:
            cpu: 250m
            memory: 256Mi
        ports:
        - containerPort: 80
        env:
        - name: REDIS
          value: "azure-vote-back"
---
apiVersion: v1
kind: Service
metadata:
  name: azure-vote-front
spec:
  type: LoadBalancer
  ports:
  - port: 80
  selector:
    app: azure-vote-front

Déployez l’application à l’aide de la commande kubectl apply et spécifiez le nom de votre manifeste YAML :Deploy the application using the kubectl apply command and specify the name of your YAML manifest:

kubectl apply -f azure-vote.yaml

L’exemple de sortie suivant montre que les déploiements et les ressources ont été créés correctement :The following example output shows the Deployments and Services created successfully:

deployment "azure-vote-back" created
service "azure-vote-back" created
deployment "azure-vote-front" created
service "azure-vote-front" created

Test de l’applicationTest the application

Quand l’application s’exécute, un service Kubernetes expose le front-end de l’application sur Internet.When the application runs, a Kubernetes service exposes the application front end to the internet. L’exécution de ce processus peut prendre plusieurs minutes.This process can take a few minutes to complete.

Pour surveiller la progression, utilisez la commande kubectl get service avec l’argument --watch.To monitor progress, use the kubectl get service command with the --watch argument.

kubectl get service azure-vote-front --watch

Dans un premier temps, la valeur EXTERNAL-IP du service azure-vote-front apparaît comme étant en attente (pending).Initially the EXTERNAL-IP for the azure-vote-front service is shown as pending.

NAME               TYPE           CLUSTER-IP   EXTERNAL-IP   PORT(S)        AGE
azure-vote-front   LoadBalancer   10.0.37.27   <pending>     80:30572/TCP   6s

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.When the EXTERNAL-IP address changes from pending to an actual public IP address, use CTRL-C to stop the kubectl watch process. L’exemple de sortie suivant montre une adresse IP publique valide affectée au service :The following example output shows a valid public IP address assigned to the service:

azure-vote-front   LoadBalancer   10.0.37.27   52.179.23.131   80:30572/TCP   2m

Pour voir l’application Azure Vote en action, ouvrez un navigateur web en utilisant l’adresse IP externe de votre service.To see the Azure Vote app in action, open a web browser to the external IP address of your service.

Application de vote déployée dans Azure Kubernetes Service

Au moment de la création du cluster AKS, Azure Monitor pour conteneurs a été activé afin de capturer les métriques d’intégrité des nœuds de cluster et des pods.When the AKS cluster was created, Azure Monitor for containers was enabled to capture health metrics for both the cluster nodes and pods. Ces mesures sont disponibles dans le portail Azure.These health metrics are available in the Azure portal.

Supprimer le clusterDelete the cluster

Pour éviter des frais Azure, vous devez nettoyer les ressources inutiles.To avoid Azure charges, you should clean up unneeded resources. Lorsque vous n’avez plus besoin du cluster, utilisez la commande az group delete pour supprimer le groupe de ressources, le service conteneur et toutes les ressources associées.When the cluster is no longer needed, use the az group delete command to remove the resource group, container service, and all related resources.

az group delete --name myResourceGroup --yes --no-wait

Notes

Lorsque vous supprimez le cluster, le principal de service Azure Active Directory utilisé par le cluster AKS n’est pas supprimé.When you delete the cluster, the Azure Active Directory service principal used by the AKS cluster is not removed. Pour obtenir des instructions sur la façon de supprimer le principal de service, consultez Considérations principales et suppression du principal de service AKS.For steps on how to remove the service principal, see AKS service principal considerations and deletion.

Obtenir le codeGet the code

Dans ce guide de démarrage rapide, des images conteneur créées au préalable ont été utilisées pour créer un déploiement Kubernetes.In this quickstart, pre-created container images were used to create a Kubernetes deployment. Le code de l’application associé, Dockerfile, et le fichier manifeste Kubernetes sont disponibles sur GitHub.The related application code, Dockerfile, and Kubernetes manifest file are available on GitHub.

https://github.com/Azure-Samples/azure-voting-app-redis

Étapes suivantesNext steps

Dans ce Démarrage rapide, vous avez déployé un cluster Kubernetes dans lequel vous avez déployé une application de plusieurs conteneurs.In this quickstart, you deployed a Kubernetes cluster and deployed a multi-container application to it. Vous pouvez également accéder au tableau de bord web Kubernetes pour votre cluster AKS.You can also access the Kubernetes web dashboard for your AKS cluster.

Pour en savoir plus sur ACS et parcourir le code complet de l’exemple de déploiement, passez au tutoriel sur le cluster Kubernetes.To learn more about AKS, and walk through a complete code to deployment example, continue to the Kubernetes cluster tutorial.