Доступно в редакциях:  EE

Стадия жизненного цикла модуля: Preview
У модуля есть требования для установки

Модуль payload-registry реализует пользовательское хранилище образов контейнеров, соответствующее стандартам OCI, внутри Deckhouse Kubernetes Platform.

Пользователи и доступы

Модуль позволяет авторизоваться в хранилище образов с использованием токенов Kubernetes, а также настроить статическую авторизацию. Подробнее — в разделе «Аутентификация и авторизация».

Расширение Kubernetes API

Модуль расширяет Kubernetes API, предоставляя возможность управлять тегами в репозиториях хранилища образов с использованием утилиты Deckhouse CLI (d8), kubectl или иного клиента. Подробнее — в разделе «Расширение Kubernetes API».

Использование образов в кластере

Модуль позволяет использовать образы, хранящиеся в пользовательском хранилище образов, для запуска подов в кластере. Подробнее — в разделе «Использование образов в кластере».

Сборка мусора (GC)

Модуль поддерживает настройку периодической сборки мусора для очистки неиспользуемых слоев и манифестов образов без тегов. GC процедура выполняется в виде Kubernetes-задачи и включает следующие шаги:

  1. Переключение хранилища образов в режим «только для чтения».
  2. Запуск GC-задачи для очистки хранилища образов.
  3. Возвращение хранилища образов в режим «чтение и запись».

Настройки GC задаются через ModuleConfig в параметре settings.gc. Подробнее — в разделах «Примеры использования» и «FAQ».

Ограничения и особенности

Модуль имеет следующие ограничения и особенности использования:

  • Модуль предназначен для хранения пользовательских образов.
  • Доступ к хранилищу образов осуществляется через Ingress по адресу payload-registry.${PUBLIC_DOMAIN}, где PUBLIC_DOMAIN — значение из конфигурации publicDomainTemplate в ModuleConfig global.
  • Репозитории в хранилище образов могут быть созданы (посредством тега push) только с префиксом неймспейса, существующего в кластере DKP. При удалении соответствующего неймспейса содержимое репозиториев очищается. Формат адресов для образов:
    • payload-registry.${PUBLIC_DOMAIN}/<namespace>/<image>:<tag>;
    • payload-registry.${PUBLIC_DOMAIN}/<namespace>/(<folder1>/..<folderN>/)<image>:<tag>.

Архитектура

image