Démarrage rapide : déployer un cluster AKS (Azure Kubernetes Service) à l’aide du portail Azure

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 :

  • Déployer un cluster AKS dans le portail Azure.
  • Exécutez un exemple d’application à plusieurs conteneurs avec un serveur web frontal et une instance Redis dans le cluster.

Screenshot of browsing to Azure Vote sample application.

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

Prérequis

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit Azure avant de commencer.

Créer un cluster AKS

  1. Connectez-vous au portail Azure.

  2. Dans le menu du Portail Azure ou dans la page Accueil, sélectionnez Créer une ressource.

  3. Sélectionnez Conteneurs>Kubernetes Service.

  4. Sur la page Bases, configurez les options suivantes :

    • Détails du projet :
      • Sélectionnez un abonnement Azure.
      • Sélectionnez ou créez un groupe de ressources Azure, par exemple myResourceGroup.
    • Détails du cluster :
      • Vérifiez que la Configuration prédéfinie est Standard ($$) . Pour plus d’informations sur les configurations prédéfinies, consultez Présélections de configuration de cluster dans le portail Azure.
      • Entrez un nom du cluster Kubernetes, tel que myAKSCluster.
      • Sélectionnez une Région pour le cluster AKS, puis laissez la valeur par défaut sélectionnée pour Version de Kubernetes.
      • Sélectionnez 99,5 % pour Disponibilité du serveur d’API.
    • Pool de nœuds principal :
      • conservez la valeur par défaut sélectionnée.

    Screenshot of Create AKS cluster - provide basic information.

    Notes

    Vous pouvez modifier la configuration prédéfinie lors de la création de votre cluster en sélectionnant En savoir plus et comparer les présélections et en choisissant une autre option. Screenshot of Create AKS cluster - portal preset options.

  5. Sélectionnez Suivant : Pools de nœuds à l’issue du processus.

  6. Conservez les options de Pools de nœuds par défaut. Au bas de la page, cliquez sur Suivant : Accès.

  7. Sur la page Accès, configurez les options suivantes :

    • La valeur par défaut d’Identité de ressource est l’Identité managée affectée par le système. Les identités managées fournissent une identité utilisée par les applications lorsqu'elles se connectent à des ressources qui prennent en charge l'authentification Azure Active Directory (Azure AD). Pour plus de détails sur les identités managées, consultez la section Que sont les identités managées pour les ressources Azure ?.
    • L’option de contrôle d’accès en fonction du rôle Kubernetes (RBAC) est la valeur par défaut pour fournir un contrôle plus précis de l’accès aux ressources Kubernetes déployées dans votre cluster AKS.

    Par défaut, le réseau De base est utilisé et les Insights de conteneur sont activés.

  8. Cliquez sur Vérifier + créer. Lorsque vous accédez à l’onglet Vérifier + créer, Azure exécute la validation sur les paramètres que vous avez choisis. Si la validation réussit, vous pouvez continuer à créer le cluster AKS en sélectionnant Créer. Si la validation échoue, les paramètres qui doivent être modifiés sont indiqués.

  9. La création du cluster AKS ne prend que quelques minutes. Une fois votre déploiement terminé, accédez à votre ressource en procédant une des façons suivantes :

    • En sélectionnant Accéder à la ressource, ou

    • En accédant au groupe de ressources de cluster AKS et en sélectionnant la ressource AKS. Dans cet exemple, vous recherchez myResourceGroup et sélectionnez la ressource myAKSCluster.

      Screenshot of AKS dashboard in the Azure portal.

Se connecter au cluster

Pour gérer un cluster Kubernetes, utilisez kubectl, le client de ligne de commande Kubernetes. Si vous utilisez Azure Cloud Shell, kubectl est déjà installé. Si vous ne connaissez pas Cloud Shell, consultez Vue d’ensemble d’Azure Cloud Shell.

  1. Ouvrez Cloud Shell à l’aide du bouton >_ situé en haut du portail Azure.

    Screenshot of Open the Azure Cloud Shell in the portal option.

    Notes

    Pour effectuer ces opérations dans une installation Shell locale :

    1. Vérifiez qu’Azure CLI ou Azure PowerShell est installé.
    2. Connectez-vous à Azure à l’aide de la commande az login ou Connect-AzAccount.
  1. Configurez kubectl afin de vous connecter à votre cluster Kubernetes avec la commande az aks get-credentials. La commande suivante télécharge les informations d’identification et configure l’interface CLI Kubernetes pour les utiliser.

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    
  1. Vérifiez la connexion à votre cluster avec la commande kubectl get pour retourner une liste des nœuds du cluster.

    kubectl get nodes
    

    La sortie montre le nœud unique créé au cours des étapes précédentes. Assurez-vous que l’état du nœud est Prêt :

    NAME                                STATUS   ROLES   AGE   VERSION
    aks-agentpool-12345678-vmss000000   Ready    agent   23m   v1.19.11
    aks-agentpool-12345678-vmss000001   Ready    agent   24m   v1.19.11
    

Déployer l’application

Un fichier manifeste Kubernetes définit un état souhaité d’un cluster, notamment les images conteneur à exécuter.

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 de vote Azure. Ce manifeste comprend deux déploiements Kubernetes :

  • Exemples d’applications Python pour Azure Vote.
  • Une instance Redis.

Deux services Kubernetes sont également créés :

  • Un service interne pour l’instance Redis.
  • Un service externe pour accéder à l’application Azure vote à partir d’Internet.
  1. Dans le Cloud Shell, utilisez un éditeur pour créer un fichier nommé azure-vote.yaml, tel que :

    • code azure-vote.yaml
    • nano azure-vote.yaml ou
    • vi azure-vote.yaml.
  2. Copiez-y la définition YAML suivante :

    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:
            "kubernetes.io/os": linux
          containers:
          - name: azure-vote-back
            image: mcr.microsoft.com/oss/bitnami/redis:6.0.8
            env:
            - name: ALLOW_EMPTY_PASSWORD
              value: "yes"
            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:
            "kubernetes.io/os": linux
          containers:
          - name: azure-vote-front
            image: mcr.microsoft.com/azuredocs/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
    
  3. Déployez l’application à l’aide de la commande kubectl apply et spécifiez le nom de votre manifeste YAML :

    kubectl apply -f azure-vote.yaml
    

    La sortie affiche les déploiements et services créés avec succès :

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

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 surveiller la progression, utilisez la commande kubectl get service avec l’argument --watch.

kubectl get service azure-vote-front --watch

La sortie EXTERNAL-IP pour le service azure-vote-front affiche initialement En attente.

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. L’exemple de sortie suivant montre une adresse IP publique valide affectée au 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.

Screenshot of browsing to Azure Vote sample application.

Supprimer un cluster

Pour éviter les frais Azure, si vous ne prévoyez pas d’effectuer les tutoriels qui suivent, nettoyez vos ressources inutiles. Sélectionnez le bouton Supprimer dans le tableau de bord du cluster AKS. Vous pouvez également utiliser la commande az group delete ou la cmdlet Remove-AzResourceGroup pour supprimer le groupe de ressources, le service conteneur et toutes les ressources associées.

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

Notes

Le cluster AKS a été créé avec une identité managée affectée par le système. Cette identité est managée par la plateforme et ne nécessite pas de suppression.

Étapes suivantes

Dans ce Démarrage rapide, vous avez déployé un cluster Kubernetes dans lequel vous avez ensuite déployé un exemple d’application de plusieurs conteneurs.

Pour en savoir plus sur AKS au travers d’un exemple complet, notamment sur la création d’une application, le déploiement à partir d’Azure Container Registry, la mise à jour d’une application en cours d’exécution ainsi que la mise à l’échelle et la mise à niveau de votre cluster, passez au tutoriel sur les clusters Kubernetes.