Доступно в редакциях: CE, BE, SE, SE+, EE, CSE Lite (1.73), CSE Pro (1.73)
Стадия жизненного цикла модуля: Preview
Описание
Модуль отвечает за управление настройками registry компонентов DKP.
Модуль работает в следующих режимах:
-
Direct— использование прямого доступа к внешнему registry по фиксированному адресуregistry.d8-system.svc:5001/system/deckhouse. Фиксированный адрес, при изменении параметров registry, позволяет избежать повторного скачивания образов и перезапуска компонентов при смене параметров registry. Переключение между режимами и registry выполняется через ModuleConfigdeckhouse. Переключение выполняется автоматически (ознакомьтесь с примерами использования). -
Proxy— использование внутреннего кеширующего прокси-registry с обращением к внешнему registry, с запуском кеширующего прокси-registry на control-plane (master) узлах. Режим позволяет сократить количество запросов к внешнему registry за счёт кеширования образов. Кешируемые данные хранятся на control-plane (master) узлах. Обращение к внутреннему registry выполняется по фиксированному адресуregistry.d8-system.svc:5001/system/deckhouseаналогичноDirectрежиму. Переключение между режимами и registry выполняется через ModuleConfigdeckhouse. Переключение выполняется автоматически (ознакомьтесь с примерами использования). -
Local— использование локального внутреннего registry, с запуском registry на control-plane (master) узлах. Режим позволяет кластеру работать в изолированной среде. Данные хранятся на control-plane (master) узлах. Обращение к внутреннему registry выполняется по фиксированному адресуregistry.d8-system.svc:5001/system/deckhouseаналогичноDirectиProxyрежимам. Переключение между режимами и registry выполняется через ModuleConfigdeckhouse. Переключение выполняется автоматически (ознакомьтесь с примерами использования). -
Unmanaged— работа без использования внутреннего registry. Обращение внутри кластера выполняется напрямую к внешнему registry. Существует 2 вида режимаUnmanaged:- Конфигурируемый - режим, управляемый с помощью модуля
registry. Переключение между режимами и registry выполняется через ModuleConfigdeckhouse. Переключение выполняется автоматически (ознакомьтесь с примерами использования). - Неконфигурируемый (deprecated) - режим используемый по умолчанию. Параметры конфигурации задаются при установке кластера, или при изменении в развёрнутом кластере с помощью утилиты
helper change registry(deprecated).
- Конфигурируемый - режим, управляемый с помощью модуля
Ограничения и особенности использования модуля
Модуль registry имеет ряд ограничений и особенностей, касающихся установки, условий работы и переключения режимов.
Ограничения при установке кластера
- Bootstrap кластера DKP поддерживается только в
DirectиUnmanagedрежимах (LocalиProxyрежимы не поддерживаются). Registry во время установки кластера настраивается через ModuleConfigdeckhouse. - Для запуска кластера в неконфигурируемом
Unmanagedрежиме (Legacy), необходимо указать параметры registry вinitConfiguration.
Ограничения по условиям работы
Модуль работает при соблюдении следующих условий:
- Если на узлах кластера используется CRI containerd или containerd v2. Для настройки CRI ознакомьтесь с конфигурацией
ClusterConfiguration. - Кластер полностью управляется DKP. В Managed Kubernetes кластерах он работать не будет.
- Работа режимов
LocalиProxyподдерживаются только на статичных кластерах.
Ограничения по переключению режимов
Ограничения по переключению режимов следующие:
- Изменение параметров registry и переключение режимов доступны только после полного завершения этапа bootstrap.
- При первом переключении необходимо выполнить миграцию пользовательских конфигураций реестра. Подробнее — в разделе «Модуль registry: FAQ».
- Переключение в неконфигурируемый
Unmanagedрежим доступно только изUnmanagedрежима. Подробнее — в разделе «Модуль registry: FAQ». - Переключение между режимами
LocalиProxyвозможно только через промежуточные режимыDirectилиUnmanaged. Пример последовательности переключения:Local/Proxy→Direct→Proxy/Local.
Архитектура режима Direct
В режиме Direct запросы к registry обрабатываются напрямую, без промежуточного кеширования.
Перенаправление запросов к registry от CRI осуществляется при помощи его настроек, которые указываются в конфигурации containerd.
В случае таких компонентов, как operator-trivy, image-availability-exporter, deckhouse-controller и ряда других, обращающихся к registry напрямую, запросы будут идти через in-cluster proxy, расположенный на master-узлах.

Архитектура режима Proxy
Рекомендуется использовать разные диски для хранения данных registry (/opt/deckhouse/registry) и etcd. Использование одного диска может привести к деградации производительности etcd при операциях с registry.
Proxy режим позволяет registry выступать в качестве промежуточного прокси-сервера между клиентом и удалённым registry.
Кеширующий proxy registry запускается в виде статических подов на узлах control-plane (master). Кешируемые данные хранятся на control-plane (master) узлах в директории /opt/deckhouse/registry.
Для обеспечения высокой доступности к кеширующему proxy registry используется балансировщик, установленный на каждый узел кластера. CRI обращается к proxy registry через балансировщик. Настройки для обращения к балансировщику указываются в конфигурации containerd.
В случае таких компонентов, как operator-trivy, image-availability-exporter, deckhouse-controller и ряда других, обращающихся к registry напрямую, запросы будут идти через кеширующий proxy registry.

Архитектура режима Local
Рекомендуется использовать разные диски для хранения данных registry (/opt/deckhouse/registry) и etcd. Использование одного диска может привести к деградации производительности etcd при операциях с registry.
Local режим позволяет создавать локальную копию registry внутри кластера. Образы из удалённого registry полностью скопированы в локальное хранилище и синхронизированы между репликами локального registry.
Работа локального registry идентична работе кеширующего proxy registry. Локальный registry запускается в виде статических подов на узлах control-plane (master). Данные registry хранятся на control-plane (master) узлах в директории /opt/deckhouse/registry.
Для обеспечения высокой доступности к локальному registry используется балансировщик, установленный на каждый узел кластера. CRI обращается к локальному registry через балансировщик. Настройки для обращения к балансировщику указываются в конфигурации containerd.
В случае таких компонентов, как operator-trivy, image-availability-exporter, deckhouse-controller и ряда других, обращающихся к registry напрямую, запросы будут идти в локальный registry.
Локальный registry наполняется с помощью инструмента d8 (команды d8 mirror push/pull). Подробнее — в разделе «Модуль registry: пример использования»
