Exercice : Déployer une application sur votre cluster Azure Kubernetes Service
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.
Vérifiez que Docker s’exécute sur votre ordinateur.
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>
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
Vérifiez la longueur de la liste en utilisant la commande
llen keda
:llen keda
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.
Dans Cloud Shell, créez un fichier manifeste pour le déploiement Kubernetes appelé
deployment.yaml
en tirant parti de la commandetouch
:touch deployment.yaml
Ouvrez l’éditeur intégré dans Cloud Shell en entrant
code .
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 ***
Enregistrez le fichier manifeste (Ctrl + S) et fermez l’éditeur (Ctrl + Q).
Appliquer le manifeste
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
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
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