Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Настройте пул виртуальных машин под управлением Azure (пул агентов), чтобы обеспечить выполнение задач Реестра контейнеров Azure в выделенной вычислительной среде. После настройки одного или нескольких пулов в реестре можно выбрать пул для выполнения задачи вместо вычислительной среды службы по умолчанию.
Пул агентов обеспечивает следующие возможности.
- Поддержка виртуальных сетей. Назначьте пул агентов виртуальной сети Azure, предоставив доступ к ресурсам в этой виртуальной сети, таким как реестр контейнеров, хранилище ключей или хранилище.
- Масштабирование по мере необходимости. Увеличивайте число экземпляров в пуле агентов для выполнения ресурсоемких задач или уменьшайте масштаб до нуля. Счета выставляются на основе распределения пула. Подробные сведения см. в разделе Цены.
- Гибкие возможности. Выбирайте различные уровни пула и параметры масштабирования в соответствии с потребностями рабочей нагрузки каждой задачи.
- Управление Azure. Установку исправлений для пулов задач и их обслуживание осуществляет платформа Azure. Это обеспечивает зарезервированное выделение без необходимости обслуживать отдельные виртуальные машины.
Эта возможность доступна на уровне Премиум службы реестра контейнеров. Сведения об уровнях служб реестра и ограничениях см. в статье Номера SKU реестра контейнеров Azure.
Внимание
Сейчас эта функция доступна в предварительной версии, и применяются некоторые ограничения. Предварительные версии предоставляются только в том случае, если вы принимаете дополнительные условия использования. Некоторые аспекты этой функции могут быть изменены до выхода общедоступной версии.
Ограничения предварительной версии
В настоящее время пулы агентов задач поддерживают узлы Linux. Узлы Windows сейчас не поддерживаются.
Пулы агентов задач доступны в предварительной версии в следующих регионах: западная часть США 2, западная часть США 3, южно-центральная часть США, восточная часть США 2, восточная часть США, центральная часть США, Западная Европа, Северная Европа, Центральная Канада, Восточная Азия, Западно-центральная Германия, Северная Швейцария, Центральная Швеция, Jio India West, Jio India Central, USGov Аризона, USGov Техас и USGov Вирджиния.
Для каждого реестра по умолчанию применяется квота на общее число виртуальных ЦП (ядер): 16 для всех стандартных пулов агентов и 0 для изолированных пулов агентов. Чтобы увеличить квоту, откройте запрос на поддержку.
Предварительные условия
- Для выполнения действий с Azure CLI, описанных в этой статье, потребуется Azure CLI 2.3.1 или более поздней версии. Если вам необходимо выполнить установку или обновление, см. статью Установка Azure CLI 2.0. Или выполнить в Azure Cloud Shell.
- Если у вас еще нет реестра контейнеров, создайте его (обязательно в ценовой категории "Премиум") в региона предварительной версии.
Уровни пула
Уровни пула агентов предоставляют приведенные ниже ресурсы для каждого экземпляра в пуле.
| Уровень | Тип | ЦП | Память (ГБ) |
|---|---|---|---|
| S1 | standard | 2 | 3 |
| S2 | standard | 4 | 8 |
| S3 | standard | 8 | 16 |
| I6 | Изолированный | 64 | 216 |
Создание пула агентов задач и управление им
Установить реестр по умолчанию (необязательно)
Чтобы упростить следующие команды Azure CLI, задайте реестр по умолчанию, выполнив az config команду:
az config set defaults.acr=<registryName>
В следующих примерах предполагается, что вы уже установили реестр по умолчанию. В противном случае передавайте параметр --registry <registryName> в каждой команде az acr.
Создание пула агентов
Создайте пул агентов с помощью команды az acr agentpool create. В следующем примере создается пул уровня S2 (4 ЦП на экземпляр). По умолчанию пул содержит один экземпляр.
az acr agentpool create \
--registry myregistry \
--name myagentpool \
--tier S2
Примечание.
Создание пула агентов и другие операции управления пулом занимают несколько минут.
Масштабирование пула
Масштабируйте размер пула az acr agentpool update вверх или вниз с помощью команды. В следующем примере пул увеличивается до двух экземпляров.
az acr agentpool update \
--registry myregistry \
--name myagentpool \
--count 2
Создание пула в виртуальной сети
Добавление правил брандмауэра
Для пулов агентов задач требуется доступ к приведенным ниже службам Azure. Указанные ниже правила брандмауэра нужно добавить в имеющиеся группы безопасности сети или определяемые пользователем маршруты.
| Направление | Протокол | Источник | Исходный порт | Назначение | Целевой порт | Использовано | Замечания |
|---|---|---|---|---|---|---|---|
| Исходящие | TCP | Виртуальная сеть | Любое | AzureKeyVault | 443 | По умолчанию. | |
| Исходящие | TCP | Виртуальная сеть | Любое | Хранилище | 443 | По умолчанию. | |
| Исходящие | TCP | Виртуальная сеть | Любое | Концентратор событий | 443 | По умолчанию. | |
| Исходящие | TCP | Виртуальная сеть | Любое | AzureActiveDirectory | 443 | По умолчанию. | |
| Исходящие | TCP | Виртуальная сеть | Любое | AzureMonitor | 443,12000 | По умолчанию. | Порт 12000 — это уникальный порт, используемый для диагностика |
Примечание.
Если задачи требуют других ресурсов из общедоступного Интернета, добавьте соответствующие правила. Например, правила необходимы для выполнения задачи сборки Docker, которая извлекает базовые образы из Docker Hub или восстанавливает пакет NuGet.
Клиенты, базируя свои развертывания с помощью MCR, могут ссылаться на правила брандмауэра MCR/MAR.
Расширенная конфигурация сети
Если стандартные правила брандмауэра или группы безопасности сети (группа безопасности сети) считаются слишком разрешительными, а для исходящих подключений требуется более подробный контроль, рассмотрите следующий подход:
- Включите конечные точки службы в подсети пула агентов. Это предоставляет пулу агентов доступ к зависимостям службы при сохранении безопасной сетевой позиции.
- Важно отметить, что правила исходящего брандмауэра или группы безопасности сети по-прежнему необходимы. Эти правила облегчают переключение исходного IP-адреса с публичного на частный, что является еще одним дополняющим шагом к включению конечных точек службы.
Дополнительные сведения о конечных точках служб см. в статье "Защита служб Azure" в виртуальных сетях.
Как минимум, требуются следующие конечные точки службы:
- Microsoft.AzureActiveDirectory
- Microsoft.ContainerRegistry (только если реестр не использует приватную ссылку)
- Microsoft.EventHub
- Microsoft.KeyVault
- Microsoft.Storage (или соответствующие регионы хранения, принимая во внимание георепликацию)
Примечание.
В настоящее время конечная точка службы для Azure Monitor не существует. Если исходящий трафик для Azure Monitor не настроен, пул агентов не может выдавать журналы диагностики, но может по-прежнему работать нормально. В этом случае ACR не может полностью устранять возникающие проблемы, поэтому важно учитывать это при планировании конфигурации сети.
Кроме того, помните, что задачи ACR имеют предварительно подготовленные изображения для некоторых наиболее распространенных вариантов использования. Задачи кэшируют только одну версию одновременно, то есть если используется полная ссылка на изображение с тегами, агент сборки пытается извлечь изображение. Например, распространенный вариант использования — это cmd: mcr.microsoft.com/acr/acr-cli:<tag>. Однако предварительная версия часто обновляется, что означает, что фактическая версия на компьютере, скорее всего, будет выше. В этом случае конфигурация сети должна настроить маршрут для исходящего трафика в целевой узел реестра, который в предыдущем примере будет иметь значение mcr.microsoft.com. Те же правила применяются к любому другому внешнему общедоступному реестру (docker.io, quay.io, ghcr.io и т. д.).
Использование настраиваемого DNS
Если в подсети настроен пользовательский DNS-сервер, эта конфигурация наследуется агентом сборки во время выполнения.
Внимание
Диапазон IP-адресов, используемый пользовательской конечной точкой DNS, не должен конфликтуть с диапазоном 172.17.0.0/16по умолчанию docker.
Создание пула в виртуальной сети
В следующем примере создается пул агентов в mysubnet подсети сети myvnet:
# Get the subnet ID
subnetId=$(az network vnet subnet show \
--resource-group myresourcegroup \
--vnet-name myvnet \
--name mysubnetname \
--query id --output tsv)
az acr agentpool create \
--registry myregistry \
--name myagentpool \
--tier S2 \
--subnet-id $subnetId
Запустить задачу в пуле агентов
В следующих примерах показано, как указать пул агентов при постановке задачи в очередь.
Примечание.
Чтобы использовать пул агентов в задаче ACR, убедитесь, что пул содержит как минимум один экземпляр.
Быстрая задача
Поставьте быстрозадачу в очередь в пуле агентов с помощью команды az acr build и передачи параметра --agent-pool.
az acr build \
--registry myregistry \
--agent-pool myagentpool \
--image myimage:mytag \
--file Dockerfile \
https://github.com/Azure-Samples/acr-build-helloworld-node.git#main
Автоматически активируемая задача
Например, создайте запланированную задачу в пуле агентов с az acr task create, передачей --agent-pool параметра.
az acr task create \
--registry myregistry \
--name mytask \
--agent-pool myagentpool \
--image myimage:mytag \
--schedule "0 21 * * *" \
--file Dockerfile \
--context https://github.com/Azure-Samples/acr-build-helloworld-node.git#main \
--commit-trigger-enabled false
Чтобы проверить настройку задачи, выполните следующую команду az acr task run:
az acr task run \
--registry myregistry \
--name mytask
Запрос состояния пула
Чтобы найти количество запусков, запланированных в пуле агентов, выполните команду az acr agentpool show.
az acr agentpool show \
--registry myregistry \
--name myagentpool \
--queue-count
Следующие шаги
Дополнительные примеры сборок образов контейнеров и описание их обслуживания в облаке приведены в цикле учебников по Задачам ACR.