Exercice : Déployer une application sur votre cluster Azure Kubernetes Service

Effectué

Dans cet exercice, vous allez déployer le service de messagerie back-end de votre entreprise en tant qu’application test sur Azure Kubernetes Service (AKS). Le service se connecte au service PaaS Redis créé au cours de l’exercice précédent.

Remarque

Le code de ce service est disponible dans le référentiel GitHub.

Créer une liste dans Redis

Vous devez créer une liste dans Redis et la remplir avec des éléments aléatoires pour simuler une file d’attente recevant des données. Chaque élément de la file d’attente représente un élément qui sera traité par le microservice. Pour cet exercice, vous allez ajouter un nombre statique d’éléments. Plus tard dans l’exercice, vous allez mettre à l’échelle le microservice en fonction du nombre d’éléments dans la file d’attente.

  1. Vérifiez que Docker s’exécute sur votre ordinateur.

  2. Créez un conteneur Redis localement pour vous connecter à votre cache Azure Cache pour Redis en utilisant la commande docker run :

    docker run -it --rm redis redis-cli -h $REDIS_HOST -a $REDIS_KEY
    

    Vous devez obtenir un résultat semblable à l’exemple de sortie qui suit :

    redis-contoso-video.redis.cache.windows.net:6379>
    
  3. Créez une liste et remplissez-la avec des éléments aléatoires en tirant parti de la commande lpush keda :

    lpush keda Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris eget interdum felis, ac ultricies nulla. Fusce vehicula mattis laoreet. Quisque facilisis bibendum dui, at scelerisque nulla hendrerit sed. Sed rutrum augue arcu, id maximus felis sollicitudin eget. Curabitur non libero rhoncus, pellentesque orci a, tincidunt sapien. Suspendisse laoreet vulputate sagittis. Vivamus ac magna lacus. Etiam sagittis facilisis dictum. Phasellus faucibus sagittis libero, ac semper lorem commodo in. Quisque tortor lorem, sollicitudin non odio sit amet, finibus molestie eros. Proin aliquam laoreet eros, sed dapibus tortor euismod quis. Maecenas sed viverra sem, at porta sapien. Sed sollicitudin arcu leo, vitae elementum
    
  4. Vérifiez la longueur de la liste en utilisant la commande llen keda :

    llen keda
    
  5. Quittez l’interpréteur de commandes Redis en tapant exit.

Créer un manifeste de Deployment

Vous créez un fichier manifeste de Deployment pour déployer votre application. Le fichier manifeste vous permet de définir le type de ressource que vous souhaitez déployer et tous les détails associés à la charge de travail.

Kubernetes regroupe les conteneurs en structures logiques appelées « pods », qui n’ont aucune intelligence. Les déploiements ajoutent l’intelligence manquante pour créer votre application.

  1. Dans Cloud Shell, créez un fichier manifeste pour le déploiement Kubernetes appelé deployment.yaml en tirant parti de la commande touch :

    touch deployment.yaml
    
  2. Ouvrez l’éditeur intégré dans Cloud Shell en entrant code .

  3. Ouvrez le fichier deployment.yaml et collez-y le code de manifeste suivant. Veillez à remplacement les variables d’environnement Redis par vos propres valeurs.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: contoso-microservice
    spec:
      replicas: 1                   # Tells K8S the number of containers to process the Redis list items
      selector:                     # Define the wrapping strategy
        matchLabels:                # Match all pods with the defined labels
          app: contoso-microservice # Labels follow the `name: value` template
      template:                     # Template of the pod inside the Deployment
        metadata:
          labels:
            app: contoso-microservice
        spec:
          containers:
            - image: mcr.microsoft.com/mslearn/samples/redis-client:latest
              name: contoso-microservice
              resources:
                requests:
                  cpu: 100m
                  memory: 128Mi
                limits:
                  cpu: 100m
                  memory: 128Mi
              env:
                - name: REDIS_HOST
                  value: "redis-contoso-video.redis.cache.windows.net" # *** REPLACE with your value ***
                - name: REDIS_PORT
                  value: "6379"                                        # *** REPLACE with your value ***
                - name: REDIS_LIST
                  value: "keda"                                        # *** REPLACE with your value ***
                - name: REDIS_KEY
                  value: "******************************************"  # *** REPLACE with your value ***
    
  4. Enregistrez le fichier manifeste (Ctrl + S) et fermez l’éditeur (Ctrl + Q).

Appliquer le manifeste

  1. Déployez le manifeste sur votre cluster en utilisant la commande kubectl apply :

    kubectl apply -f ./deployment.yaml
    

    Vous devez obtenir un résultat semblable à l’exemple de sortie qui suit :

    deployment.apps/contoso-microservice created
    
  2. Vérifiez que déploiement a réussi en tirant parti de la commande kubectl get deployment :

    kubectl get deployment contoso-microservice
    

    Vous devez obtenir un résultat semblable à l’exemple de sortie qui suit :

    NAME                   READY   UP-TO-DATE   AVAILABLE   AGE
    contoso-microservice   1/1     1            0           16s
    
  3. Vérifiez que le pod s’exécute en utilisant la commande kubectl get pods :

    kubectl get pods
    

    Vous devez obtenir un résultat semblable à l’exemple de sortie qui suit :

    NAME                                    READY   STATUS    RESTARTS   AGE
    contoso-microservice-7c58c5f699-r79mv   1/1     Running   0          63s