Оптимизация извлечения изображений с помощью кэша артефактов в Реестр контейнеров Azure

Функция кэша артефактов Реестр контейнеров Azure позволяет кэшировать образы контейнеров как в общедоступных, так и в частных репозиториях.

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

Кэш артефактов решает проблему ограничений на извлечение из общедоступных реестров. Мы рекомендуем выполнить проверку подлинности правил кэша с помощью учетных данных вышестоящего источника. Затем вы можете извлечь изображения из локального ACR, что поможет смягчить лимиты скорости.

Функция кэша артефактов доступна на уровнях служб"Базовый", "Стандартный" и "Премиум". Правила кэша артефактов можно включить на портале Azure или с помощью Azure CLI.

Терминология

При работе с кэшированием артефактов полезно понимать следующую терминологию:

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

    • Имя правила: имя вашего правила кэша. Например: Hello-World-Cache.
    • Источник: имя исходного реестра.
    • Путь к репозиторию: исходный путь репозитория для поиска и извлечения артефактов, которые требуется кэшировать. Например: docker.io/library/hello-world.
    • Новое пространство имен репозитория ACR: имя нового пути репозитория для хранения артефактов. Например: hello-world. Репозиторий уже не может существовать в экземпляре ACR.
  • Учетные данные: имя пользователя и пароль для исходного реестра. Для проверки подлинности с помощью общедоступного или частного репозитория требуются учетные данные. Учетные данные содержат четыре элемента:

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

Текущие ограничения

При использовании кэша артефактов помните о следующих ограничениях:

  • Кэширование происходит только после завершения загрузки по крайней мере одного доступного образа контейнера. Для каждого нового изображения необходимо завершить загрузку образа. В настоящее время кэш артефактов не извлекает автоматически новые теги изображений, когда появляется новый тег.
  • Кэш артефактов поддерживает не более 1000 правил кэша.
  • Правила кэша артефактов не могут перекрываться с другими правилами кэша. Другими словами, если у вас есть правило кэша артефактов для определенного пути реестра, вы не можете добавить другое правило кэша, которое перекрывается с ним.

Поддержка вышестоящих систем

Кэш артефактов в настоящее время поддерживает следующие вышестоящей реестры.

Предупреждение

Чтобы получить исходное содержимое из Docker Hub, необходимо создать набор учетных данных с помощью Azure CLI или портала Azure.

Некоторые общедоступные Docker Hub изображения сопоставляются с общедоступным пространством имен library. В этом случае, если вы не включаете путь library, кэш артефактов автоматически включит его для вас.

Вышестоящий реестр Поддержка Доступность
Docker Hub Поддерживает только аутентифицированные запросы. Azure CLI, портал Azure
Docker Hardened Images (dhi.io) Поддерживает только аутентифицированные запросы. Azure CLI
Реестр контейнеров Azure (azurecr.io) Поддерживает только аутентифицированные запросы. Azure CLI
Реестр артефактов Майкрософт Поддерживает только вытягивание без проверки подлинности. Azure CLI, портал Azure
Общедоступная коллекция реестра эластичных контейнеров AWS (ECR) Поддерживает только вытягивание без проверки подлинности. Azure CLI, Портал Azure
Реестр контейнеров GitHub Поддерживает как аутентифицированные, так и неаутентифицированные запросы. Azure CLI, портал Azure
Набережная Поддерживает как аутентифицированные, так и неаутентифицированные запросы. Azure CLI, портал Azure
Реестр образов контейнеров Kubernetes (registry.k8s.io) Поддерживает как аутентифицированные, так и неаутентифицированные запросы. Azure CLI
Реестр артефактов Google (*.pkg.dev) Поддерживает только аутентифицированные запросы. Azure CLI
Устаревший реестр контейнеров Google (gcr.io) Поддерживает как аутентифицированные, так и неаутентифицированные запросы. Azure CLI
Реестр контейнеров NVIDIA NGC (nvcr.io) Поддерживает как аутентифицированные, так и неаутентифицированные запросы. Azure CLI, портал Azure

Метод проверки подлинности для Реестра артефактов Google

Чтобы настроить кэш артефактов из частного реестра артефактов Google (GAR), рекомендуется использовать ключ учетной записи службы (созданный в консоли Google Cloud) для проверки подлинности с помощью GAR. Можно определить настраиваемую дату окончания срока действия ключа учетной записи службы (например, 3 месяца) и сохранить ключ в Azure Key Vault.

Хотя для проверки подлинности можно использовать маркер доступа (созданный из gcloud CLI), не рекомендуется использовать с кэшем артефактов, так как срок действия маркера доступа истекает через 1 час.

Дополнительные сведения о создании ключа учетной записи службы см. в разделе "Проверка подлинности с помощью реестра артефактов Google". Получив ключ учетной записи службы, сохраните его в качестве секрета в Azure Key Vault. Затем укажите пароль набора учетных данных в этот секрет. Для имени пользователя должно быть задано следующее:

  • _json_key Если вы используете ключ учетной записи службы в формате JSON, как оно было указано при создании файла.
  • _json_key_base64 Если вы закодировали все содержимое файла ключа учетной записи в кодировке Base64.

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

Дальнейшие действия

  • Узнайте, как включить кэширование артефактов с помощью портала Azure или Azure CLI.
  • Узнайте, как использовать подстановочные знаки для сопоставления нескольких путей в реестре образов контейнера.