Partager via


Tutoriel : Configurer un conteneur sidecar pour une application conteneur personnalisée

Ce tutoriel vous montre comment ajouter un collecteur OpenTelemetry en tant que conteneur side-car à une application conteneur personnalisée Linux dans Azure App Service.

Les conteneurs sidecar dans App Service vous permettent de déployer des services et fonctionnalités supplémentaires sur vos applications Linux sans les associer étroitement au conteneur principal intégré ou personnalisé. Les conteneurs sidecar s’exécutent en même temps que le conteneur d’application principal dans le même plan App Service.

Vous pouvez ajouter jusqu’à neuf conteneurs sidecar pour chaque application Linux dans App Service. Par exemple, vous pouvez ajouter des services de surveillance, de journalisation, de configuration et de mise en réseau en tant que conteneurs sidecar. Un sidecar collecteur OpenTelemetry est un exemple de surveillance.

Pour les applications Linux « apportez votre propre code », consultez Tutoriel : Configurer un conteneur sidecar pour une application Linux dans Azure App Service.

Conditions préalables

  • Si vous ne disposez pas d’un compte Azure, créez-en un gratuitement avant de commencer.

  • Vous pouvez exécuter les commandes de ce tutoriel à l’aide d’Azure Cloud Shell, un interpréteur de commandes interactif que vous utilisez via votre navigateur pour travailler avec les services Azure. Pour utiliser Cloud Shell :

    1. Sélectionnez le bouton Lancer Cloud Shell suivant ou accédez à https://shell.azure.com l’ouverture de Cloud Shell dans votre navigateur.

    2. Connectez-vous à Azure si nécessaire et vérifiez que vous êtes dans l’environnement Bash de Cloud Shell.

    3. Sélectionnez Copier dans n’importe quel bloc de code, collez le code dans Cloud Shell et exécutez-le.

      Les azd commandes de ce didacticiel utilisent Azure Developer CLI, un outil open source qui accélère l’approvisionnement et le déploiement de ressources d’application sur Azure.

1. Configurer les ressources du didacticiel

Pour cloner l’exemple de référentiel et créer les ressources de ce didacticiel, exécutez les commandes suivantes dans Cloud Shell. Lorsque vous y êtes invité, sélectionnez l’abonnement Azure et la région Azure que vous souhaitez utiliser.

git clone https://github.com/Azure-Samples/app-service-sidecar-tutorial-prereqs
cd app-service-sidecar-tutorial-prereqs
azd env new my-sidecar-env
azd provision

La azd provision commande utilise les modèles inclus pour créer un groupe de ressources Azure appelé my-sidecar-env_group qui contient les ressources Azure suivantes :

Une fois le déploiement terminé, vous devez voir une sortie similaire à l’exemple suivant :

Success!

APPLICATIONINSIGHTS_CONNECTION_STRING = InstrumentationKey=aaaaaaaa-0b0b-1c1c-2d2d-333333333333;IngestionEndpoint=https://eastus2-3.in.applicationinsights.azure.com/;LiveEndpoint=https://eastus2.livediagnostics.monitor.azure.com/;ApplicationId=00001111-aaaa-2222-bbbb-3333cccc4444
Azure container registry name = acro2lc774l6vjgg
Managed identity resource ID = /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-sidecar-env_group/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id-my-sidecar-env_group
Managed identity client ID = 00aa00aa-bb11-cc22-dd33-44ee44ee44ee

Open resource group in the portal: https://portal.azure.com/#@/resource/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-sidecar-env_group

Copiez et enregistrez la valeur de APPLICATIONINSIGHTS_CONNECTION_STRING pour l'utiliser plus tard dans ce didacticiel.

Sélectionnez le lien du Open resource group in the portal pour ouvrir le groupe de ressources provisionné dans le portail Azure.

2. Création d’une application compatible avec sidecar

Dans le groupe de ressources du portail Azure, créez une application conteneur Linux personnalisée avec support pour sidecar et configurez le conteneur principal.

  1. Dans la page du groupe de ressources du portail Azure, sélectionnez Créer.

  2. Dans la page Place de marché , recherchez l’application web, sélectionnez la flèche vers le bas en regard de créer sur la vignette Application web , puis sélectionnez Application web.

    Capture d’écran montrant la page Place de marché Azure avec l’application web en cours de recherche et le bouton Créer une application web mis en surbrillance.

  3. Sous l’onglet Informations de base de la page Créer une application web , fournissez les informations suivantes :

    • Nom : entrez un nom unique pour l’application web.
    • Publier : sélectionner Conteneur.
    • Système d’exploitation : sélectionnez Linux.
    • Région : sélectionnez la même région que celle que vous avez choisie pour azd provision.
    • Plan Linux : sélectionnez le plan App Service fourni (Nouveau).

    Capture d’écran montrant les paramètres de base de l’application web conteneur personnalisée Linux.

  4. Laissez le reste des paramètres tels qu’ils le sont, puis sélectionnez l’onglet Conteneur en haut de la page.

  5. Sous l’onglet Conteneur , fournissez les informations suivantes :

    • Prise en charge sidecar : définissez la configuration améliorée avec la prise en charge de sidecar.
    • Source de l’image : sélectionnez Azure Container Registry.
    • Nom : assurez-vous que main est visible.
    • Registre : sélectionnez le registre créé par azd provision.
    • Authentification : sélectionnez Identité managée.
    • Identité : sélectionnez l’identité managée créée par azd provision.
    • Image : Entrez nginx.
    • Balise: Entrez la dernière version.
    • Port : Entrez 80 s’il n’est pas déjà défini.

    Capture d’écran montrant les paramètres de conteneur pour l’application web conteneur personnalisée Linux.

    Remarque

    Ces paramètres sont configurés différemment dans les applications avec sidecar (module complémentaire) que dans les applications sans sidecars. Pour plus d’informations, consultez Les différences entre les conteneurs personnalisés avec sidecar.

  6. Sélectionnez Vérifier + créer, puis quand la validation réussit, sélectionnez Créer.

  7. Une fois le déploiement terminé, sélectionnez Accéder à la ressource.

  8. Sur la page de votre application, ouvrez l’URL en regard du domaine par défaut, https://<app-name>.azurewebsites.netdans un nouvel onglet de navigateur pour afficher la page nginx par défaut.

3. Ajouter un conteneur sidecar à l’application

Ajoutez un conteneur sidecar à votre application conteneur personnalisée Linux.

  1. Dans la page de l’application dans le portail Azure, sélectionnez Centre de déploiement sous Déploiement dans le menu de navigation gauche. La page Centre de déploiement affiche tous les conteneurs de l’application, actuellement uniquement le conteneur principal.

  2. Sélectionnez Conteneurs.

  3. Sélectionnez Ajouter un>conteneur personnalisé.

  4. Dans le volet Ajouter un conteneur , renseignez les informations suivantes :

    • Nom : Entrez otel-collector.
    • Source de l’image : sélectionnez Azure Container Registry.
    • Registre : sélectionnez le registre créé par azd provision.
    • Authentification : sélectionnez Identité managée.
    • Identité : sous Utilisateur affecté, sélectionnez l’identité managée créée par azd provision.
    • Image : entrez otel-collector.
    • Balise d’image : Entrez la dernière version.
    • Port : Entrez 4317.
  5. Sélectionnez Appliquer.

    Capture d’écran montrant comment configurer un conteneur sidecar dans le Centre de déploiement d’une application web.

Il existe maintenant deux conteneurs dans le centre de déploiement intitulé Main et Sidecar. Une application doit comporter un conteneur principal et peut également inclure plusieurs conteneurs auxiliaires.

4. Configurer des variables d’environnement

Dans l’exemple de scénario, le otel-collector side-car est configuré pour exporter les données OpenTelemetry vers Azure Monitor à l’aide de la chaîne de connexion en tant que variable d’environnement. Pour plus d'informations, consultez le fichier de configuration OpenTelemetry pour l'image otel-collector.

Configurez la variable d’environnement pour le conteneur en configurant les paramètres de l’application . Les paramètres de l’application sont accessibles à tous les conteneurs de l’application.

  1. Dans la page de l’application dans le portail Azure, sélectionnez Variables d’environnement sous Paramètres dans le menu de navigation de gauche.

  2. Sous l’onglet Paramètres de l’application de la page Variables d’environnement , sélectionnez Ajouter.

  3. Dans le volet Ajouter/Modifier le paramètre de l’application , entrez les valeurs suivantes :

    • Nom : APPLICATIONINSIGHTS_CONNECTION_STRING
    • Valeur : la valeur de APPLICATIONINSIGHTS_CONNECTION_STRING issue de la sortie de azd provision. Vous trouverez également cette valeur sous forme de chaîne de connexion dans la page Vue d’ensemble de la ressource Application Insight du groupe de ressources.
  4. Sélectionnez Appliquer, puis appliquez à nouveau, puis confirmez. Le paramètre d’application APPLICATIONINSIGHTS_CONNECTION_STRING apparaît désormais sous l’onglet Paramètres de l’application .

    Capture d’écran montrant la page Configuration d’une application web avec deux paramètres d’application ajoutés.

Remarque

Certains paramètres d’application ne s’appliquent pas aux applications sidecar activées. Pour plus d’informations, consultez Les différences entre les conteneurs personnalisés avec sidecar.

5. Vérifier dans Application Insights

Le otel-collector sidecar devrait maintenant exporter des données vers Application Insights.

  1. Accédez à votre application dans un nouvel onglet de navigateur et actualisez la page quelques fois pour générer certaines demandes web.

  2. Dans la page du groupe de ressources du portail Azure, sélectionnez la ressource Application Insights . Vous devez maintenant voir certaines données dans les graphiques par défaut dans la page Vue d’ensemble d’Application Insights.

    Capture d’écran de la page Application Insights montrant les données présentes dans les graphiques par défaut.

Remarque

Dans ce scénario de supervision courant, Application Insights n’est qu’une des cibles OpenTelemetry que vous pouvez utiliser, telles que Jaeger, Prometheus et Zipkin.

6. Nettoyer les ressources

Lorsque vous n’avez plus besoin de l’environnement que vous avez créé pour ce didacticiel, vous pouvez supprimer le groupe de ressources, qui supprime le service d’application et toutes les ressources associées. Exécutez la commande suivante dans le référentiel cloné dans Cloud Shell.

azd down