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