Выполнение задачи ACR в выделенном пуле агентов

Настройте пул виртуальных машин под управлением Azure (пул агентов), чтобы обеспечить выполнение задач Реестра контейнеров Azure в выделенной вычислительной среде. Настроив один или нескольких пулов в реестре, можно будет выбрать пул для выполнения задачи вместо вычислительной среды по умолчанию для службы.

Пул агентов обеспечивает следующие возможности.

  • Поддержка виртуальных сетей. Назначьте пул агентов виртуальной сети Azure, предоставив доступ к ресурсам в этой виртуальной сети, таким как реестр контейнеров, хранилище ключей или хранилище.
  • Масштабирование по мере необходимости. Увеличивайте число экземпляров в пуле агентов для выполнения ресурсоемких задач или уменьшайте масштаб до нуля. Счета выставляются на основе выделения емкости пула. Подробные сведения см. в разделе Цены.
  • Гибкие возможности. Выбирайте различные уровни пула и параметры масштабирования в соответствии с потребностями рабочей нагрузки каждой задачи.
  • Управление Azure. Установку исправлений для пулов задач и их обслуживание осуществляет платформа Azure. Это обеспечивает зарезервированное выделение без необходимости обслуживать отдельные виртуальные машины.

Эта возможность доступна на уровне Премиум службы реестра контейнеров. Сведения об уровнях служб реестра и ограничениях см. в статье Номера SKU реестра контейнеров Azure.

Внимание

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

Ограничения предварительной версии

  • В настоящее время пулы агентов задач поддерживают узлы Linux. Узлы Windows сейчас не поддерживаются.
  • Пулы агентов задач доступны в предварительной версии в следующих регионах: западная часть США 2, южная часть США, восточная часть США 2, восточная часть США, центральная часть США, Западная Европа, Центральная Европа, Центральная Канада, Восточная Азия, Северная Азия, 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 ЦП на экземпляр). По умолчанию пул содержит 1 экземпляр.

az acr agentpool create \
    --registry MyRegistry \
    --name myagentpool \
    --tier S2

Примечание.

Создание пула агентов и другие операции управления пулом занимают несколько минут.

Масштабирование пула

Масштабировать размер пула можно с помощью команды az acr agentpool update. В следующем примере пул масштабируется до 2 экземпляров. Можно масштабировать его до 0 экземпляров.

az acr agentpool update \
    --registry MyRegistry \
    --name myagentpool \
    --count 2

Создание пула в виртуальной сети

Добавление правил брандмауэра

Для пулов агентов задач требуется доступ к приведенным ниже службам Azure. Указанные ниже правила брандмауэра нужно добавить в имеющиеся группы безопасности сети или определяемые пользователем маршруты.

Направление Протокол Источник Исходный порт Назначение Порт назначения Использовано
Исходящие TCP Виртуальная сеть Любое AzureKeyVault 443 По умолчанию.
Исходящие TCP Виртуальная сеть Любое Хранилище 443 По умолчанию.
Исходящие TCP Виртуальная сеть Любое Концентратор событий 443 По умолчанию.
Исходящие TCP Виртуальная сеть Любое AzureActiveDirectory 443 По умолчанию.
Исходящие TCP Виртуальная сеть Любое AzureMonitor 443 По умолчанию

Примечание.

Если задачам требуются дополнительные ресурсы из общедоступного Интернета, добавьте соответствующие правила. Например, дополнительные правила необходимы для выполнения задачи сборки Docker, которая извлекает базовые образы из Docker Hub или восстанавливает пакет NuGet.

Клиенты, базируя свои развертывания с помощью MCR, могут ссылаться на правила брандмауэра MCR/MAR.

Создание пула в виртуальной сети

В следующем примере создается пул агентов в подсети 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, убедитесь, что в этом пуле есть по крайней мере 1 экземпляр.

Быстрая задача

Поставьте в очередь быструю задачу в пуле агентов с помощью команды 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.