Кэш артефактов в Реестр контейнеров Azure
Функция кэша артефактов позволяет пользователям кэшировать образы контейнеров в частном реестре контейнеров. Кэш артефактов доступен на уровнях служб "Базовый", "Стандартный" и "Премиум".
Кэш артефактов улучшает управление образами контейнеров, предоставляя решение для кэширования как для общедоступных, так и для частных репозиториев.
Кэш артефактов предлагает более быстрые и надежные операции извлечения через Реестр контейнеров Azure (ACR), используя такие функции, как георепликация и зона доступности для повышения доступности и ускорения извлечения изображений.
Кэш артефактов позволяет кэшируемым реестрам быть доступными через частные сети , чтобы пользователи соответствовали конфигурациям брандмауэра и стандартам соответствия.
Кэш артефактов решает проблему ограничений на вытягивание, введенных общедоступными реестрами. Мы рекомендуем пользователям проходить проверку подлинности правил кэша с помощью учетных данных вышестоящего источника. Затем извлеките изображения из локального ACR, чтобы снизить ограничения скорости.
Терминология
Правило кэша . Правило кэша — это правило, которое можно создать для извлечения артефактов из поддерживаемого репозитория в кэш.
Правило кэша содержит четыре части:
Имя правила — имя правила кэша. Например,
Hello-World-Cache
.Источник — имя исходного реестра.
Путь к репозиторию — исходный путь репозитория для поиска и извлечения артефактов, которые требуется кэшировать. Например,
docker.io/library/hello-world
.Новое пространство имен репозитория ACR — имя нового пути репозитория для хранения артефактов. Например,
hello-world
. Репозиторий не может существовать в экземпляре ACR.
Подтверждение компетенции
Учетные данные — это набор имени пользователя и пароля для исходного реестра. Для проверки подлинности с помощью общедоступного или частного репозитория требуются учетные данные. Учетные данные содержат четыре части
Учетные данные — имя учетных данных.
Сервер входа в исходный реестр — сервер входа исходного реестра.
Проверка подлинности источника — расположения хранилища ключей для хранения учетных данных.
Секреты имени пользователя и пароля— секреты, содержащие имя пользователя и пароль.
Ограничения
Кэш будет выполняться только после завершения извлечения по крайней мере одного образа на доступном образе контейнера. Для каждого нового изображения необходимо завершить извлечение нового образа. Кэш артефактов не выполняет автоматическое извлечение новых тегов изображений при наличии нового тега. Он находится на схеме развития, но не поддерживается в этом выпуске.
Кэш артефактов поддерживает только 1000 правил кэша.
Поддержка вышестоящего потока
Кэш артефактов в настоящее время поддерживает следующие вышестоящей реестры:
Предупреждение
Клиенты должны создать набор учетных данных для исходного содержимого из Центра Docker.
Вышестоящий реестр | Поддержка | Availability |
---|---|---|
Docker Hub | Поддерживает только прошедшие проверку подлинности вытягивание. | Azure CLI, портал Azure |
Реестр артефактов Microsoft | Поддерживает только вытягивание без проверки подлинности. | Azure CLI, портал Azure |
Общедоступная коллекция реестра эластичных контейнеров AWS (ECR) | Поддерживает только вытягивание без проверки подлинности. | Azure CLI, портал Azure |
Реестр контейнеров GitHub; | Поддерживает как прошедшие проверку подлинности, так и не прошедшие проверку подлинности. | Azure CLI, портал Azure |
Набережная | Поддерживает как прошедшие проверку подлинности, так и не прошедшие проверку подлинности. | Azure CLI, портал Azure |
registry.k8s.io | Поддерживает как прошедшие проверку подлинности, так и не прошедшие проверку подлинности. | Azure CLI |
Реестр контейнеров Google | Поддерживает как прошедшие проверку подлинности, так и не прошедшие проверку подлинности. | Azure CLI |
Подстановочные знаки
Подстановочный знак использует звездочки (*) для сопоставления нескольких путей в реестре образов контейнера. Кэш артефактов в настоящее время поддерживает следующие подстановочные знаки:
Примечание.
Сопоставление правил кэша из целевого репозитория => исходный репозиторий.
Подстановочный знак уровня реестра
Подстановочный знак уровня реестра позволяет кэшировать все репозитории из вышестоящего реестра.
Правило кэша | Сопоставление | Пример |
---|---|---|
contoso.azurecr.io/* => mcr.microsoft.com/* | Сопоставление всех изображений в ACR с MCR. | contoso.azurecr.io/myapp/image1 => mcr.microsoft.com/myapp/image1 contoso.azurecr.io/myapp/image2 => mcr.microsoft.com/myapp/image2 |
Подстановочный знак уровня репозитория
Подстановочный знак уровня репозитория позволяет кэшировать все репозитории из сопоставления вышестоящего реестра с префиксом репозитория.
Правило кэша | Сопоставление | Пример |
---|---|---|
contoso.azurecr.io/dotnet/* => mcr.microsoft.com/dotnet/* | Сопоставление конкретных репозиториев в ACR с соответствующими репозиториями в MCR. | contoso.azurecr.io/dotnet/sdk => mcr.microsoft.com/dotnet/sdk contoso.azurecr.io/dotnet/runtime => mcr.microsoft.com/dotnet/runtime |
contoso.azurecr.io/library/dotnet/* => mcr.microsoft.com/dotnet/* contoso.azurecr.io/library/python/* => docker.io/library/python/* |
Сопоставление конкретных репозиториев в ACR с репозиториями из разных вышестоящих реестров. | contoso.azurecr.io/library/dotnet/app1 => mcr.microsoft.com/dotnet/app1 contoso.azurecr.io/library/python/app3 => docker.io/library/python/app3 |
Ограничения для правил кэша на основе подстановочных знаков
Правила кэша подстановочных знаков используют звездочки (*) для сопоставления нескольких путей в реестре образов контейнера. Эти правила не могут перекрываться с другими правилами кэша подстановочных знаков. Другими словами, если у вас есть правило кэша подстановочных знаков для определенного пути реестра, вы не можете добавить другое правило подстановочного знака, которое перекрывается с ним.
Ниже приведены некоторые примеры перекрывающихся правил:
Пример 1:
Существующее правило кэша: contoso.azurecr.io/* => mcr.microsoft.com/*
Добавлен новый кэш: contoso.azurecr.io/library/* => docker.io/library/*
Добавление нового правила кэша блокируется, так как путь contoso.azurecr.io/library/*
целевого репозитория перекрывается с существующим правилом contoso.azurecr.io/*
подстановочного знака.
Пример 2:
Существующее правило кэша: contoso.azurecr.io/library/*
=>mcr.microsoft.com/library/*
Добавлен новый кэш: contoso.azurecr.io/library/dotnet/*
=>docker.io/library/dotnet/*
Добавление нового правила кэша блокируется, так как путь contoso.azurecr.io/library/dotnet/*
целевого репозитория перекрывается с существующим правилом contoso.azurecr.io/library/*
подстановочного знака.
Ограничения для правил статического и фиксированного кэша
Статические или фиксированные правила кэша являются более конкретными и не используют подстановочные знаки. Они могут перекрываться с правилами кэша на основе подстановочных знаков. Если правило кэша указывает фиксированный путь к репозиторию, оно позволяет перекрываться с правилом кэша на основе подстановочных знаков.
Пример 1:
Существующее правило кэша: contoso.azurecr.io/*
=>mcr.microsoft.com/*
Добавлен новый кэш: contoso.azurecr.io/library/dotnet
=>docker.io/library/dotnet
Добавление нового правила кэша допускается, так как contoso.azurecr.io/library/dotnet
это статический путь и может перекрываться с правилом contoso.azurecr.io/*
кэша подстановочных знаков.
Включение кэша артефактов — Azure CLI
Вы можете включить кэш артефактов в Реестр контейнеров Azure с проверкой подлинности или без проверки подлинности с помощью Azure CLI, выполнив действия.
Необходимые компоненты
- Для выполнения примеров команд в этой статье можно использовать Azure Cloud Shell или локальную установку Azure CLI. Если вы хотите использовать его локально, требуется версия 2.46.0 или более поздняя. Выполните поиск
az --version
версии. Если вам необходимо выполнить установку или обновление, см. статью Установка Azure CLI 2.0. - У вас есть хранилище ключей для хранения учетных данных. Узнайте больше о создании и хранении учетных данных в Key Vault.
- Вы можете задать и получить секреты из Key Vault. Дополнительные сведения о настройке и извлечении секрета из Key Vault.
Настройте и создайте правило кэша без учетных данных.
Выполните команду az acr Cache create , чтобы создать правило кэша.
- Например, чтобы создать правило кэша без учетных данных для заданного
MyRegistry
Реестр контейнеров Azure.
az acr Cache create -r MyRegistry -n MyRule -s docker.io/library/ubuntu -t ubuntu-
- Например, чтобы создать правило кэша без учетных данных для заданного
Выполните команду az acr Cache show , чтобы отобразить правило кэша.
- Например, чтобы отобразить правило кэша для заданного
MyRegistry
Реестр контейнеров Azure.
az acr Cache show -r MyRegistry -n MyRule
- Например, чтобы отобразить правило кэша для заданного
Создание учетных данных
Перед настройкой учетных данных необходимо создать и сохранить секреты в Azure KeyVault и получить секреты из Key Vault. Узнайте больше о создании и хранении учетных данных в Key Vault. Чтобы задать и получить секрет из Key Vault..
Выполните команду az acr credential set create , чтобы создать учетные данные.
- Например, чтобы создать учетные данные для заданного
MyRegistry
Реестр контейнеров Azure.
az acr credential-set create -r MyRegistry \ -n MyDockerHubCredSet \ -l docker.io \ -u https://MyKeyvault.vault.azure.net/secrets/usernamesecret \ -p https://MyKeyvault.vault.azure.net/secrets/passwordsecret
- Например, чтобы создать учетные данные для заданного
Выполните команду az acr credential set update , чтобы обновить идентификатор секрета KV имени пользователя или пароля в наборе учетных данных.
- Например, чтобы обновить идентификатор секрета имени пользователя или пароля KV для учетных данных для заданного
MyRegistry
Реестр контейнеров Azure.
az acr credential-set update -r MyRegistry -n MyDockerHubCredSet -p https://MyKeyvault.vault.azure.net/secrets/newsecretname
- Например, чтобы обновить идентификатор секрета имени пользователя или пароля KV для учетных данных для заданного
Запустите az acr credential-set show , чтобы отобразить учетные данные.
- Например, чтобы отобразить набор учетных данных в заданной
MyRegistry
Реестр контейнеров Azure.
az acr credential-set show -r MyRegistry -n MyDockerHubCredSet
- Например, чтобы отобразить набор учетных данных в заданной
Настройка и создание правила кэша с учетными данными
Выполните команду az acr cache create , чтобы создать правило кэша.
- Например, чтобы создать правило кэша с учетными данными для заданного
MyRegistry
Реестр контейнеров Azure.
az acr cache create -r MyRegistry -n MyRule -s docker.io/library/ubuntu -t ubuntu -c MyDockerHubCredSet
- Например, чтобы создать правило кэша с учетными данными для заданного
Выполните команду az acr cache update , чтобы обновить учетные данные в правиле кэша.
- Например, чтобы обновить учетные данные в правиле кэша для заданного
MyRegistry
Реестр контейнеров Azure.
az acr cache update -r MyRegistry -n MyRule -c NewCredSet
- Например, чтобы удалить учетные данные из существующего правила кэша для заданного
MyRegistry
Реестр контейнеров Azure.
az acr cache update -r MyRegistry -n MyRule --remove-cred-set
- Например, чтобы обновить учетные данные в правиле кэша для заданного
Выполните команду az acr cache show , чтобы отобразить правило кэша.
- Например, чтобы отобразить правило кэша для заданного
MyRegistry
Реестр контейнеров Azure.
az acr cache show -r MyRegistry -n MyRule
- Например, чтобы отобразить правило кэша для заданного
Назначение разрешений в Key Vault
Получите идентификатор основного удостоверения системы, используемого для доступа к Key Vault.
PRINCIPAL_ID=$(az acr credential-set show -n MyDockerHubCredSet \ -r MyRegistry \ --query 'identity.principalId' \ -o tsv)
Выполните команду az keyvault set-policy, чтобы назначить доступ к Key Vault перед извлечением образа.
- Например, чтобы назначить разрешения для учетных данных, доступ к секрету KeyVault
az keyvault set-policy --name MyKeyVault \ --object-id $PRINCIPAL_ID \ --secret-permissions get
Извлечение изображения
Извлеките образ из кэша с помощью команды Docker по имени сервера входа реестра, имени репозитория и нужному тегу.
- Например, чтобы извлечь образ из репозитория
hello-world
с требуемым тегомlatest
для данного сервераmyregistry.azurecr.io
входа в реестр.
docker pull myregistry.azurecr.io/hello-world:latest
- Например, чтобы извлечь образ из репозитория
Очистка ресурсов
Выполните команду az acr cache list, чтобы перечислить правила кэша в Реестр контейнеров Azure.
- Например, чтобы перечислить правила кэша для заданного
MyRegistry
Реестр контейнеров Azure.
az acr cache list -r MyRegistry
- Например, чтобы перечислить правила кэша для заданного
Выполните команду az acr cache delete , чтобы удалить правило кэша.
- Например, чтобы удалить правило кэша для заданного
MyRegistry
Реестр контейнеров Azure.
az acr cache delete -r MyRegistry -n MyRule
- Например, чтобы удалить правило кэша для заданного
Запуститеaz acr credential set list, чтобы перечислить учетные данные в Реестр контейнеров Azure.
- Например, чтобы перечислить учетные данные для заданного
MyRegistry
Реестр контейнеров Azure.
az acr credential-set list -r MyRegistry
- Например, чтобы перечислить учетные данные для заданного
Выполните команду az acr credential-set delete , чтобы удалить учетные данные.
- Например, чтобы удалить учетные данные для заданного
MyRegistry
Реестр контейнеров Azure.
az acr credential-set delete -r MyRegistry -n MyDockerHubCredSet
- Например, чтобы удалить учетные данные для заданного
Включение кэша артефактов — портал Azure
Вы можете включить кэш артефактов в Реестр контейнеров Azure с проверкой подлинности или без проверки подлинности с помощью портал Azure, выполнив действия.
Необходимые компоненты
- Войдите на портал Azure
- У вас есть хранилище ключей для хранения учетных данных. Узнайте больше о создании и хранении учетных данных в Key Vault.
- У вас есть существующие хранилища ключей без элементов управления доступом на основе ролей (RBAC).
Настройка кэша артефактов без учетных данных
Выполните действия, чтобы создать правило кэша в портал Azure.
Перейдите в Реестр контейнеров Azure.
В боковом меню в разделе "Службы" выберите "Кэш".
Выберите "Создать правило".
Откроется окно для нового правила кэша.
Введите имя правила.
Выберите исходный реестр в раскрывающемся меню.
Введите путь репозитория к артефактам, которые требуется кэшировать.
Можно пропустить проверку подлинности, если вы не обращаетесь к частному репозиторию или выполняете проверку подлинности.
В разделе "Назначение" введите имя нового пространства имен репозитория ACR для хранения кэшированных артефактов.
Нажмите кнопку "Сохранить".
Извлеките образ из кэша с помощью команды Docker по имени сервера входа реестра, имени репозитория и нужному тегу.
- Например, чтобы извлечь образ из репозитория
hello-world
с требуемым тегомlatest
для данного сервераmyregistry.azurecr.io
входа в реестр.
docker pull myregistry.azurecr.io/hello-world:latest
- Например, чтобы извлечь образ из репозитория
Настройка кэша артефактов с проверкой подлинности
Выполните действия, чтобы создать правило кэша в портал Azure.
Перейдите в Реестр контейнеров Azure.
В боковом меню в разделе "Службы" выберите "Кэш".
Выберите "Создать правило".
Откроется окно для нового правила кэша.
Введите имя правила.
Выберите исходный реестр в раскрывающемся меню.
Введите путь репозитория к артефактам, которые требуется кэшировать.
Чтобы добавить проверку подлинности в репозиторий, установите флажок "Проверка подлинности ".
Выберите "Создать новые учетные данные" , чтобы создать новый набор учетных данных для хранения имени пользователя и пароля для исходного реестра. Узнайте, как создать новые учетные данные.
Если у вас есть учетные данные, выберите учетные данные из раскрывающегося меню.
В разделе "Назначение" введите имя нового пространства имен репозитория ACR для хранения кэшированных артефактов.
Нажмите кнопку "Сохранить".
Извлеките образ из кэша с помощью команды Docker по имени сервера входа реестра, имени репозитория и нужному тегу.
- Например, чтобы извлечь образ из репозитория
hello-world
с требуемым тегомlatest
для данного сервераmyregistry.azurecr.io
входа в реестр.
docker pull myregistry.azurecr.io/hello-world:latest
- Например, чтобы извлечь образ из репозитория
Создание учетных данных
Перед настройкой учетных данных необходимо создать и сохранить секреты в Azure KeyVault и получить секреты из Key Vault. Узнайте больше о создании и хранении учетных данных в Key Vault. Чтобы задать и получить секрет из Key Vault..
Перейдите к учетным данным, чтобы создать учетные> данные.
Введите имя новых учетных данных для исходного реестра.
Выберите исходную проверку подлинности. Кэш артефактов в настоящее время поддерживает выбор из Key Vault и ввод URI секрета.
Дополнительные сведения о создании учетных данных с помощью хранилища ключей см. в разделе "Выбор из Хранилища ключей".
Щелкните Создать.
Следующие шаги
- Перейдите к следующей статье , чтобы ознакомиться с руководством по устранению неполадок кэша реестра.