Démarrage rapide : Déployer des conteneurs Linux sur Service Fabric
Azure Service Fabric est une plateforme de systèmes distribués pour le déploiement et la gestion de microservices et conteneurs extensibles et fiables.
Ce guide de démarrage rapide montre comment déployer des conteneurs Linux sur un cluster Service Fabric sur Azure. Une fois le déploiement terminé, vous disposez d’une application de vote composée d’un serveur web frontal Python et d’un serveur principal Redis en cours d’exécution dans un cluster Service Fabric. Vous apprendrez également comment basculer une application et mettre à l’échelle une application dans votre cluster.
Prérequis
Pour suivre ce guide de démarrage rapide :
Créer un compte Azure gratuit avant de commencer si vous n’avez pas d’abonnement
Installer Azure CLI
Installer le kit SDK et l’interface CLI Service Fabric
Installer Git
Obtenir le package d’application
Pour déployer des conteneurs sur Service Fabric, vous avez besoin d’un ensemble de fichiers manifestes (la définition d’application), qui décrivent les conteneurs individuels et l’application.
Dans une console, utilisez git pour cloner une copie de la définition d’application, puis remplacez les répertoires par le répertoire Voting
dans votre clone.
git clone https://github.com/Azure-Samples/service-fabric-containers.git
cd service-fabric-containers/Linux/container-tutorial/Voting
Créer un cluster Service Fabric
Pour déployer l’application sur Azure, vous avez besoin d’un cluster Service Fabric pour exécuter l’application. Les commandes suivantes créent un cluster à cinq nœuds dans Azure. Elles créent également un certificat auto-signé, l’ajoutent à un coffre de clés et téléchargent le certificat localement. Le nouveau certificat sert à sécuriser le cluster au moment du déploiement et à authentifier les clients.
Si vous le souhaitez, vous pouvez modifier les valeurs des variables en fonction de vos préférences. Par exemple, westus au lieu d’eastus pour l’emplacement.
Notes
Les noms de coffre de clés doivent être universellement uniques, car ils sont accessibles en tant que https://{nom-coffre}.vault.azure.net.
#!/bin/bash
# Variables
ResourceGroupName='containertestcluster'
ClusterName='containertestcluster'
Location='eastus'
Password='q6D7nN%6ck@6'
Subject='containertestcluster.eastus.cloudapp.azure.com'
VaultName='containertestvault'
VmPassword='Mypa$$word!321'
VmUserName='sfadminuser'
# Login to Azure and set the subscription
az login
az account set --subscription <mySubscriptionID>
# Create resource group
az group create --name $ResourceGroupName --location $Location
# Create secure five node Linux cluster. Creates a key vault in a resource group
# and creates a certificate in the key vault. The certificate's subject name must match
# the domain that you use to access the Service Fabric cluster. The certificate is downloaded locally.
az sf cluster create --resource-group $ResourceGroupName --location $Location --certificate-output-folder . --certificate-password $Password --certificate-subject-name $Subject --cluster-name $ClusterName --cluster-size 5 --os UbuntuServer1804 --vault-name $VaultName --vault-resource-group $ResourceGroupName --vm-password $VmPassword --vm-user-name $VmUserName
Notes
Le service frontal web est configuré pour écouter le trafic entrant sur le port 80. Par défaut, le port 80 est ouvert sur les machines virtuelles du cluster et sur l’équilibreur de charge Azure.
Configurer votre environnement
Service Fabric propose plusieurs outils que vous pouvez utiliser pour gérer un cluster et ses applications :
- Service Fabric Explorer, un outil reposant sur un navigateur.
- Interface CLI Service Fabric, qui s’exécute sur Azure CLI.
- Commandes PowerShell.
Dans ce guide de démarrage rapide, vous utilisez l’interface CLI Service Fabric et Service Fabric Explorer (outil basé sur le web). Pour utiliser Service Fabric Explorer, vous devez importer le fichier PFX du certificat dans le navigateur. Par défaut, aucun mot de passe n’est associé au fichier PFX.
Mozilla Firefox est le navigateur par défaut dans Ubuntu 18.04. Pour importer le certificat dans Firefox, cliquez sur le bouton de menu dans le coin supérieur droit de votre navigateur, puis cliquez sur Options. Sur la page Préférences, recherchez « certificats » via le champ de recherche. Cliquez sur Afficher les certificats, sélectionnez l’onglet Your Certificates (Vos certificats), cliquez sur Importer et suivez les invites pour importer le certificat.
Déployer l’application Service Fabric
Connectez-vous au cluster Service Fabric dans Azure à l’aide de l’interface CLI. Le point de terminaison est le point de terminaison de gestion de votre cluster. Dans la section précédente, vous avez créé le fichier PEM.
sfctl cluster select --endpoint https://containertestcluster.eastus.cloudapp.azure.com:19080 --pem containertestcluster22019013100.pem --no-verify
Utilisez le script d’installation pour copier la définition d’application de vote dans le cluster, inscrivez le type d’application et créez une instance de l’application. Le fichier de certificat PEM doit se trouver dans le même répertoire que le fichier install.sh.
./install.sh
Ouvrez un navigateur web et accédez au point de terminaison Service Fabric Explorer pour votre cluster. Le point de terminaison a le format suivant : https://<my-azure-service-fabric-cluster-url>:19080/Explorer. Par exemple,
https://containertestcluster.eastus.cloudapp.azure.com:19080/Explorer
.Développez le nœud Applications pour vous assurer qu’une entrée s’affiche pour le type d’application de vote et l’instance que vous avez créée.
Pour vous connecter au conteneur en cours d’exécution, ouvrez un navigateur web et accédez à l’URL de votre cluster. Par exemple,
http://containertestcluster.eastus.cloudapp.azure.com:80
. L’application de vote doit s’afficher dans le navigateur.
Notes
Vous pouvez également déployer des applications Service Fabric avec Docker Compose. Par exemple, la commande suivante peut servir à déployer et installer l’application sur le cluster Service Fabric à l’aide de Docker Compose.
sfctl compose create --deployment-name TestApp --file-path ../docker-compose.yml
Basculer un conteneur dans un cluster
Service Fabric s’assure que vos instances de conteneur se déplacent automatiquement vers d’autres nœuds du cluster en cas d’échec. Il vous est également possible de drainer manuellement un nœud pour les conteneurs, puis de le déplacer normalement vers d’autres nœuds du cluster. Service Fabric propose plusieurs options pour mettre à l’échelle vos services. Dans les étapes suivantes, vous utilisez Service Fabric Explorer.
Pour basculer le conteneur frontal, effectuez les étapes suivantes :
Ouvrez Service Fabric Explorer dans votre cluster. Par exemple,
https://containertestcluster.eastus.cloudapp.azure.com:19080/Explorer
.Cliquez sur le nœud fabric:/Voting/azurevotefront dans l’arborescence, puis développez le nœud de la partition (représenté par un GUID). Notez le nom du nœud dans l’arborescence, qui affiche les nœuds en cours d’exécution dans le conteneur. Par exemple,
_nodetype_1
.Développez le nœud Nœuds dans l’arborescence. Cliquez sur les points de suspension (...) à côté du nœud qui exécute le conteneur.
Choisissez Redémarrer pour redémarrer ce nœud et confirmer l’action de redémarrage. Le redémarrage entraîne le basculement du conteneur vers un autre nœud du cluster.
Mettre à l’échelle les applications et services dans un cluster
Les services Service Fabric peuvent être facilement mis à l’échelle dans un cluster pour s’adapter à la charge sur les services. Pour mettre à l’échelle un service, vous modifiez le nombre d’instances s’exécutant dans le cluster.
Pour mettre à l’échelle le service frontal web, procédez comme suit :
Ouvrez Service Fabric Explorer dans votre cluster. Par exemple,
https://containertestcluster.eastus.cloudapp.azure.com:19080
.Cliquez sur les points de suspension (trois points) à côté du nœud fabric:/Voting/azurevotefront dans l’arborescence, puis choisissez Mettre le service à l’échelle.
Vous pouvez maintenant choisir de mettre à l’échelle le nombre d’instances du service frontal web.
Définissez le nombre sur 2, puis cliquez sur Scale Service (Mettre à l’échelle le service).
Cliquez sur le nœud fabric:/Voting/azurevotefront dans l’arborescence, puis développez le nœud de la partition (représenté par un GUID).
Vous constatez désormais que le service possède deux instances. Les nœuds exécutés par les instances sont visibles dans l’arborescence.
Via cette tâche de gestion simple, vous avez doublé les ressources disponibles pour permettre au service frontal de traiter la charge utilisateur. Il est important de comprendre que vous n’avez pas besoin de plusieurs instances d’un service pour que celui-ci s’exécute de manière fiable. En cas de défaillance d’un service, Service Fabric veille à ce qu’une nouvelle instance du service s’exécute dans le cluster.
Nettoyer les ressources
Utilisez le script de désinstallation (uninstall.sh) fourni dans le modèle pour supprimer l’instance de l’application du cluster et annuler l’inscription du type d’application. Ce script prend un certain temps pour nettoyer l’instance. Par conséquent, veillez à ne pas exécuter le script d’installation immédiatement après ce script. Vous pouvez utiliser Service Fabric Explorer afin de déterminer quand la suppression de l’instance et l’annulation de l’inscription du type d’application ont eu lieu.
./uninstall.sh
Le plus simple pour supprimer le cluster et toutes les ressources qu’il consomme consiste à supprimer le groupe de ressources.
Connectez-vous à Azure et sélectionnez l’ID d’abonnement avec lequel vous souhaitez supprimer le cluster. Vous pouvez trouver votre ID d’abonnement en vous connectant au portail Azure. Pour supprimer le groupe de ressources et toutes les ressources de cluster, utilisez la commande az group delete.
az login
az account set --subscription <guid>
ResourceGroupName="containertestcluster"
az group delete --name $ResourceGroupName
Si vous avez fini d’utiliser votre cluster, vous pouvez supprimer le certificat du magasin de certificats. Par exemple :
- Sur Windows : utilisez le composant logiciel enfichable MMC Certificats. Veillez à sélectionner My user account (Mon compte d’utilisateur) lors de l’ajout du composant logiciel enfichable. Accédez à
Certificates - Current User\Personal\Certificates
et supprimez le certificat. - Sur Mac : utilisez l’application Keychain.
- Sur Ubuntu : suivez les étapes que vous avez utilisées pour afficher les certificats, puis supprimez le certificat.
Étapes suivantes
Dans ce démarrage rapide, vous avez déployé une application de conteneur Linux dans un cluster Service Fabric dans Azure, vous avez basculé l’application et vous l’avez mise à l’échelle dans le cluster. Pour en savoir plus sur l’utilisation de conteneurs de Linux dans Service Fabric, passez au tutoriel sur les applications de conteneur Linux.