Настройка политики хранения для манифестов без тегов

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

Для выполнения примеров команд в этой статье можно использовать Azure Cloud Shell или локальный экземпляр Azure CLI. Если вы хотите использовать его локально, требуется версия 2.0.74 или более поздняя. Чтобы узнать версию, выполните команду az --version. Если вам необходимо выполнить установку или обновление, см. статью Установка Azure CLI 2.0.

Политика хранения для манифестов без тегов в настоящее время является предварительной версией функции в реестрах контейнеров класса Premium. Сведения об уровнях служб реестра см. в статье Уровни служб реестра контейнеров Azure.

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

Настраивайте политику хранения с осторожностью — удаленные данные образа НЕ ПОДЛЕЖАТ ВОССТАНОВЛЕНИЮ. Если у вас есть системы, которые получают образы с помощью дайджеста манифеста (а не по имени образа), не настраивайте политику хранения для манифестов без тегов. Удаление образов без тегов не позволит этим системам получать образы из реестра. Вместо получения с помощью манифеста попробуйте внедрить схему уникальных тегов, которая рекомендуется в качестве лучшей методики.

Сведения о политике хранения

Реестр контейнеров Azure выполняет подсчет ссылок для манифестов в реестре. Если манифест не помечен тегом, он проверяет политику хранения. Если политика хранения включена, операция удаления манифеста помещается в очередь с определенной датой в соответствии с числом дней, установленным в политике.

Отдельное задание управления очередями постоянно обрабатывает сообщения, выполняя масштабирование по мере необходимости. В качестве примера предположим, что вы создали два манифеста без тегов с интервалом в 1 час в реестре с политикой хранения 30 дней. Два сообщения помещаются в очередь. Затем, через 30 дней, с интервалом примерно в 1 час сообщения извлекаются из очереди и обрабатываются, если политика все еще действует.

Если атрибут delete-enabled манифеста без тегов имеет значение false, манифест блокируется и не удаляется политикой.

Важно!

Политика хранения применяется только к манифестам без тегов с метками времени после ее включения. Манифесты без тегов в реестре с более ранними метками времени не подчиняются данной политике. Другие варианты удаления данных образа см. в примерах в разделе Удаление образов контейнеров в службе "Реестр контейнеров Azure".

Настройка политики хранения — CLI

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

Включение политики хранения

По умолчанию в реестре контейнеров не задана политика хранения. Чтобы задать или обновить политику хранения, выполните команду az acr config retention update в Azure CLI. Можно указать период хранения манифестов без тегов от 0 до 365 дней. Если не указать число дней, команда задает значение по умолчанию 7 дней. По истечении срока хранения все манифесты без тегов в реестре автоматически удаляются.

В следующем примере задается политика хранения манифестов без тегов течение 30 дней в реестре myregistry:

az acr config retention update --registry myregistry --status enabled --days 30 --type UntaggedManifests

В следующем примере задается политика удаления манифеста в реестре после удаления тегов. Создайте эту политику, задав период хранения 0 дней.

az acr config retention update \
  --registry myregistry --status enabled \
  --days 0 --type UntaggedManifests

Проверка политики хранения

При включении предыдущей политики с периодом хранения 0 дней можно быстро проверить удаление непомеченных манифестов:

  1. Отправьте тестовый образ hello-world:latest в реестр или замените другой тестовый образ по выбору.
  2. Удалить тег образа hello-world:latest, например с помощью команды az acr repository untag. Манифест без тегов остается в реестре.
    az acr repository untag \
      --name myregistry --image hello-world:latest
    
  3. Через несколько секунд манифест без тегов удаляется. Чтобы проверить удаление, запросите список манифестов в репозитории (например, с помощью команды az acr manifest list-metadata). Если тестовый образ был единственным в репозитории, сам репозиторий удаляется.

Управление политикой хранения

Чтобы просмотреть политику хранения, заданную в реестре, выполните команду az acr config retention show:

az acr config retention show --registry myregistry

Чтобы отключить политику хранения в реестре, выполните команду az acr config retention update и задайте --status disabled:

az acr config retention update \
  --registry myregistry --status disabled \
  --type UntaggedManifests

Настройка политики хранения — портал

Можно также задать политику хранения реестра на портале Azure.

Включение политики хранения

  1. Перейдите в реестр контейнеров Azure. В разделе Политики выберите Хранение (предварительная версия).
  2. Для параметра Состояние задайте значение Включено.
  3. Выберите период хранения манифестов без тегов от 0 до 365 дней. Щелкните Сохранить.

Включение политики хранения на портале Azure

Отключение политики хранения

  1. Перейдите в реестр контейнеров Azure. В разделе Политики выберите Хранение (предварительная версия).
  2. Для параметра Состояние задайте значение Отключено. Щелкните Сохранить.

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