Tutoriel : Préparer une application pour AKS

S’applique à : AKS sur Azure Stack HCI 22H2, AKS sur Windows Server

Dans ce didacticiel, partie 1 des sept, une application à plusieurs conteneurs est préparée pour une utilisation sur un cluster Kubernetes lorsque vous utilisez Azure Kubernetes Service activé par Azure Arc. Les outils de développement existants tels que Docker Compose sont utilisés pour générer et tester localement une 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 que l’application De vote Azure s’exécute localement a ouverte dans un navigateur web local.

Dans les didacticiels ultérieurs, l’image conteneur est chargée dans un Azure Container Registry, puis déployée dans un cluster Kubernetes.

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

Remarque

AKS n’inclut pas les composants Docker requis pour effectuer chaque étape de ces tutoriels. 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 GitHub pour cloner l’exemple d’application dans votre environnement de développement :

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

Accédez 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 génération d’images conteneur et le déploiement d’applications multi-conteneurs.

Utilisez l’exemple de fichier docker-compose.yaml pour créer l’image conteneur, téléchargez l’image Redis, puis démarrez 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 l’application en cours d’exécution, entrez 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 ouverte dans un navigateur web local.

Nettoyer les ressources

Maintenant que les fonctionnalités de l’application sont validées, 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, l’image azure-vote-front est chargée dans un Azure Container Registry instance.

Arrêtez et supprimez les instances et ressources de conteneur avec la commande docker-compose down :

docker-compose down

Lorsque vous supprimez l’application locale, vous disposez d’une image Docker qui contient l’application Azure Vote, azure-vote-front, à utiliser avec le tutoriel suivant.

Étapes suivantes

Dans ce didacticiel, une application a été testée et les images de conteneur créées pour 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

Passez au didacticiel suivant pour savoir comment stocker des images de conteneur dans Azure Container Registry.