Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de changer d’annuaire.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer d’annuaire.
Dans ce tutoriel, vous allez découvrir comment créer un service Eureka conçu pour rester opérationnel face aux défaillances et à la forte demande. La création d’un service Eureka hautement disponible permet de garantir que le registre de services que vous utilisez pour Azure Container Apps est toujours disponible pour les clients, quelle que soit la demande.
L’obtention de l’état de haute disponibilité pour Eureka inclut la liaison de plusieurs instances de serveur Eureka afin qu’elles forment un cluster. Le cluster fournit des ressources de sorte que si un serveur Eureka tombe en panne, les autres services restent disponibles pour les demandes.
Dans ce tutoriel, vous allez :
- Créez des serveurs Eureka pour les composants Spring.
- Liez deux serveurs Eureka pour les composants Spring dans un cluster.
- Associez une application conteneur aux deux serveurs Eureka pour une découverte de services hautement disponible.
Prérequis
- Compte Azure avec un abonnement actif. Si vous n’en avez pas déjà, vous pouvez en créer un gratuitement.
- Interface de ligne de commande Azure.
Considérations
Lorsque vous exécutez des composants Java managés dans Container Apps, tenez compte des détails suivants :
| Élément | Explication |
|---|---|
| Étendue | Les composants s’exécutent dans le même environnement que l’application conteneur connectée. |
| Mise à l'échelle | Les composants ne peuvent pas être mis à l’échelle. Les propriétés de mise à l’échelle minReplicas et maxReplicas sont toutes deux définies sur 1. |
| Ressources | L’allocation des ressources de conteneur pour les composants est fixe. Le nombre de cœurs de processeur est de 0,5 et la taille de la mémoire est de 1 Go. |
| Tarifs | La facturation des composants est soumise à des tarifs basés sur la consommation. Les ressources consommées par les composants managés sont facturées aux taux actifs ou inactifs, en fonction de l’utilisation des ressources. Vous pouvez supprimer les composants qui ne sont plus utilisés pour arrêter la facturation. |
| Liaison | Les applications conteneur se connectent à un composant via une liaison. La liaison injecte les configurations dans les variables d’environnement de l’application conteneur. Une fois la liaison établie, l’application conteneur peut lire les valeurs de configuration à partir des variables d’environnement et se connecter au composant. |
Configurer les ressources initiales
Procédez comme suit pour créer certaines ressources dont vous avez besoin pour votre cluster de service Eureka.
Créez des variables qui contiennent des valeurs de configuration de l’application.
export LOCATION=eastus export RESOURCE_GROUP=my-services-resource-group export ENVIRONMENT=my-environment export EUREKA_COMPONENT_FIRST=eureka01 export EUREKA_COMPONENT_SECOND=eureka02 export APP_NAME=sample-service-eureka-client export IMAGE="mcr.microsoft.com/javacomponents/samples/sample-service-eureka-client:latest"Utilisez Azure CLI pour vous connecter à Azure.
az loginCréez un groupe de ressources.
az group create --name $RESOURCE_GROUP --location $LOCATIONCréez votre environnement Container Apps.
az containerapp env create \ --name $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --location $LOCATION
Créer des serveurs pour un cluster
Créez deux composants Eureka Server pour Spring.
az containerapp env java-component eureka-server-for-spring create \
--environment $ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--name $EUREKA_COMPONENT_FIRST
az containerapp env java-component eureka-server-for-spring create \
--environment $ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--name $EUREKA_COMPONENT_SECOND
Lier des composants pour former un cluster
Pour que les serveurs Eureka fonctionnent dans une configuration à haute disponibilité, ils doivent être liés en tant que cluster.
Liez le premier serveur Eureka au deuxième.
az containerapp env java-component eureka-server-for-spring update \ --environment $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --name $EUREKA_COMPONENT_FIRST \ --bind $EUREKA_COMPONENT_SECONDLiez le deuxième serveur Eureka au premier.
az containerapp env java-component eureka-server-for-spring update \ --environment $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --name $EUREKA_COMPONENT_SECOND \ --bind $EUREKA_COMPONENT_FIRST
Déployer et lier l’application
Avec les composants serveur liés, vous pouvez créer l’application conteneur et la lier aux deux composants Eureka.
Créez l’application conteneur.
az containerapp create \ --name $APP_NAME \ --resource-group $RESOURCE_GROUP \ --environment $ENVIRONMENT \ --image $IMAGE \ --min-replicas 1 \ --max-replicas 1 \ --ingress external \ --target-port 8080Liez l’application conteneur au premier composant serveur Eureka.
az containerapp update \ --name $APP_NAME \ --resource-group $RESOURCE_GROUP \ --bind $EUREKA_COMPONENT_FIRSTLiez l’application conteneur au deuxième composant serveur Eureka.
az containerapp update \ --name $APP_NAME \ --resource-group $RESOURCE_GROUP \ --bind $EUREKA_COMPONENT_SECOND
Afficher le tableau de bord
Important
Pour afficher le tableau de bord Eureka Server for Spring, vous devez disposer du rôle Microsoft.App/managedEnvironments/write, Owner ou Contributor attribué à votre compte pour la ressource d’environnement Container Apps.
- Si vous avez déjà l’un de ces rôles, passez à la section Obtenir l’URL du tableau de bord pour obtenir l’URL et afficher le tableau de bord.
- Si vous souhaitez créer une définition de rôle personnalisée et l’affecter à votre compte, effectuez les étapes décrites dans la section suivante, Créez et attribuez un rôle personnalisé.
- Si vous souhaitez attribuer à votre compte le rôle
OwnerouContributorpour la ressource, effectuez cette attribution, puis passez à la section Obtenir l’URL du tableau de bord.
Créer et attribuer un rôle personnalisé
Créez la définition de rôle personnalisé. Avant d’exécuter cette commande, remplacez l’espace réservé dans la
AssignableScopesvaleur par votre ID d’abonnement.az role definition create --role-definition '{ "Name": "Java Component Dashboard Access", "IsCustom": true, "Description": "Can access managed Java Component dashboards in managed environments", "Actions": [ "Microsoft.App/managedEnvironments/write" ], "AssignableScopes": ["/subscriptions/<SUBSCRIPTION_ID>"] }'Obtenez l’ID de ressource de l’environnement Container Apps.
export ENVIRONMENT_ID=$(az containerapp env show \ --name $ENVIRONMENT --resource-group $RESOURCE_GROUP \ --query id \ --output tsv)Attribuez le rôle personnalisé à votre compte pour la ressource d’environnement Container Apps. Avant d’exécuter cette commande, remplacez l’espace réservé dans la
assigneevaleur par votre ID d’objet utilisateur ou votre ID de principal de service.az role assignment create \ --assignee <USER_OR_SERVICE_PRINCIPAL_ID> \ --role "Java Component Dashboard Access" \ --scope $ENVIRONMENT_ID
Obtenir l’URL du tableau de bord
Obtenez l’URL du tableau de bord Serveur Eureka pour Spring.
az containerapp env java-component eureka-server-for-spring show \
--environment $ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--name $EUREKA_COMPONENT_FIRST \
--query properties.ingress.fqdn \
--output tsv
Cette commande retourne l’URL que vous pouvez utiliser pour accéder au tableau de bord Serveur Eureka pour Spring. Dans le tableau de bord, vous pouvez vérifier que la configuration du serveur Eureka se compose de deux réplicas.
Nettoyer les ressources
Les ressources créées dans ce tutoriel affectent votre facture Azure. Si vous n’allez pas utiliser ces services à long terme, exécutez la commande suivante pour supprimer tout ce qui a été créé dans ce didacticiel.
az group delete --resource-group $RESOURCE_GROUP