Compartir a través de


Tutorial: Configuración de un contenedor sidecar para una aplicación de contenedor personalizada

Este tutorial le enseña a agregar un recopilador de OpenTelemetry como un contenedor sidecar a una aplicación de contenedor personalizado de Linux en Azure App Service.

Los contenedores sidecar de App Service permiten implementar servicios y características adicionales en las aplicaciones linux sin acoplarlos estrechamente al contenedor principal integrado o personalizado. Los contenedores sidecar se ejecutan junto con el contenedor de aplicaciones principal en el mismo plan de App Service.

Puede agregar hasta nueve contenedores sidecar para cada aplicación de Linux en App Service. Por ejemplo, puede agregar servicios de supervisión, registro, configuración y redes como contenedores sidecar. Un sidecar de recopilador OpenTelemetry es un ejemplo de supervisión.

Para obtener aplicaciones de Linux de traiga su propio código, consulte Tutorial: Configurar un contenedor sidecar para una aplicación Linux en Azure App Service.

Prerrequisitos

  • Si no tiene una cuenta de Azure, cree una cuenta gratuita antes de comenzar.

  • Puede ejecutar los comandos de este tutorial mediante Azure Cloud Shell, un shell interactivo que se usa a través del explorador para trabajar con los servicios de Azure. Para usar Cloud Shell:

    1. Seleccione el siguiente botón Iniciar Cloud Shell o vaya a https://shell.azure.com para abrir Cloud Shell en el explorador.

    2. Inicie sesión en Azure si es necesario y asegúrese de que está en el entorno de Bash de Cloud Shell.

    3. Seleccione Copiar en cualquier bloque de código, pegue el código en Cloud Shell y ejecútelo.

      Los azd comandos de este tutorial usan la CLI para desarrolladores de Azure, una herramienta de código abierto que acelera el aprovisionamiento e implementación de recursos de aplicaciones en Azure.

1. Configuración de los recursos del tutorial

Para clonar el repositorio de ejemplo y crear los recursos de este tutorial, ejecute los siguientes comandos en Cloud Shell. Cuando se le solicite, seleccione la suscripción de Azure y la región de Azure que desea usar.

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

El azd provision comando usa las plantillas incluidas para crear un grupo de recursos de Azure denominado my-sidecar-env_group que contiene los siguientes recursos de Azure:

Cuando se complete la implementación, debería ver una salida similar a la del ejemplo siguiente:

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

Copie y guarde el valor para APPLICATIONINSIGHTS_CONNECTION_STRING usarlo más adelante en este tutorial.

Seleccione el vínculo de Open resource group in the portal para abrir el grupo de recursos aprovisionado en el portal de Azure.

2. Creación de una aplicación habilitada para sidecar

En el grupo de recursos de Azure Portal, cree una aplicación de contenedor personalizada de Linux con compatibilidad con sidecar y configure el contenedor principal.

  1. En la página del grupo de recursos de Azure Portal, seleccione Crear.

  2. En la página Marketplace , busque aplicación web, seleccione la flecha abajo situada junto a Crear en el icono Aplicación web y seleccione Aplicación web.

    Captura de pantalla que muestra la página de Azure Marketplace con la aplicación web en la que se busca y se resalta el botón Crear aplicación web.

  3. En la pestaña Aspectos básicos de la página Crear aplicación web , proporcione la siguiente información:

    • Nombre: escriba un nombre único para la aplicación web.
    • Publicar: seleccione Contenedor.
    • Sistema operativo: seleccione Linux.
    • Región: seleccione la misma región que eligió para azd provision.
    • Plan de Linux: seleccione el plan de App Service proporcionado (Nuevo).

    Captura de pantalla que muestra la configuración básica de la aplicación web de contenedor personalizada de Linux.

  4. Deje el resto de la configuración tal como están y seleccione la pestaña Contenedor en la parte superior de la página.

  5. En la pestaña Contenedor , proporcione la siguiente información:

    • Compatibilidad con Sidecar: establecer en una Configuración mejorada con la Compatibilidad con Sidecar activada.
    • Origen de la imagen: seleccione Azure Container Registry.
    • Nombre: asegúrese de que aparece main .
    • Registro: seleccione el registro creado por azd provision.
    • Autenticación: seleccione Identidad administrada.
    • Identidad: seleccione la identidad administrada creada por azd provision.
    • Imagen: introduzca nginx.
    • Etiqueta: Introduzca más reciente.
    • Puerto: escriba 80 si aún no está establecido.

    Captura de pantalla que muestra la configuración del contenedor para la aplicación web de contenedor personalizada de Linux.

    Nota:

    Estas opciones se configuran de forma diferente en aplicaciones habilitadas para sidecar que en aplicaciones no habilitadas para sidecars. Para obtener más información, consulte Cuáles son las diferencias de los contenedores personalizados con compatibilidad con sidecar.

  6. Seleccione Revisar y crear y, una vez superada la validación, seleccione Crear.

  7. Cuando finalice la implementación, seleccione Ir al recurso.

  8. En la página de la aplicación, abra la dirección URL junto a Dominio predeterminado, https://<app-name>.azurewebsites.net, en una nueva pestaña del explorador para ver la página nginx predeterminada.

3. Agregar un contenedor de tipo sidecar a la aplicación

Agregue un contenedor sidecar a su aplicación de contenedor personalizada para Linux.

  1. En la página de la aplicación en Azure Portal, seleccione Centro de implementación en Implementación en el menú de navegación izquierdo. La página Centro de implementación muestra todos los contenedores de la aplicación, actualmente solo el contenedor principal.

  2. Seleccione Contenedores.

  3. Seleccione Agregar>contenedor personalizado.

  4. En el panel Agregar contenedor , complete la siguiente información:

    • Nombre: introduzca otel-collector.
    • Origen de la imagen: seleccione Azure Container Registry.
    • Registro: seleccione el registro creado por azd provision.
    • Autenticación: seleccione Identidad administrada.
    • Identidad: en Usuario asignado, seleccione la identidad administrada creada por azd provision.
    • Imagen: escriba otel-collector.
    • Etiqueta de imagen: escriba más reciente.
    • Puerto: introduzca 4317.
  5. Seleccione Aplicar.

    Captura de pantalla que muestra cómo configurar un contenedor sidecar en el centro de implementación de una aplicación web.

Ahora hay dos contenedores en el centro de implementación con la etiqueta Main y Sidecar. Una aplicación debe tener un contenedor principal y puede tener varios contenedores auxiliares.

4. Configuración de las variables de entorno

En el ejemplo del escenario, el sidecar otel-collector está configurado para exportar los datos de OpenTelemetry a Azure Monitor usando la cadena de conexión como una variable de entorno. Para obtener más información, consulte el archivo de configuración de OpenTelemetry para la imagen de otel-collector.

Configure la variable de entorno para el contenedor mediante la configuración de la aplicación para la aplicación. La configuración de la aplicación es accesible para todos los contenedores de la aplicación.

  1. En la página de la aplicación en Azure Portal, seleccione Variables de entorno en Configuración en el menú de navegación izquierdo.

  2. En la pestaña Configuración de la aplicación de la página Variables de entorno , seleccione Agregar.

  3. En el panel Agregar o editar configuración de la aplicación , escriba los valores siguientes:

    • Nombre: APPLICATIONINSIGHTS_CONNECTION_STRING
    • Valor: el valor de APPLICATIONINSIGHTS_CONNECTION_STRING en la salida de azd provision. También puede encontrar este valor como Cadena de conexión en la página Información general del recurso Application Insight del grupo de recursos.
  4. Seleccione Aplicar y, después, Aplicar de nuevo y, después, Confirmar. La configuración de la aplicación APPLICATIONINSIGHTS_CONNECTION_STRING aparece ahora en la pestaña Configuración de la aplicación.

    Captura de pantalla que muestra la página Configuración de una aplicación web con dos configuraciones de aplicación agregadas.

Nota:

Algunas opciones de configuración de la aplicación no se aplican a las aplicaciones habilitadas para sidecar. Para obtener más información, consulte Cuáles son las diferencias de los contenedores personalizados con compatibilidad con sidecar.

5. Comprobar en Application Insights

El sidecar otel-collector ahora debe exportar datos a Application Insights.

  1. Vaya a la aplicación en una nueva pestaña del explorador y actualice la página varias veces para generar algunas solicitudes web.

  2. En la página del grupo de recursos de Azure Portal, seleccione el recurso de Application Insights . Ahora debería ver algunos datos en los gráficos predeterminados en la página Información general de Application Insights.

    Captura de pantalla de la página de Application Insights en la que se muestran los datos en los gráficos predeterminados.

Nota:

En este escenario de supervisión común, Application Insights es solo uno de los destinos de OpenTelemetry que puede usar, como Jaeger, Prometheus y Zipkin.

6. Limpieza de recursos

Cuando ya no necesite el entorno que creó para este tutorial, puede eliminar el grupo de recursos, que quita el servicio de aplicaciones y todos los recursos relacionados. Ejecute el siguiente comando en el repositorio clonado de Cloud Shell.

azd down