Поделиться через


Кэш артефактов в Реестр контейнеров Azure

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

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

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

Кэш артефактов позволяет кэшируемым реестрам быть доступными через частные сети , чтобы пользователи соответствовали конфигурациям брандмауэра и стандартам соответствия.

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

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

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

    • Правило кэша содержит четыре части:

      • Имя правила — имя правила кэша. Например, Hello-World-Cache.

      • Источник — имя исходного реестра.

      • Путь к репозиторию — исходный путь репозитория для поиска и извлечения артефактов, которые требуется кэшировать. Например, docker.io/library/hello-world.

      • Новое пространство имен репозитория ACR — имя нового пути репозитория для хранения артефактов. Например, hello-world. Репозиторий не может существовать в экземпляре ACR.

  • Подтверждение компетенции

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

      • Учетные данные — имя учетных данных.

      • Сервер входа в исходный реестр — сервер входа исходного реестра.

      • Проверка подлинности источника — расположения хранилища ключей для хранения учетных данных.

      • Секреты имени пользователя и пароля— секреты, содержащие имя пользователя и пароль.

Ограничения

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

  • Кэш артефактов поддерживает только 1000 правил кэша.

Поддержка вышестоящего потока

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

Вышестоящий реестр Поддержка Availability
Docker Hub Поддерживает как прошедшие проверку подлинности, так и не прошедшие проверку подлинности. Azure CLI, портал Azure
Реестр артефактов Microsoft Поддерживает только вытягивание без проверки подлинности. Azure CLI, портал Azure
Общедоступная коллекция реестра эластичных контейнеров AWS (ECR) Поддерживает только вытягивание без проверки подлинности. Azure CLI, портал Azure
Реестр контейнеров GitHub; Поддерживает как прошедшие проверку подлинности, так и не прошедшие проверку подлинности. Azure CLI, портал Azure
Nvidia Поддерживает как прошедшие проверку подлинности, так и не прошедшие проверку подлинности. Azure CLI
Набережная Поддерживает как прошедшие проверку подлинности, так и не прошедшие проверку подлинности. 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, выполнив действия.

Необходимые компоненты

Настройте и создайте правило кэша без учетных данных.

  1. Выполните команду az acr Cache create , чтобы создать правило кэша.

    • Например, чтобы создать правило кэша без учетных данных для заданного MyRegistry Реестр контейнеров Azure.
    az acr Cache create -r MyRegistry -n MyRule -s docker.io/library/ubuntu -t ubuntu-
    
  2. Выполните команду az acr Cache show , чтобы отобразить правило кэша.

    • Например, чтобы отобразить правило кэша для заданного MyRegistry Реестр контейнеров Azure.
     az acr Cache show -r MyRegistry -n MyRule
    

Создание учетных данных

Перед настройкой учетных данных необходимо создать и сохранить секреты в Azure KeyVault и получить секреты из Key Vault. Узнайте больше о создании и хранении учетных данных в Key Vault.Чтобы задать и получить секрет из Key Vault..

  1. Выполните команду az acr credential set create , чтобы создать учетные данные.

    • Например, чтобы создать учетные данные для заданного MyRegistry Реестр контейнеров Azure.
    az acr credential-set create 
    -r MyRegistry \
    -n MyRule \
    -l docker.io \ 
    -u https://MyKeyvault.vault.azure.net/secrets/usernamesecret \
    -p https://MyKeyvault.vault.azure.net/secrets/passwordsecret
    
  2. Выполните команду az acr credential set update , чтобы обновить идентификатор секрета KV имени пользователя или пароля в наборе учетных данных.

    • Например, чтобы обновить идентификатор секрета имени пользователя или пароля KV для учетных данных для заданного MyRegistry Реестр контейнеров Azure.
    az acr credential-set update -r MyRegistry -n MyRule -p https://MyKeyvault.vault.azure.net/secrets/newsecretname
    
  3. Запустите az-acr-credential-set-show , чтобы отобразить учетные данные.

    • Например, чтобы отобразить учетные данные для заданного MyRegistry Реестр контейнеров Azure.
    az acr credential-set show -r MyRegistry -n MyCredSet
    

Настройка и создание правила кэша с учетными данными

  1. Выполните команду az acr cache create , чтобы создать правило кэша.

    • Например, чтобы создать правило кэша с учетными данными для заданного MyRegistry Реестр контейнеров Azure.
    az acr cache create -r MyRegistry -n MyRule -s docker.io/library/ubuntu -t ubuntu -c MyCredSet
    
  2. Выполните команду 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
    
  3. Выполните команду az acr cache show , чтобы отобразить правило кэша.

    • Например, чтобы отобразить правило кэша для заданного MyRegistry Реестр контейнеров Azure.
     az acr cache show -r MyRegistry -n MyRule
    

Назначение разрешений в Key Vault

  1. Получите идентификатор основного удостоверения системы, используемого для доступа к Key Vault.

    PRINCIPAL_ID=$(az acr credential-set show 
                    -n MyCredSet \ 
                    -r MyRegistry  \
                    --query 'identity.principalId' \ 
                    -o tsv) 
    
  2. Выполните команду az keyvault set-policy, чтобы назначить доступ к Key Vault перед извлечением образа.

    • Например, чтобы назначить разрешения для учетных данных, доступ к секрету KeyVault
    az keyvault set-policy --name MyKeyVault \
    --object-id $PRINCIPAL_ID \
    --secret-permissions get
    

Извлечение изображения

  1. Извлеките образ из кэша с помощью команды Docker по имени сервера входа реестра, имени репозитория и нужному тегу.

    • Например, чтобы извлечь образ из репозитория hello-world с требуемым тегом latest для данного сервера myregistry.azurecr.ioвхода в реестр.
     docker pull myregistry.azurecr.io/hello-world:latest
    

Очистка ресурсов

  1. Выполните команду az acr cache list, чтобы перечислить правила кэша в Реестр контейнеров Azure.

    • Например, чтобы перечислить правила кэша для заданного MyRegistry Реестр контейнеров Azure.
     az acr cache list -r MyRegistry
    
  2. Выполните команду az acr cache delete , чтобы удалить правило кэша.

    • Например, чтобы удалить правило кэша для заданного MyRegistry Реестр контейнеров Azure.
    az acr cache delete -r MyRegistry -n MyRule
    
  3. Запуститеaz acr credential set list, чтобы перечислить учетные данные в Реестр контейнеров Azure.

    • Например, чтобы перечислить учетные данные для заданного MyRegistry Реестр контейнеров Azure.
    az acr credential-set list -r MyRegistry
    
  4. Выполните команду az-acr-credential-set-delete , чтобы удалить учетные данные.

    • Например, чтобы удалить учетные данные для заданного MyRegistry Реестр контейнеров Azure.
    az acr credential-set delete -r MyRegistry -n MyCredSet
    

Включение кэша артефактов — портал Azure

Вы можете включить кэш артефактов в Реестр контейнеров Azure с проверкой подлинности или без проверки подлинности с помощью портал Azure, выполнив действия.

Необходимые компоненты

Настройка кэша артефактов без учетных данных

Выполните действия, чтобы создать правило кэша в портал Azure.

  1. Перейдите в Реестр контейнеров Azure.

  2. В боковом меню в разделе "Службы" выберите "Кэш".

    Снимок экрана: кэш реестра в портал Azure.

  3. Выберите "Создать правило".

    Снимок экрана: создание правила в портал Azure.

  4. Откроется окно для нового правила кэша.

    Снимок экрана: новое правило кэша в портал Azure.

  5. Введите имя правила.

  6. Выберите исходный реестр в раскрывающемся меню.

  7. Введите путь репозитория к артефактам, которые требуется кэшировать.

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

  9. В разделе "Назначение" введите имя нового пространства имен репозитория ACR для хранения кэшированных артефактов.

    Снимок экрана: сохранение правила кэша в портал Azure.

  10. Нажмите кнопку "Сохранить".

  11. Извлеките образ из кэша с помощью команды Docker по имени сервера входа реестра, имени репозитория и нужному тегу.

    • Например, чтобы извлечь образ из репозитория hello-world с требуемым тегом latest для данного сервера myregistry.azurecr.ioвхода в реестр.
     docker pull myregistry.azurecr.io/hello-world:latest
    

Настройка кэша артефактов с проверкой подлинности

Выполните действия, чтобы создать правило кэша в портал Azure.

  1. Перейдите в Реестр контейнеров Azure.

  2. В боковом меню в разделе "Службы" выберите "Кэш".

    Снимок экрана: кэш реестра в портал Azure.

  3. Выберите "Создать правило".

    Снимок экрана: создание правила в портал Azure.

  4. Откроется окно для нового правила кэша.

    Снимок экрана: новое правило кэша с проверкой подлинности в портал Azure.

  5. Введите имя правила.

  6. Выберите исходный реестр в раскрывающемся меню.

  7. Введите путь репозитория к артефактам, которые требуется кэшировать.

  8. Чтобы добавить проверку подлинности в репозиторий, установите флажок "Проверка подлинности ".

  9. Выберите "Создать новые учетные данные" , чтобы создать новый набор учетных данных для хранения имени пользователя и пароля для исходного реестра. Узнайте, как создать новые учетные данные.

  10. Если у вас есть учетные данные, выберите учетные данные из раскрывающегося меню.

  11. В разделе "Назначение" введите имя нового пространства имен репозитория ACR для хранения кэшированных артефактов.

    Снимок экрана: сохранение правила кэша в портал Azure.

  12. Нажмите кнопку "Сохранить".

  13. Извлеките образ из кэша с помощью команды Docker по имени сервера входа реестра, имени репозитория и нужному тегу.

    • Например, чтобы извлечь образ из репозитория hello-world с требуемым тегом latest для данного сервера myregistry.azurecr.ioвхода в реестр.
     docker pull myregistry.azurecr.io/hello-world:latest
    

Создание учетных данных

Перед настройкой учетных данных необходимо создать и сохранить секреты в Azure KeyVault и получить секреты из Key Vault. Узнайте больше о создании и хранении учетных данных в Key Vault.Чтобы задать и получить секрет из Key Vault..

  1. Перейдите к учетным данным, чтобы создать учетные> данные.

    Снимок экрана: добавление учетных данных в портал Azure.

    Снимок экрана: создание новых учетных данных в портал Azure.

  2. Введите имя новых учетных данных для исходного реестра.

  3. Выберите исходную проверку подлинности. Кэш артефактов в настоящее время поддерживает выбор из Key Vault и ввод URI секрета.

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

  5. Щелкните Создать.

Следующие шаги

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