Кэш артефактов — обзор

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

Эта статья является частью одной из шести частей серии учебников. В этом руководстве рассматриваются следующие сведения:

  1. Кэш артефактов
  2. Включение кэша артефактов — портал Azure
  3. Включение кэша артефактов с проверкой подлинности — портал Azure
  4. Включение кэша артефактов — Azure CLI
  5. Включение кэша артефактов с проверкой подлинности — Azure CLI
  6. Руководство по устранению неполадок кэша артефактов

Кэш артефактов

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

Реализация кэша артефактов обеспечивает следующие преимущества:

Более надежные операции извлечения: быстрое извлечение образов контейнеров достижимо путем кэширования образов контейнеров в ACR. Так как корпорация Майкрософт управляет сетью Azure, операции извлечения быстрее обеспечивают поддержку георепликации и зоны доступности клиентам.

Частные сети: кэшированные реестры доступны в частных сетях. Таким образом, пользователи могут настроить брандмауэр для соответствия стандартам соответствия.

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

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

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

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

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

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

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

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

  • Учетные данные

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

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

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

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

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

Ограничения

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

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

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

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

Вышестоящий реестр Поддержка Доступность
Docker Hub Поддерживает как прошедшие проверку подлинности вытягивание, так и не прошедшие проверку подлинности. Azure CLI, портал Azure
Реестр артефактов Microsoft Поддерживает только вытягивание без проверки подлинности. Azure CLI, портал Azure
Общедоступный ECR Поддерживает только вытягивание без проверки подлинности. Azure CLI, портал Azure
Реестр контейнеров GitHub; Поддерживает как прошедшие проверку подлинности вытягивание, так и не прошедшие проверку подлинности. Azure CLI, портал Azure
Nvidia Поддерживает как прошедшие проверку подлинности вытягивание, так и не прошедшие проверку подлинности. Azure CLI
Набережной Поддерживает как прошедшие проверку подлинности вытягивание, так и не прошедшие проверку подлинности. Azure CLI, портал Azure
registry.k8s.io Поддерживает как прошедшие проверку подлинности вытягивание, так и не прошедшие проверку подлинности. Azure CLI
Реестр контейнеров Google Поддерживает как прошедшие проверку подлинности вытягивание, так и не прошедшие проверку подлинности. Azure CLI

Подстановочные знаки

Wild карта использовать звездочки (*) для сопоставления нескольких путей в реестре образов контейнера. Кэш артефактов в настоящее время поддерживает следующие дикие карта:

Примечание.

Сопоставление правил кэша из целевого репозитория => исходный репозиторий.

Wild карта уровня реестра

Уровень реестра дикий карта позволяет кэшировать все репозитории из реестра вышестоящий.

Правило кэша Сопоставление Пример
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

Wild карта уровня репозитория

Уровень репозитория дикий карта позволяет кэшировать все репозитории из сопоставления реестра вышестоящий с префиксом репозитория.

Правило кэша Сопоставление Пример
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

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

Правила кэша wild карта используют звездочки (*) для сопоставления нескольких путей в реестре образов контейнеров. Эти правила не могут перекрываться с другими правилами дикого кэша карта. Другими словами, если у вас есть правило дикого кэша карта для определенного пути реестра, вы не можете добавить другое правило wild карта, которое перекрывается с ним.

Ниже приведены некоторые примеры перекрывающихся правил:

Пример 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 перейти к следующей статье: включение кэша артефактов.