Tutoriel .NET | Déployer un microservice sur Azure
Intro
Objectif
Apprenez à déployer des microservices, créés avec .NET et Docker, pour Microsoft Azure.
Prérequis
Obligatoire : Ce didacticiel utilise l’application créée dans le tutoriel Votre premier microservice.
Obligatoire : compte Docker Hub.
Durée d’exécution
15-20 minutes
Scénario
Prenez un microservice créé précédemment et déployez-le sur Azure à l’aide de DockerHub et Azure Kubernetes Service (AKS).
Pousser vers Docker Hub
Docker Hub est un emplacement central pour charger des images Docker. De nombreux produits, notamment Microsoft Azure, peuvent créer des conteneurs basés sur des images dans Docker Hub.
Se connecter à Docker Hub
Dans votre invite de commande, exécutez la commande suivante :
Dans votre terminal, exécutez la commande suivante :
docker login
Utilisez le nom d’utilisateur et le mot de passe créés lorsque vous avez téléchargé Docker dans le didacticiel précédent. Vous pouvez visiter le site web Docker Hub pour réinitialiser votre mot de passe si nécessaire.
Télécharger l'image sur Docker Hub
Ré-étiquetez (renommez) votre image Docker sous votre nom d'utilisateur et transférez-la vers Docker Hub à l'aide des commandes suivantes :
docker tag mymicroservice [YOUR DOCKER USERNAME]/mymicroservice
docker push [YOUR DOCKER USERNAME]/mymicroservice
La commande Push charge votre image sur Docker Hub, ce qui peut prendre un certain temps.
Configurer les outils Azure
Créer un compte Azure
Si vous débutez avec Azure, vous pouvez créer un compte gratuit. Si vous avez un compte existant, vous pouvez ignorer cette étape.
Créer un compte Azure gratuitInstaller l'interface de ligne de commande Azure
Le Azure CLI fournit des outils pour gérer votre compte Azure.
Connectez-vous à Azure
Une fois l'installation terminée, ouvrez une nouvelle invite de commande et connectez-vous à votre compte Azure en exécutant la commande suivante :
Une fois l'installation terminée, ouvrez un nouveau terminal et connectez-vous à votre compte Azure en exécutant la commande suivante :
az login
Installer l’interface de ligne de commande AKS
Kubernetes est une plateforme d’orchestration de conteneur. Un Orchestrator est responsable de l’exécution, de la distribution, de la mise à l’échelle et de la réparation d’applications constituées d’une collection de conteneurs. Azure Kubernetes Service (AKS) fournit Kubernetes en tant que service managé.
Exécutez la commande suivante pour installer les outils de ligne de commande pour AKS :
az aks install-cli
Vous pouvez être alerté avec des recommandations pour définir des variables PATH système. Celles-ci ne sont pas requises pour ce didacticiel.
Créer des ressources Azure
Créer un groupe de ressources
Un groupe de ressources est utilisé pour organiser un ensemble de ressources liées à une seule application.
Exécutez la commande suivante pour créer un groupe de ressources dans la région USA Ouest :
az group create --name MyMicroserviceResources --location westus
Si vous souhaitez utiliser un emplacement différent sur la commande précédente, vous pouvez exécuter la commande suivante pour voir quelles régions sont disponibles sur votre compte et en choisir une plus proche de vous :
az account list-locations -o table
Si vous souhaitez utiliser une autre souscription pour la session, vous pouvez obtenir une liste de tous les abonnements en exécutant la commande suivante :
az account list --all
Ensuite, vous pouvez exécuter la commande suivante pour définir une souscription spécifique pour la session :
az account set -s NAME_OR_ID
Créer un cluster AKS
Exécutez la commande suivante pour créer un cluster AKS dans le groupe de ressources :
Il est normal que cette commande prenne plusieurs minutes.
az aks create --resource-group MyMicroserviceResources --name MyMicroserviceCluster --node-count 1 --enable-addons http_application_routing --generate-ssh-keys
Exécutez la commande suivante pour télécharger les identifiants à déployer sur votre cluster AKS :
az aks get-credentials --resource-group MyMicroserviceResources --name MyMicroserviceCluster
Déployer sur Azure
Revenir à l’annuaire d’applications
Comme vous avez ouvert une nouvelle invite de commandes à l’étape précédente, vous devez revenir au répertoire dans lequel vous avez créé votre service.
Comme vous avez ouvert un nouveau terminal à l’étape précédente, vous devez revenir au répertoire dans lequel vous avez créé votre service.
cd MyMicroservice
Créer un fichier de déploiement
Les outils AKS utilisent un fichier .yaml
pour définir comment déployer votre conteneur.
Créez un fichier appelé deploy.yaml
avec cette commande :
touch deploy.yaml
fsutil file createnew deploy.yaml 0
Vous pouvez ensuite l’ouvrir dans votre éditeur de texte favori.
Vous pouvez ensuite l'ouvrir dans votre éditeur de texte préféré manuellement ou avec cette commande :
open deploy.yaml
start deploy.yaml
Remplacez le contenu de deploy.yaml
par ce qui suit dans l'éditeur de texte, en veillant à remplacer [YOUR DOCKER ID] par votre véritable ID Docker.
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mymicroservice
spec:
replicas: 1
template:
metadata:
labels:
app: mymicroservice
spec:
containers:
- name: mymicroservice
image: [YOUR DOCKER ID]/mymicroservice:latest
ports:
- containerPort: 80
env:
- name: ASPNETCORE_URLS
value: http://*:80
selector:
matchLabels:
app: mymicroservice
---
apiVersion: v1
kind: Service
metadata:
name: mymicroservice
spec:
type: LoadBalancer
ports:
- port: 80
selector:
app: mymicroservice
Exécuter la tâche de déploiement
Exécutez la commande suivante pour déployer votre microservice en fonction des paramètres de deploy.yaml
:
kubectl apply -f deploy.yaml
Testez votre service déployé
Exécutez la commande suivante pour afficher les détails de votre service déployé :
kubectl get service mymicroservice --watch
Entre autres choses, la commande précédente affichera l'adresse IP externe sur laquelle votre service est disponible (EXTERNAL-IP).
À l’aide de l’adresse IP externe, ouvrez une nouvelle fenêtre de navigateur et accédez à http://[VOTRE ADRESSE IP EXTERNE]/WeatherForecast
Si EXTERNAL-IP est marqué comme <pending>
, une nouvelle ligne apparaîtra automatiquement une fois l'IP externe attribuée.
Appuyez sur CTRL+C à l’invite de commandes pour mettre fin à la commande kubectl get service
.
Appuyez sur CTRL+C sur votre terminal pour mettre fin à la commande kubectl get service
Félicitations ! Vous avez déployé un microservice sur Azure.
Mettre à l’échelle votre service
L’un des avantages de l’utilisation de Kubernetes est que vous pouvez facilement effectuer un scale-up d’un déploiement sur plusieurs instances pour gérer une charge supplémentaire. Actuellement, il n’y a qu’une seule instance. Nous allons donc effectuer une mise à l’échelle vers deux instances.
Exécutez la commande suivante pour faire évoluer votre service jusqu'à deux instances :
kubectl scale --replicas=2 deployment/mymicroservice
Nettoyer les ressources
Lorsque vous avez terminé de tester le microservice, vous pouvez supprimer toutes les ressources que vous avez créées à l'aide de la commande suivante :
az group delete -n MyMicroserviceResources
Étapes suivantes
Les ressources suivantes vous aideront à continuer à explorer les microservices avec .NET.
Microservices pour débutants
Laissez Nish vous guider dans les concepts de microservices et découvrez comment créer votre premier point de terminaison de microservices dans .NET :
Vous pourriez aussi être intéressé par...