Tutoriel : Mettre à l’échelle une application de conteneur
Azure Container Apps gère la mise à l’échelle horizontale automatique en utilisant un ensemble de règles de mise à l’échelle déclaratives. Quand une application conteneur effectue un scale-out, des instances de l’application conteneur sont créées à la demande. Ces instances sont appelées réplicas.
Dans ce tutoriel, vous ajoutez une règle de mise à l’échelle HTTP à votre application de conteneur et observez la façon dont votre application est mise à l’échelle.
Prérequis
Condition requise | Instructions |
---|---|
Compte Azure | Si vous ne possédez pas de compte Azure, vous pouvez créer un compte gratuit. Vous avez besoin de l’autorisation Contributeur sur l’abonnement Azure pour continuer. Pour plus d’informations, consultez Attribuer des rôles Azure à l’aide du portail Azure. |
Compte GitHub | Vous pouvez en obtenir un gratuitement. |
Azure CLI | Installez Azure CLI. |
Programme d’installation
Pour vous connecter à Azure à partir de l’interface CLI, exécutez la commande suivante et suivez les invites pour procéder à l’authentification.
az login
Pour être sûr d’utiliser la dernière version de l’interface CLI, exécutez la commande de mise à niveau.
az upgrade
Ensuite, installez ou mettez à jour l’extension Azure Container Apps pour l’interface CLI.
Si vous recevez des erreurs concernant des paramètres manquants lorsque vous exécutez des commandes az containerapp
dans Azure CLI ou les cmdlets du module Az.App
dans Azure PowerShell, assurez-vous que la dernière version de l’extension Azure Container Apps est installée.
az extension add --name containerapp --upgrade
Remarque
À compter de mai 2024, les extensions Azure CLI n’activent plus les fonctionnalités en préversion par défaut. Pour accéder aux fonctionnalités en préversion de Container Apps, installez l’extension Container Apps avec --allow-preview true
.
az extension add --name containerapp --upgrade --allow-preview true
Maintenant que la version actuelle de l’extension ou du module est installée, inscrivez les espaces de noms Microsoft.App
et Microsoft.OperationalInsights
.
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
Créer et déployer l’application conteneur
Créez et déployez votre application de conteneur à l’aide de la commande containerapp up
. Cette commande crée :
- Resource group
- Environnement Container Apps
- Espace de travail Log Analytics
Si l’une de ces ressources existe déjà, la commande utilise les ressources existantes plutôt que d’en créer de nouvelles.
Enfin, la commande crée et déploie l’application de conteneur à l’aide d’une image conteneur publique.
az containerapp up \
--name my-container-app \
--resource-group my-container-apps \
--location centralus \
--environment 'my-container-apps' \
--image mcr.microsoft.com/k8se/quickstart:latest \
--target-port 8080 \
--ingress external \
--query properties.configuration.ingress.fqdn \
Notes
Vérifiez que la valeur du paramètre --image
est en minuscules.
En définissant --ingress
sur external
, vous rendez l’application conteneur disponible pour les demandes publiques.
La commande up
retourne le nom de domaine complet de l’application de conteneur. Copiez ce nom de domaine complet (FQDN) dans un fichier texte. Vous l’utiliserez dans la section Envoyer des demandes. Votre FQDN ressemble à l’exemple suivant :
https://my-container-app.icydune-96848328.centralus.azurecontainerapps.io
Ajouter une règle de mise à l’échelle
Ajoutez une règle de mise à l’échelle HTTP à votre application de conteneur en exécutant la commande az containerapp update
.
az containerapp update \
--name my-container-app \
--resource-group my-container-apps \
--scale-rule-name my-http-scale-rule \
--scale-rule-http-concurrency 1
Cette commande ajoute une règle de mise à l’échelle HTTP à votre application de conteneur avec le nom my-http-scale-rule
et un paramètre d’accès concurrentiel de 1
. Si votre application reçoit plusieurs requêtes HTTP simultanées, le runtime crée des réplicas de votre application pour gérer les requêtes.
La commande update
retourne la nouvelle configuration en tant que réponse JSON pour vérifier que votre demande a réussi.
Sortie du journal de démarrage
Vous pouvez observer les effets de la mise à l’échelle de votre application en affichant les journaux générés par le runtime Container Apps. Utilisez la commande az containerapp logs show
pour commencer à écouter les entrées de journal.
az containerapp logs show \
--name my-container-app \
--resource-group my-container-apps \
--type=system \
--follow=true
La commande show
retourne les entrées des journaux système pour votre application de conteneur en temps réel. Vous pouvez vous attendre à une réponse semblable à celle-ci :
{
"TimeStamp":"2023-08-01T16:49:03.02752",
"Log":"Connecting to the container 'my-container-app'..."
}
{
"TimeStamp":"2023-08-01T16:49:03.04437",
"Log":"Successfully Connected to container:
'my-container-app' [Revision: 'my-container-app--9uj51l6',
Replica: 'my-container-app--9uj51l6-5f96557ffb-5khg9']"
}
{
"TimeStamp":"2023-08-01T16:47:31.9480811+00:00",
"Log":"Microsoft.Hosting.Lifetime[14]"
}
{
"TimeStamp":"2023-08-01T16:47:31.9481264+00:00",
"Log":"Now listening on: http://[::]:8080"
}
{
"TimeStamp":"2023-08-01T16:47:31.9490917+00:00",
"Log":"Microsoft.Hosting.Lifetime[0]"
}
{
"TimeStamp":"2023-08-01T16:47:31.9491036+00:00",
"Log":"Application started. Press Ctrl+C to shut down."
}
{
"TimeStamp":"2023-08-01T16:47:31.949723+00:00",
"Log":"Microsoft.Hosting.Lifetime[0]"
}
{
"TimeStamp":"2023-08-01T16:47:31.9497292+00:00",
"Log":"Hosting environment: Production"
}
{
"TimeStamp":"2023-08-01T16:47:31.9497325+00:00",
"Log":"Microsoft.Hosting.Lifetime[0]"
}
{
"TimeStamp":"2023-08-01T16:47:31.9497367+00:00",
"Log":"Content root path: /app/"
}
Pour plus d’informations, consultez az containerapp logs.
Envoyer des demandes
Ouvrez un nouvel interpréteur de commandes bash. Exécutez la commande suivante, en remplaçant <YOUR_CONTAINER_APP_FQDN>
par le nom de domaine complet de votre application de conteneur enregistrée à la section Créer et déployer l’application de conteneur.
seq 1 50 | xargs -Iname -P10 curl "<YOUR_CONTAINER_APP_FQDN>"
Ces commandes envoient 50 requêtes à votre application de conteneur dans des lots simultanés de 10 requêtes chacune.
Commande ou argument | Description |
---|---|
seq 1 50 |
Génère une séquence de nombres de 1 à 50. |
| |
L’opérateur barre verticale envoie la séquence à la commande xargs . |
xargs |
Exécute curl avec l’URL spécifiée |
-Iname |
Agit comme un espace réservé pour la sortie de seq . Cet argument empêche l’envoi de la valeur renvoyée à la commande curl . |
curl |
Appelle l’URL donnée. |
-P10 |
Indique à xargs d’exécuter jusqu’à 10 processus à la fois. |
Pour plus d’informations, consultez la documentation pour :
Dans le premier interpréteur de commandes, où vous avez exécuté la commande az containerapp logs show
, la sortie contient désormais une ou plusieurs entrées de journal comme suit.
{
"TimeStamp":"2023-08-01 18:09:52 +0000 UTC",
"Type":"Normal",
"ContainerAppName":"my-container-app",
"RevisionName":"my-container-app--9uj51l6",
"ReplicaName":"my-container-app--9uj51l6-5f96557ffb-f795d",
"Msg":"Replica 'my-container-app--9uj51l6-5f96557ffb-f795d' has been scheduled to run on a node.",
"Reason":"AssigningReplica",
"EventSource":"ContainerAppController",
"Count":0
}
Afficher la mise à l’échelle dans le portail Azure (facultatif)
- Connectez-vous au portail Azure.
- Dans la barre de recherche en haut, entrez my-container-app.
- Dans les résultats de la recherche, sous Ressources, sélectionnez my-container-app.
- Dans la barre de navigation à gauche, développez Application, puis sélectionnez Mettre à l’échelle et réplicas.
- Dans la page Mettre à l’échelle et réplicas, sélectionnez Réplicas.
- Votre application de conteneur a maintenant plusieurs réplicas en cours d’exécution.
Vous devrez peut-être sélectionner Actualiser pour voir les nouvelles réplicas.
Dans la barre de navigation à gauche, développez Supervision, puis sélectionnez Métriques.
Dans la page Métriques, définissez Métrique sur Requêtes.
Sélectionnez Appliquer le fractionnement.
Développez la liste déroulante Valeurs et cochez Réplica.
Sélectionnez l’icône de coche bleue pour terminer la modification du fractionnement.
Le graphique montre les requêtes reçues par votre application de conteneur, divisées par réplica.
Par défaut, l’échelle du graphique est définie sur une durée de 24 heures, avec une granularité de temps de 15 minutes. Sélectionnez l’échelle et remplacez-la par les 30 dernières minutes, avec une granularité de temps d’une minute. Sélectionnez le bouton Appliquer.
Sélectionnez sur le graphique et faites glisser pour mettre en évidence l’augmentation récente du nombre de requêtes reçues par votre application de conteneur.
La capture d’écran suivante montre une vue zoomée de la façon dont les requêtes reçues par votre application de conteneur sont réparties entre les réplicas.
Nettoyer les ressources
Si vous ne souhaitez pas continuer à utiliser cette application, exécutez la commande suivante pour supprimer le groupe de ressources ainsi que toutes les ressources créées dans ce tutoriel.
Attention
La commande suivante supprime le groupe de ressources spécifié et toutes les ressources qu’il contient. Si des ressources en dehors du cadre de ce tutoriel existent dans le groupe de ressources spécifié, elles seront également supprimées.
az group delete --name my-container-apps
Conseil
Vous rencontrez des problèmes ? Faites-le nous savoir sur GitHub en ouvrant un problème dans le dépôt Azure Container Apps.