Настройка образа контейнера для выполнения развертываний
Из этой статьи вы узнаете, как создавать пользовательские образы контейнеров Bicep для развертывания определений среды в средах развертывания Azure (ADE).
В этой статье вы узнаете, как создавать пользовательские образы контейнеров Terraform для развертывания определений среды в средах развертывания Azure (ADE). Вы узнаете, как настроить пользовательский образ для подготовки инфраструктуры с помощью платформы Terraform Infrastructure-as-Code (IaC).
Из этой статьи вы узнаете, как использовать Pulumi для развертываний в средах развертывания Azure (ADE). Вы узнаете, как использовать образ, предоставленный Pulumi или как настроить пользовательский образ для подготовки инфраструктуры с помощью платформы Pulumi Infrastructure-as-Code (IaC).
ADE поддерживает модель расширяемости, которая позволяет создавать пользовательские образы, которые можно использовать в определениях среды. Чтобы использовать эту модель расширяемости, создайте собственные пользовательские образы и сохраните их в реестре контейнеров, например Реестр контейнеров Azure (ACR) или Docker Hub. Затем вы можете ссылаться на эти образы в определениях среды для развертывания сред.
Определение среды состоит по крайней мере из двух файлов: файла шаблона, например azuredeploy.json или main.bicep, и файла манифеста с именем environment.yaml. ADE использует контейнеры для развертывания определений среды.
Команда ADE предоставляет набор образов для начала работы, включая основной образ и образ Azure Resource Manager (ARM)-Bicep. Эти образы можно получить в папке Runner-Images .
Определение среды состоит по крайней мере из двух файлов: файла шаблона, например main.tf, и файла манифеста с именем environment.yaml. Контейнер используется для развертывания определения среды, использующего Terraform.
Определение среды состоит по крайней мере из двух файлов: файла проекта Pulumi, Pulumi.yaml и файла манифеста с именем environment.yaml. Она также может содержать пользовательскую программу, написанную на предпочитаемом языке программирования: C#, TypeScript, Python и т. д. ADE использует контейнеры для развертывания определений среды.
Необходимые компоненты
- Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
- Среды развертывания Azure, настроенные в подписке Azure.
- Чтобы настроить ADE, выполните краткое руководство. Настройка сред развертывания Azure.
Использование образов контейнеров с ADE
Вы можете использовать один из следующих подходов к использованию образов контейнеров с ADE:
- Используйте образ контейнера для простых сценариев, используйте образ контейнера ARM-Bicep, предоставленный ADE.
- Создайте пользовательский образ контейнера для более сложных сценариев, создайте пользовательский образ контейнера, соответствующий вашим конкретным требованиям.
Ниже приведены основные действия, которые необходимо выполнить при использовании образа контейнера:
- Выберите тип изображения, который вы хотите использовать: образец или пользовательский образ.
- Если вы используете пользовательский образ, начните с примера образа, а затем настройте его в соответствии с вашими требованиями.
- Создание образа.
- Отправьте образ в частный реестр или общедоступный реестр.
- Настройте доступ к реестру.
- Для общедоступного реестра настройте анонимный запрос.
- Для частного реестра предоставьте разрешения ACR Для DevCenter.
- Добавление расположения изображения в параметр в определении
runner
среды - Развертывание сред, использующих пользовательский образ.
Первым шагом процесса является выбор типа изображения, который вы хотите использовать. Выберите соответствующую вкладку, чтобы увидеть процесс.
Использование примера образа контейнера
ADE поддерживает ARM и Bicep без дополнительной настройки. Вы можете создать определение среды, которое развертывает ресурсы Azure для среды развертывания, добавив файлы шаблонов (например , azuredeploy.json и environment.yaml) в каталог. Затем ADE использует образ контейнера ARM-Bicep для создания среды развертывания.
В файле environment.yaml свойство указывает расположение образа контейнера, runner
который требуется использовать. Чтобы использовать образ, опубликованный на Реестр артефактов Microsoft, используйте соответствующие идентификаторыrunner
.
В следующем примере показано runner
, что ссылается на образ контейнера ARM-Bicep:
name: WebApp
version: 1.0.0
summary: Azure Web App Environment
description: Deploys a web app in Azure without a datastore
runner: Bicep
templatePath: azuredeploy.json
Образ контейнера Bicep можно просмотреть в репозитории ADE в папке Runner-Images для образа ARM-Bicep .
Дополнительные сведения о создании определений среды, использующих образы контейнеров ADE для развертывания ресурсов Azure, см. в статье "Добавление и настройка определения среды".
Используйте пользовательский образ для настройки образа Terraform.
Использование примера образа контейнера, предоставленного Pulumi
Команда Pulumi предоставляет предварительно созданный образ для начала работы, который можно увидеть в папке Runner-Image . Этот образ доступен в Центре pulumi/azure-deployment-environments
Docker в Pulumi, так что его можно использовать непосредственно из определений среды ADE.
Ниже приведен пример файла environment.yaml , который использует предварительно созданный образ:
name: SampleDefinition
version: 1.0.0
summary: First Pulumi-Enabled Environment
description: Deploys a Storage Account with Pulumi
runner: pulumi/azure-deployment-environments:0.1.0
templatePath: Pulumi.yaml
В папке "Среды" можно найти несколько примеров определений среды.
Создание образа
Вы можете создать образ с помощью интерфейса командной строки Docker. Убедитесь, что подсистема Docker установлена на компьютере. Затем перейдите в каталог Dockerfile и выполните следующую команду:
docker build . -t {YOUR_REGISTRY}.azurecr.io/{YOUR_REPOSITORY}:{YOUR_TAG}
Например, если вы хотите сохранить образ в репозитории в реестре с именем customImage
и отправить с помощью версии тега 1.0.0
, выполните следующие действия:
docker build . -t {YOUR_REGISTRY}.azurecr.io/customImage:1.0.0
Сделать настраиваемый образ доступным для ADE
Чтобы использовать пользовательские образы, их необходимо хранить в реестре контейнеров. Вы можете использовать общедоступный реестр контейнеров или частный реестр контейнеров. Реестр контейнеров Azure (ACR) настоятельно рекомендуется из-за тесной интеграции с ADE, изображение может быть опубликовано без разрешения общедоступных анонимных доступ на вытягивание. Необходимо создать пользовательский образ контейнера и отправить его в реестр контейнеров, чтобы сделать его доступным для использования в ADE.
Кроме того, можно сохранить образ в другом реестре контейнеров, например Docker Hub, но в этом случае он должен быть общедоступным.
Внимание
Хранение образа контейнера в реестре с анонимным (неуправляемым) доступ на вытягивание делает его общедоступным. Не делайте этого, если изображение содержит конфиденциальную информацию. Вместо этого сохраните его в Реестр контейнеров Azure (ACR) с анонимным доступ на вытягивание отключен.
Чтобы использовать пользовательский образ, хранящийся в ACR, необходимо убедиться, что ADE имеет соответствующие разрешения для доступа к изображению. При создании экземпляра ACR он защищается по умолчанию и позволяет получать доступ только прошедшим проверку подлинности пользователям.
Вы можете использовать Pulumi для создания Реестр контейнеров Azure и публикации образа в нем. Ознакомьтесь с примером подготовки или пользовательского образа для автономного проекта Pulumi, создающего все необходимые ресурсы в учетной записи Azure.
Выберите соответствующую вкладку, чтобы узнать больше о каждом подходе.
Использование частного реестра с защищенным доступом
По умолчанию доступ к извлечению или отправке содержимого из Реестр контейнеров Azure доступен только для пользователей, прошедших проверку подлинности. Вы можете дополнительно защитить доступ к ACR, ограничив доступ из определенных сетей и назначив определенные роли.
Чтобы создать экземпляр ACR, который можно выполнить с помощью Azure CLI, портал Azure, команд PowerShell и многое другое, выполните одно из кратких руководств.
Ограничение сетевого доступа
Чтобы защитить сетевой доступ к ACR, можно ограничить доступ к собственным сетям или полностью отключить доступ к общедоступной сети. Если ограничить доступ к сети, необходимо включить исключение брандмауэра allow trusted службы Майкрософт для доступа к этому реестру контейнеров.
Чтобы отключить доступ из общедоступных сетей, выполните приведенные действия.
Создайте экземпляр ACR или используйте существующий.
В портал Azure перейдите к ACR, который требуется настроить.
В меню слева в разделе "Параметры" выберите "Сеть".
На странице "Сеть" на вкладке "Общедоступный доступ" в разделе "Доступ к общедоступной сети" выберите "Отключено".
В разделе "Исключение брандмауэра" установите флажок разрешить доверенным службы Майкрософт доступ к этому реестру контейнеров, а затем нажмите кнопку "Сохранить".
Назначение роли AcrPull
Создание сред с помощью образов контейнеров использует инфраструктуру ADE, включая проекты и типы сред. Каждый проект имеет один или несколько типов среды проекта, которые нуждаются в доступе на чтение к образу контейнера, определяющему среду для развертывания. Чтобы получить доступ к изображениям в ACR безопасно, назначьте роль AcrPull каждому типу среды проекта.
Чтобы назначить роль AcrPull типу среды проекта:
В портал Azure перейдите к ACR, который требуется настроить.
В меню слева выберите контроль доступа (IAM).
Выберите Добавить>Добавить назначение ролей.
Назначьте следующую роль. Подробные инструкции см. в статье Назначение ролей Azure с помощью портала Microsoft Azure.
Параметр Значение Роль Выберите AcrPull. Назначение доступа Выберите "Пользователь", "Группа" или "Субъект-служба". Участники Введите имя типа среды проекта, который должен получить доступ к образу в контейнере. Тип среды проекта отображается следующим образом:
В этой конфигурации ADE использует управляемое удостоверение для PET, назначаемое системой или назначаемое пользователем.
Совет
Это назначение роли должно быть сделано для каждого типа среды проекта. Его можно автоматизировать с помощью Azure CLI.
Когда вы будете готовы отправить образ в реестр, выполните следующую команду:
docker push {YOUR_REGISTRY}.azurecr.io/{YOUR_IMAGE_LOCATION}:{YOUR_TAG}
Создание образа контейнера с помощью скрипта
Вместо того, чтобы создать пользовательский образ и отправить его в реестр контейнеров самостоятельно, можно использовать скрипт для сборки и отправки его в указанный реестр контейнеров.
Корпорация Майкрософт предоставляет скрипт быстрого запуска, который поможет вам создать пользовательский образ и отправить его в реестр. Скрипт создает образ и отправляет его в указанный Реестр контейнеров Azure (ACR) под репозиторием ade
и тегомlatest
.
Чтобы использовать скрипт, необходимо:
- Создайте папку Dockerfile и скриптов для поддержки модели расширяемости ADE.
- Укажите имя реестра и каталог для пользовательского образа.
- Установите Azure CLI и Docker Desktop и в переменные PATH.
- Запущено приложение Docker Desktop.
- У вас есть разрешения на отправку в указанный реестр.
Здесь можно просмотреть скрипт.
Скрипт можно вызвать с помощью следующей команды в PowerShell:
.\quickstart-image-build.ps1 -Registry '{YOUR_REGISTRY}' -Directory '{DIRECTORY_TO_YOUR_IMAGE}'
Кроме того, если вы хотите отправить в определенный репозиторий и имя тега, можно выполнить следующее:
.\quickstart-image.build.ps1 -Registry '{YOUR_REGISTRY}' -Directory '{DIRECTORY_TO_YOUR_IMAGE}' -Repository '{YOUR_REPOSITORY}' -Tag '{YOUR_TAG}'
Подключение образа к определению среды
При создании определений среды для использования пользовательского образа в развертывании измените runner
свойство в файле манифеста (environment.yaml или manifest.yaml).
runner: "{YOUR_REGISTRY}.azurecr.io/{YOUR_REPOSITORY}:{YOUR_TAG}"
Дополнительные сведения о создании определений среды, использующих образы контейнеров ADE для развертывания ресурсов Azure, см. в статье "Добавление и настройка определения среды".