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


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

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

В службе приложение Azure можно добавить до девяти контейнеров бокового контейнера для каждого пользовательского приложения контейнера с поддержкой бокового контейнера. Контейнеры на стороне позволяют развертывать дополнительные службы и функции в приложении контейнера без тесной привязки к основному контейнеру приложения. Например, можно добавить мониторинг, ведение журнала, конфигурацию и сетевые службы в качестве контейнеров на стороне. Боковая машина сборщика OpenTelemetry является одним из таких примеров мониторинга.

Дополнительные сведения о боковом контейнере в Служба приложений см. в следующем разделе:

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

1. Настройка необходимых ресурсов

Сначала вы создадите ресурсы, используемые в руководстве. Они используются для этого конкретного сценария и не требуются для контейнеров боковинка в целом.

  1. В Azure Cloud Shell выполните следующие команды:

    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
    
  2. При появлении запроса укажите нужную подписку и регион. Например:

    • Подписка: ваша подписка.
    • Регион: (Европа) Западная Европа.

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

     APPLICATIONINSIGHTS_CONNECTION_STRING = InstrumentationKey=...;IngestionEndpoint=...;LiveEndpoint=...
    
     Open resource group in the portal: https://portal.azure.com/#@/resource/subscriptions/.../resourceGroups/...
     
  3. Откройте ссылку группы ресурсов на вкладке браузера. Вам потребуется использовать строка подключения позже.

    Примечание.

    azd provision использует включенные шаблоны для создания следующих ресурсов Azure:

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

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

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

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

  3. Настройте панель "Основные сведения", как показано ниже.

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

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

  4. Выберите Контейнер. Настройте панель контейнеров следующим образом:

    • Поддержка бокового автомобиля: включено
    • Источник изображения: Реестр контейнеров Azure
    • Реестр: реестр, созданный с помощью azd provision
    • Изображение: nginx
    • Тег: последняя версия
    • Порт: 80

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

    Примечание.

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

  5. Выберите Проверить и создать, а затем выберите Создать.

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

  7. На новой вкладке браузера перейдите https://<app-name>.azurewebsites.net на страницу Nginx по умолчанию и просмотрите страницу Nginx.

3. Добавление контейнера боковинка

В этом разделе описано, как добавить контейнер бокового контейнера в пользовательское приложение контейнера.

  1. На странице управления приложения в меню слева выберите Центр развертывания.

    В центре развертывания отображаются все контейнеры в приложении. Сейчас он имеет только основной контейнер.

  2. Выберите " Добавить " и настройте новый контейнер следующим образом:

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

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

    Теперь в центре развертывания должно появиться два контейнера. Основной контейнер помечается Main, а контейнер боковинка помечается боковинка. Каждое приложение должно иметь один основной контейнер, но может иметь несколько контейнеров боковинка.

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

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

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

  1. На странице управления приложения в меню слева выберите переменные среды.

  2. Добавьте параметр приложения, выбрав "Добавить " и настройте его следующим образом:

    • Имя: APPLICATIONINSIGHTS_CONNECTION_STRING
    • Значение: строка подключения в выходных azd provisionданных . Если вы потеряли сеанс Cloud Shell, его также можно найти на странице обзора ресурса Application Insights в разделе "Строка подключения".
  3. Нажмите кнопку "Применить", а затем "Применить", а затем подтвердите.

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

Примечание.

Некоторые параметры приложения не применяются к приложениям с поддержкой бокового автомобиля. Дополнительные сведения см. в разделе "Различия" для приложений с поддержкой бокового автомобиля

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

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

  1. Вернитесь на вкладку https://<app-name>.azurewebsites.netбраузера, обновите страницу несколько раз, чтобы создать некоторые веб-запросы.

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

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

Примечание.

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

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

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

azd down

Как контейнеры на стороне обрабатывают внутреннюю связь?

Контейнеры на стороне используют тот же сетевой узел, что и основной контейнер, поэтому основной контейнер (и другие контейнеры бокового контейнера) может достичь любого порта на боковой стороне localhost:<port>. Именно так контейнер Nginx отправляет данные на боковику (см . конфигурацию модуля OpenTelemetry для примера образа Nginx).

В диалоговом окне "Изменить контейнер" поле "Порт" в настоящее время не используется Служба приложений. Его можно использовать как часть метаданных боковой панели, например, чтобы указать, какой порт прослушивает боковая машина.

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

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

  • Параметры проверки подлинности реестра: DOCKER_REGISTRY_SERVER_URLDOCKER_REGISTRY_SERVER_USERNAME и DOCKER_REGISTRY_SERVER_PASSWORD.
  • Порт контейнера: WEBSITES_PORT

Дополнительные ресурсы