Метки развертывания в контейнерных приложениях Azure

Метки развертывания помогают назначать значимые имена, такие как разработка, промежуточное или prod, для определенных редакций контейнеров. При применении этих имен вы упрощаете обработку сложных сценариев развертывания и управления средой.

С помощью меток развертывания можно:

  • Назначьте четкие описательные метки редакциям.
  • Автоматически назначьте новые редакции меткам для маршрутизации и управления трафиком.
  • Управление трафиком на основе меток вместо изменения имен ревизий.
  • Повышение или понижение версий путем переназначения меток.
  • Откатитесь к предыдущим версиям с помощью истории меток.

Это важно

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

Ключевые особенности

Метки развертывания позволяют создавать сложные стратегии развертывания, сохраняя контроль над жизненным циклом приложения с помощью следующих функций:

  • Назначение меток: создание и назначение значимых меток для ревизий контейнеров, что упрощает управление средами, такими как разработка, промежуточная среда и продакшн.

  • Разделение трафика и тестирование A/B: Поддержка разделения трафика, слепого отката и тестирования A/B позволяет постепенно развертывать и тестировать новые функции.

  • Промежуточные выпуски и автоматическое переключение: автоматическая активация редакции позволяет легко создавать новые редакции и назначать их новым или существующим меткам для получения трафика. Любые версии, на которые больше не ссылается метка, автоматически отключаются.

Используйте метки развертывания

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

  1. Откройте приложение контейнера на портале Azure.

  2. В меню в разделе "Приложение" выберите "Ревизии и реплики".

  3. Выберите режим развертывания.

  4. Выберите столбец меток развертывания.

  5. Нажмите кнопку "Применить".

Создание новой метки

Создайте новые метки на портале на основе существующих меток. По умолчанию контейнерные приложения создают первую метку с именем label-1. При создании меток с помощью ИНТЕРФЕЙСА командной строки или Bicep их можно связать с любой существующей редакцией или новой редакцией.

  1. Откройте приложение контейнера на портале Azure.

  2. В меню под разделом «Приложение» выберите «Метки».

  3. Выберите "Создать метку".

  4. Выберите существующую метку, на основе которой вы хотите создать новую метку.

  5. Введите имя новой метки в текстовом поле.

  6. Щелкните Дублировать.

Журнал меток и откаты изменений

Вы можете просмотреть полную историю метки, выполнив следующие действия:

  1. Откройте приложение контейнера на портале Azure.

  2. В меню в разделе Приложение выберите Метки.

  3. Выберите «Показать историю» для интересующей вас метки.

Используйте опцию "Показать историю" для каждой метки:

  • Просмотрите историю изменений метки.
  • Возврат к предыдущей версии, перенаправив метку на другую редакцию контейнера.

Используйте метки развертывания

Чтобы включить метки развертывания, выполните следующие действия в Azure CLI:

  1. Откройте терминал.

  2. Создайте следующие переменные среды.

     CONTAINER_APP_NAME="my-container-app"
     CONTAINER_APP_IMAGE="mcr.microsoft.com/k8se/quickstart:latest"
     LOCATION="centralus"
     RESOURCE_GROUP="my-container-apps-rg"
     ENVIRONMENT_NAME="my-container-apps-env"
     TARGET_LABEL="stage"
    
  3. Используйте следующую команду, чтобы создать новое приложение и редакцию с меткой:

    az containerapp create \
    --name $CONTAINER_APP_NAME \
    --resource-group $RESOURCE_GROUP \
    --image $CONTAINER_APP_IMAGE \
    --environment $ENVIRONMENT_NAME \
    --location $LOCATION \
    --ingress external \
    --target-port 0 \
    --revisions-mode labels \
    --target-label $TARGET_LABEL
    
  4. Чтобы создать новую редакцию с новой или существующей меткой, используйте следующую команду:

    az containerapp update \
    --name $CONTAINER_APP_NAME \
    --resource-group $RESOURCE_GROUP \
    --image $CONTAINER_APP_IMAGE \
    --target-label $TARGET_LABEL
    
  5. Чтобы отобразить журнал меток, используйте следующую команду:

    az containerapp label-history show \
    --name $CONTAINER_APP_NAME \
    --resource-group $RESOURCE_GROUP \
    --label $TARGET_LABEL
    
  6. Чтобы отобразить трафик приложения меток, используйте следующую команду:

    az containerapp ingress traffic show \
    --name $CONTAINER_APP_NAME \
    --resource-group $RESOURCE_GROUP \
    
  7. Чтобы добавить метку в редакцию, используйте следующие команды:

    az containerapp revision label add \
    --name $CONTAINER_APP_NAME \
    --resource-group $RESOURCE_GROUP \
    --revision $REVISION_NAME \
    --label $TARGET_LABEL
    
  8. Чтобы удалить метку из ревизии, используйте следующие команды:

    az containerapp revision label remove \
    --name $CONTAINER_APP_NAME \
    --resource-group $RESOURCE_GROUP \
    --label $TARGET_LABEL
    

Поддерживаемые сценарии

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

  • Тестирование A/B: направление части трафика на различные версии для тестирования функций. Эта практика позволяет проверить новые функциональные возможности с подмножеством пользователей до полного развертывания.

  • Поэтапное развертывание: постепенно увеличивайте трафик до новой редакции, изменяя проценты трафика.

  • Изоляция среды: Используйте метки для поддержания отдельных сред разработки, промежуточного тестирования и производственной среды. Каждая среда может быть обновлена независимо при сохранении четкого пути продвижения.

Пример рабочего процесса

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

  1. Создание начальных меток: создание таких меток, как "stage" и "production", изначально указывающих на ту же версию.

  2. Обновление метки: выберите метку (например, этап), чтобы обновить ее с помощью новых контейнеров, масштабирования или параметров тома.

  3. Проверьте изменения: при развертывании новой редакции перенаправите часть трафика в обновленную метку.

  4. Повышение уровня изменений. Если вы уверены в рабочей редакции, обновите метку рабочей среды, чтобы указать на ту же редакцию.

  5. Контролируйте и при необходимости откатывайте: в случае возникновения проблем используйте журнал меток для отката до предыдущей версии.

Метки редакции