Поделиться через


Руководство по настройке сайдкар-контейнера для пользовательского контейнерного приложения

В этом руководстве показано, как добавить сборщик OpenTelemetry в качестве побочного контейнера в пользовательское Linux-контейнерное приложение в службе приложений Azure.

Контейнеры-сайдкары в службе приложений позволяют развертывать дополнительные сервисы и функции в приложениях Linux без тесного связывания их со встроенным или пользовательским основным контейнером. Контейнеры-сайдкары запускаются вместе с основным контейнером приложения в том же плане App Service.

Вы можете добавить до девяти контейнеров сайдкара для каждого приложения Linux в службе App Service. Например, можно добавить мониторинг, ведение журнала, конфигурацию и сетевые службы в качестве контейнеров на стороне. Боковой контейнер коллектора OpenTelemetry - это один из примеров для мониторинга.

Сведения о том, как использовать собственные приложения Linux, см. в руководстве по настройке контейнера на стороне для приложения Linux в службе приложение Azure.

Предпосылки

  • Если у вас нет аккаунта Azure, создайте бесплатную учетную запись перед началом.

  • Команды, приведенные в этом руководстве, можно выполнить с помощью Azure Cloud Shell, интерактивной оболочки, которую вы используете в браузере для работы со службами Azure. Чтобы использовать Cloud Shell, выполните приведенные действия.

    1. Нажмите следующую кнопку "Запустить Cloud Shell" или перейдите к https://shell.azure.com открытию Cloud Shell в браузере.

    2. При необходимости войдите в Azure и убедитесь, что вы находитесь в среде Bash Cloud Shell.

    3. Выберите "Копировать " в любом блоке кода, вставьте код в Cloud Shell и запустите его.

      Команды, приведенные azd в этом руководстве, используют Интерфейс командной строки разработчика Azure, средство с открытым кодом, которое ускоряет подготовку и развертывание ресурсов приложения в Azure.

1. Настройка ресурсов учебника

Чтобы клонировать пример репозитория и создать ресурсы для этого руководства, выполните следующие команды в Cloud Shell. При появлении запроса выберите подписку Azure и регион Azure, который вы хотите использовать.

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

Команда azd provision использует включенные шаблоны для создания группы my-sidecar-env_group ресурсов Azure, которая содержит следующие ресурсы Azure:

После завершения развертывания вы увидите выходные данные, аналогичные следующему примеру:

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

Скопируйте и сохраните значение, APPLICATIONINSIGHTS_CONNECTION_STRING которое будет использоваться далее в этом руководстве.

Выберите ссылку для Open resource group in the portal, чтобы открыть выделенную группу ресурсов на портале Azure.

2. Создание приложения с поддержкой бокового автомобиля

В группе ресурсов на портале Azure создайте настраиваемое приложение контейнера Linux с поддержкой сайдкара и настройте основной контейнер.

  1. На странице группы ресурсов на портале Azure нажмите кнопку "Создать".

  2. На странице Marketplace найдите веб-приложение, щелкните стрелку вниз рядом с плиткой "Создатьвеб-приложение" и выберите веб-приложение.

    Снимок экрана: страница Azure Marketplace с выделенным поиском веб-приложения и кнопкой создания веб-приложения.

  3. На вкладке "Основы" страницы"Создание веб-приложения " укажите следующие сведения:

    • Имя. Введите уникальное имя веб-приложения.
    • Публикация: выбор контейнера.
    • Операционная система: выберите Linux.
    • Регион: выберите тот же регион, для azd provisionкоторый вы выбрали.
    • План Linux: выберите предоставленный (новый) план службы приложений.

    Снимок экрана: базовые параметры для пользовательского веб-приложения контейнера Linux.

  4. Оставьте остальные параметры так, как они есть, и выберите вкладку "Контейнер " в верхней части страницы.

  5. На вкладке "Контейнер" укажите следующие сведения:

    • Поддержка сайдкара: Установите на усовершенствованную конфигурацию с поддержкой сайдкара.
    • Источник Образа: выберите Реестр Контейнеров Azure.
    • Имя: убедитесь, что отображается main.
    • Реестр. Выберите реестр, созданный с помощью azd provision.
    • Проверка подлинности: выберите управляемое удостоверение.
    • Удостоверение. Выберите управляемое удостоверение, созданное с помощью azd provision.
    • Изображение: введите nginx.
    • Тег: Введите latest.
    • Порт: введите 80 , если еще не задано.

    Снимок экрана: параметры контейнера для веб-приложения с пользовательским контейнером Linux.

    Примечание.

    Эти параметры настраиваются по-разному в приложениях с поддержкой сайдкаров, чем в приложениях без такой поддержки. Дополнительные сведения см. в разделе В чем различия для настраиваемых контейнеров с поддержкой сайдкара.

  6. Выберите Проверка и создание, а после завершения проверки нажмите Создать.

  7. После завершения развертывания выберите "Перейти к ресурсу".

  8. На странице приложения откройте URL-адрес рядом с доменом по умолчанию, https://<app-name>.azurewebsites.netна новой вкладке браузера, чтобы увидеть страницу nginx по умолчанию.

3. Добавьте контейнер-сайдкар в приложение

Добавьте сайдкар-контейнер в кастомное контейнерное приложение Linux.

  1. На странице приложения на портале Azure выберите Центр развертывания в разделе "Развертывание " в меню навигации слева. На странице Центра развертывания отображаются все контейнеры в приложении, в настоящее время только основной контейнер.

  2. Выберите "Добавить>настраиваемый контейнер".

  3. В области "Добавление контейнера " выполните следующие сведения:

    • Имя: введите otel-collector.
    • Источник образа: выбор реестра контейнеров Azure.
    • Реестр. Выберите реестр, созданный с помощью azd provision.
    • Проверка подлинности: выберите Управляемое Удостоверение.
    • Удостоверение: В разделе Назначено пользователем выберите управляемое удостоверение, созданное azd provision.
    • Изображение: Введите otel-collector.
    • Тег изображения: введите последнюю версию.
    • Порт: введите 4317.
  4. Выберите Применить.

    Снимок экрана: настройка контейнера бокового контейнера в центре развертывания веб-приложения.

Теперь в центре развертывания есть два контейнера с меткой Main и Sidecar. Приложение должно иметь один основной контейнер и может иметь несколько сайдкар контейнеров.

4. Настройка переменных среды

В примере сценария сайдкар otel-collector настроен на экспорт данных OpenTelemetry в Azure Monitor, используя строку подключения в качестве переменной окружения. Дополнительные сведения см. в файле конфигурации OpenTelemetry для образа otel-коллектора.

Настройте переменную среды для контейнера, настроив параметры приложения для приложения. Параметры приложения доступны всем контейнерам в приложении.

  1. На странице приложения на портале Azure выберите переменные среды в разделе "Параметры" в меню навигации слева.

  2. На вкладке "Параметры приложения " на странице переменных среды нажмите кнопку "Добавить".

  3. В области параметров приложения "Добавление и изменение" введите следующие значения:

    • Имя: APPLICATIONINSIGHTS_CONNECTION_STRING
    • Значение: значение APPLICATIONINSIGHTS_CONNECTION_STRING из результатов azd provision. Это значение также можно найти как строку подключения на странице обзора ресурса Application Insights группы ресурсов.
  4. Нажмите «Применить», затем снова «Применить», и затем «Подтвердить». Теперь на вкладке "Параметры приложения" появится параметр APPLICATIONINSIGHTS_CONNECTION_STRING приложения.

    Снимок экрана: страница конфигурации веб-приложения с двумя параметрами приложения.

Примечание.

Некоторые параметры приложения не применяются к приложениям с поддержкой сайдкар-архитектуры. Дополнительные сведения см. в разделе В чем различия для настраиваемых контейнеров с поддержкой сайдкара.

5. Проверка в Application Insights

Теперь otel-collector sidecar должен экспортировать данные в Application Insights.

  1. Перейдите к приложению на новой вкладке браузера и обновите страницу несколько раз, чтобы создать веб-запросы.

  2. На странице группы ресурсов на портале Azure выберите ресурс Application Insights . Теперь вы должны увидеть некоторые данные на диаграммах по умолчанию на странице обзора Application Insights.

    Снимок экрана: страница Application Insights с данными на диаграммах по умолчанию.

Примечание.

В этом обычном сценарии мониторинга Application Insights — это только один из целевых объектов OpenTelemetry, которые можно использовать, например Jaeger, Prometheus и Zipkin.

6. Очистка ресурсов

Если вам больше не нужна среда, созданная для этого руководства, можно удалить группу ресурсов, которая удаляет службу приложений и все связанные ресурсы. Выполните следующую команду в клонированном репозитории в среде Cloud Shell.

azd down