Didacticiel : préparer une application pour Azure Kubernetes Service (AKS)

Dans ce tutoriel, premier d’une série de sept, vous allez préparer une application à plusieurs conteneurs à utiliser dans Kubernetes. Vous allez utiliser des outils de développement existants comme Docker Compose pour générer et tester localement l’application. Vous allez apprendre à effectuer les actions suivantes :

  • Cloner un exemple de source de l’application à partir de GitHub
  • Créer une image conteneur à partir de l’exemple de source de l’application
  • Test l’application à plusieurs conteneurs dans un environnement Docker local

Une fois ces étapes effectuées, l’application suivante s’exécute dans votre environnement de développement local :

Capture d’écran montrant l’image conteneur Application de vote Azure en cours d’exécution, ouverte localement dans un navigateur web local

Dans les tutoriels ultérieurs, vous allez charger l’image conteneur dans un Azure Container Registry (ACR), puis la déployer dans un cluster AKS.

Avant de commencer

Ce didacticiel présuppose une compréhension de base des concepts Docker essentiels, tels que les conteneurs, les images de conteneur et les commandes docker. Pour apprendre les principes de base des conteneurs, consultez Bien démarrer avec Docker.

Pour suivre ce tutoriel, vous avez besoin d’un environnement de développement Docker local exécutant des conteneurs Linux. Docker fournit des packages qui le configurent sur un système Mac, Windows ou Linux.

Notes

Azure Cloud Shell n’inclut pas les composants Docker requis pour effectuer chaque étape de ces didacticiels. Par conséquent, nous recommandons d’utiliser un environnement de développement Docker complet.

Obtenir le code d’application

L’exemple d’application utilisé dans ce tutoriel est une application de vote de base composée d’un composant web front-end et d’une instance Redis back-end. Le composant web est empaqueté dans une image conteneur personnalisée. L’instance Redis utilise une image non modifiée de Docker Hub.

Utilisez git pour cloner l’exemple d’application dans votre environnement de développement.

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

Passez au répertoire cloné.

cd azure-voting-app-redis

Dans le répertoire se trouvent le code source de l’application, un fichier Docker Compose précréé et un fichier manifeste Kubernetes. Ces fichiers sont utilisés tout au long de ce didacticiel. Le contenu et la structure du répertoire sont les suivants :

azure-voting-app-redis
│   azure-vote-all-in-one-redis.yaml
│   docker-compose.yaml
│   LICENSE
│   README.md
│
├───azure-vote
│   │   app_init.supervisord.conf
│   │   Dockerfile
│   │   Dockerfile-for-app-service
│   │   sshd_config
│   │
│   └───azure-vote
│       │   config_file.cfg
│       │   main.py
│       │
│       ├───static
│       │       default.css
│       │
│       └───templates
│               index.html
│
└───jenkins-tutorial
        config-jenkins.sh
        deploy-jenkins-vm.sh

Créer des images de conteneur

Vous pouvez utiliser Docker Compose pour automatiser la création d’images conteneur et le déploiement d’applications multiconteneurs.

La commande suivante utilise l’exemple de fichier docker-compose.yaml pour créer l’image conteneur, télécharger l’image Redis, puis démarrer l’application.

docker-compose up -d

Une fois terminé, utilisez la commande docker images pour afficher les images créées. Trois images ont été téléchargées ou créées. L’image azure-vote-front contient l’application front-end et utilise l’image nginx-flask comme base. L’image redis est utilisée pour démarrer une instance Redis.

$ docker images

REPOSITORY                                     TAG                 IMAGE ID            CREATED             SIZE
mcr.microsoft.com/azuredocs/azure-vote-front   v1                  84b41c268ad9        9 seconds ago       944MB
mcr.microsoft.com/oss/bitnami/redis            6.0.8               3a54a920bb6c        2 days ago          103MB
tiangolo/uwsgi-nginx-flask                     python3.6           a16ce562e863        6 weeks ago         944MB

Exécutez la commande docker ps pour voir les conteneurs en cours d’exécution.

$ docker ps

CONTAINER ID        IMAGE                                             COMMAND                  CREATED             STATUS              PORTS                           NAMES
d10e5244f237        mcr.microsoft.com/azuredocs/azure-vote-front:v1   "/entrypoint.sh /sta…"   3 minutes ago       Up 3 minutes        443/tcp, 0.0.0.0:8080->80/tcp   azure-vote-front
21574cb38c1f        mcr.microsoft.com/oss/bitnami/redis:6.0.8         "/opt/bitnami/script…"   3 minutes ago       Up 3 minutes        0.0.0.0:6379->6379/tcp          azure-vote-back

Tester l’application localement

Pour voir votre application en cours d’exécution, naviguez vers http://localhost:8080 dans un navigateur web local. L’exemple d’application est chargée, comme indiqué dans l’exemple suivant :

Capture d’écran montrant l’image conteneur Application de vote Azure en cours d’exécution, ouverte localement dans un navigateur web local

Nettoyer les ressources

Maintenant que la fonctionnalité de l’application a été validée, les conteneurs en cours d’exécution peuvent être arrêtés et supprimés. Ne supprimez pas les images conteneur. Dans le tutoriel suivant, vous allez charger l’image azure-vote-front dans une instance ACR.

Pour arrêter et supprimer les instances de conteneur et les ressources, utilisez la commande docker-compose down.

docker-compose down

Lorsque l’application locale a été supprimée, vous disposez d’une image Docker qui contient l’application Azure Vote, azure-vote-front, à utiliser dans le prochain tutoriel.

Étapes suivantes

Dans ce tutoriel, vous avez créé un exemple d’application et des images conteneur pour l’application, puis testé l’application. Vous avez appris à :

  • Cloner un exemple de source de l’application à partir de GitHub
  • Créer une image conteneur à partir de l’exemple de source de l’application
  • Test l’application à plusieurs conteneurs dans un environnement Docker local

Dans le prochain tutoriel, vous allez apprendre à stocker des images conteneur dans un ACR.