Tutoriel : Créer des images conteneurs sur un cluster Service Fabric Linux
Ce tutoriel est la première partie d’une série qui montre comment utiliser des conteneurs dans un cluster Service Fabric Linux. Dans le premier tutoriel, vous allez préparer une application à conteneurs multiples afin de pouvoir l’utiliser avec Service Fabric. Dans les tutoriels suivants, ces images seront utilisées dans le cadre d’une application Service Fabric. Ce didacticiel vous montre comment effectuer les opérations suivantes :
- Cloner la source de l’application à partir de GitHub
- Créer une image conteneur à partir de la source de l’application
- Déployer une instance Azure Container Registry (ACR)
- Marquer une image conteneur pour ACR
- Charger l’image dans ACR
Dans cette série de didacticiels, nous allons aborder les points suivants :
- Créer des images conteneurs pour Service Fabric
- Créer et exécuter une application Service Fabric avec des conteneurs
- Gestion du basculement et de la mise à l’échelle dans Service Fabric
Conditions préalables requises
- Configuration de l’environnement de développement Linux pour Service Fabric. Suivez les instructions ici pour configurer votre environnement Linux.
- Ce didacticiel nécessite que vous exécutiez Azure CLI version 2.0.4 ou ultérieure. Exécutez
az --version
pour trouver la version. Si vous devez effectuer une installation ou une mise à niveau, consultez Installer Azure CLI. - Il exige également que vous disposiez d’un abonnement Azure. Pour plus d’informations sur la version d’évaluation gratuite, rendez-vous ici.
Obtenir le code d’application
L’exemple d’application utilisé dans ce didacticiel est une application de vote. L’application est constituée d’un composant web frontal et d’une instance Redis principale. Les composants sont empaquetés dans des images conteneurs.
Utilisez git pour télécharger une copie de l’application dans votre environnement de développement.
git clone https://github.com/Azure-Samples/service-fabric-containers.git
cd service-fabric-containers/Linux/container-tutorial/
La solution contient deux dossiers et un fichier docker-compose.yml. Le dossier « azure-vote » contient le service frontal Python, ainsi que le fichier Dockerfile utilisé pour créer l’image. Le répertoire « Voting » contient le package d’application Service Fabric qui est déployé sur le cluster. Ces répertoires contiennent les ressources nécessaires à ce didacticiel.
Créer des images de conteneur
Dans le répertoire azure-vote, exécutez la commande suivante pour créer l’image associée au composant web frontal. Cette commande utilise pour cela le fichier Dockerfile présent dans ce répertoire.
docker build -t azure-vote-front .
Notes
Si vous obtenez un refus d’autorisation, suivez cette documentation sur l’utilisation de Docker sans sudo.
Cette commande peut prendre un certain temps, car toutes les dépendances nécessaires doivent être extraites du Hub Docker. Une fois terminé, utilisez la commande docker images pour afficher l’image azure-vote-front que vous venez de créer.
docker images
Déployer Azure Container Registry
Exécutez tout d’abord la commande az login pour vous connecter à votre compte Azure.
az login
Ensuite, utilisez la commande az account afin de choisir votre abonnement pour créer le registre Azure Container Registry. Vous devez entrer votre ID d’abonnement Azure à la place de <id_abonnement>.
az account set --subscription <subscription_id>
Lorsque vous déployez un registre de conteneurs Azure, il vous faut tout d’abord un groupe de ressources. Un groupe de ressources Azure est un conteneur logique dans lequel les ressources Azure sont déployées et gérées.
Créez un groupe de ressources avec la commande az group create. Dans cet exemple, un groupe de ressources nommé myResourceGroup est créé dans la région westus.
az group create --name <myResourceGroup> --location westus
Créez un registre de conteneurs Azure à l’aide de la commande az acr create. Remplacez <acrName> par le nom du registre de conteneurs que vous voulez créer dans votre abonnement. Ce nom doit être alphanumérique et unique.
az acr create --resource-group <myResourceGroup> --name <acrName> --sku Basic --admin-enabled true
Dans le reste de ce tutoriel, nous utilisons « acrName ». Ce nom correspond au registre de conteneurs que vous avez choisi. Prenez note de cette valeur.
Se connecter à votre registre de conteneurs
Connectez-vous à votre instance ACR avant de lui envoyer (push) des images. Utilisez la commande az acr login pour terminer l’opération. Fournissez le nom unique qui a été donné au registre de conteneurs au moment de sa création.
az acr login --name <acrName>
Après son exécution, la commande retourne le message « Connexion réussie ».
Marquer les images de conteneur
Chaque image conteneur doit être marquée avec le nom de serveur de connexion du registre. Cette balise est utilisée pour l’acheminement lors de l’envoi des images de conteneur dans un registre d’images.
Pour afficher la liste des images actuelles, utilisez la commande docker images.
docker images
Sortie :
REPOSITORY TAG IMAGE ID CREATED SIZE
azure-vote-front latest 052c549a75bf About a minute ago 913MB
Pour obtenir le nom de loginServer, exécutez la commande suivante :
az acr show --name <acrName> --query loginServer --output table
Une table avec les résultats suivants est générée. Ce résultat sera utilisé pour marquer votre image azure-vote-front avant de la placer dans le registre de conteneurs à l’étape suivante.
Result
------------------
<acrName>.azurecr.io
Maintenant, marquez l’image azure-vote-front avec le loginServer de votre registre de conteneurs. En outre, ajoutez :v1
à la fin du nom de l’image. Cette balise indique la version de l’image.
docker tag azure-vote-front <acrName>.azurecr.io/azure-vote-front:v1
Une fois le marquage effectué, exécutez « docker images » pour vérifier l’opération.
Sortie :
REPOSITORY TAG IMAGE ID CREATED SIZE
azure-vote-front latest 052c549a75bf 23 minutes ago 913MB
<acrName>.azurecr.io/azure-vote-front v1 052c549a75bf 23 minutes ago 913MB
Envoyer des images au registre
Envoyez l’image azure-vote-front au registre.
À l’aide de l’exemple suivant, remplacez le nom d’ACR loginServer par le loginServer à partir de votre environnement.
docker push <acrName>.azurecr.io/azure-vote-front:v1
Les commandes Docker de type push prennent quelques minutes.
Créer la liste des images du registre
Pour retourner une liste d’images qui ont été déplacées dans le registre de conteneurs Azure, utilisez la commande az acr repository list. Mettez à jour la commande avec le nom d’instance ACR.
az acr repository list --name <acrName> --output table
Sortie :
Result
----------------
azure-vote-front
Au terme de ce tutoriel, l’image conteneur est stockée dans une instance privée Azure Container Registry. Dans les tutoriels suivants, l’image est déployée d’ACR vers un cluster Service Fabric.
Étapes suivantes
Dans ce tutoriel, une application a été extraite de GitHub et des images conteneurs ont été créées et transmises à un registre. Les étapes suivantes ont été effectuées :
- Cloner la source de l’application à partir de GitHub
- Créer une image conteneur à partir de la source de l’application
- Déployer une instance Azure Container Registry (ACR)
- Marquer une image conteneur pour ACR
- Charger l’image dans ACR
Passez au tutoriel suivant pour en savoir plus sur l’empaquetage de conteneurs dans une application Service Fabric avec Yeoman.