Доступно в редакциях: CE, BE, SE, SE+, EE, CSE Lite (1.64), CSE Pro (1.64)
Этот модуль настраивает в Deckhouse:
- Уровень логирования
- 
    Набор модулей, включенных по умолчанию Обычно используется набор модулей Default, который подходит в большинстве случаев.Независимо от используемого набора включенных по умолчанию модулей любой модуль может быть явно включен или выключен в конфигурации Deckhouse (подробнее про включение и отключение модуля). 
- 
    
    В Deckhouse реализован механизм автоматического обновления. Этот механизм использует 5 каналов обновлений, различающиеся стабильностью и частотой выхода версий. Ознакомьтесь подробнее с тем, как работает механизм автоматического обновления и как установить желаемый канал обновлений. 
- 
    Режим обновлений и окна обновлений Deckhouse может использовать ручной или автоматический режим обновлений. В ручном режиме обновлений автоматически применяются только важные исправления (patch-релизы), и для перехода на более свежий релиз Deckhouse требуется ручное подтверждение. В автоматическом режиме обновлений, если в кластере не установлены окна обновлений, переход на более свежий релиз Deckhouse осуществляется сразу после его появления на соответствующем канале обновлений. Если же в кластере установлены окна обновлений, переход на более свежий релиз Deckhouse начнется в ближайшее доступное окно обновлений после появления свежего релиза на соответствующем канале обновлений. 
- 
    Сервис валидирования custom resource’ов Сервис валидирования предотвращает создание custom resource’ов с некорректными данными или внесение таких данных в уже существующие custom resource’ы. Отслеживаются только custom resource’ы, находящиеся под управлением модулей Deckhouse. 
Обновление релизов Deckhouse
Просмотр статуса релизов Deckhouse
Список последних релизов в кластере можно получить командной kubectl get deckhousereleases. По умолчанию хранятся 10 последних релизов и все будущие.
Каждый релиз может иметь один из следующих статусов:
- Pending— релиз находится в ожидании, ждет окна обновления, настроек канареечного развертывания и т. д. Подробности можно увидеть с помощью команды- kubectl describe deckhouserelease $name.
- Deployed— релиз применен. Это значит, что образ пода Deckhouse уже поменялся на новую версию, но при этом процесс обновления всех компонентов кластера идет асинхронно, так как зависит от многих настроек.
- Superseded— релиз устарел и больше не используется.
- Suspended— релиз был отменен (например, в нем обнаружилась ошибка). Релиз переходит в этот статус, если его отменили и при этом он еще был применен в кластере.
Процесс обновления
В момент перехода в статус Deployed релиз меняет версию (tag) образа Deckhouse. После запуска Deckhouse начнет проверку и обновление всех модулей, которые поменялись с предыдущего релиза. Длительность обновления сильно зависит от настроек и размера кластера.
Например, если у вас много NodeGroup, они будут обновляться продолжительное время, если много IngressNginxController — они будут
обновляться по одному и это тоже займет некоторое время.
Ручное применение релизов
Если у вас стоит ручной режим обновления и скопилось несколько релизов, вы можете отметить их одобренными к применению все сразу. В таком случае Deckhouse будет обновляться последовательно, сохраняя порядок релизов и меняя статус каждого примененного релиза.
Закрепление релиза
Под закреплением релиза подразумевается полное или частичное отключение автоматического обновления версий Deckhouse.
Есть три варианта ограничения автоматического обновления Deckhouse:
- 
    Установить ручной режим обновления. В этом случае вы остановитесь на текущей версии, сможете получать обновления в кластер, но для применения обновления необходимо будет выполнить ручное действие. Это носится и к patch-версиям, и к минорным версиям. Для установки ручного режима обновления необходимо в ModuleConfig deckhouseустановить параметр settings.update.mode вManual:kubectl patch mc deckhouse --type=merge -p='{"spec":{"settings":{"update":{"mode":"Manual"}}}}'
- 
    Установить режим автоматического обновления для патч-версий. В этом случае вы остановитесь на текущем релизе, но будете получать patch-версии текущего релиза. Для применения обновления минорной версии релиза необходимо будет выполнить ручное действие. Например: текущая версия DKP v1.65.2, после установки режима автоматического обновления для патч-версий, Deckhouse сможет обновиться до версииv1.65.6, но не будет обновляться до версииv1.66.*и выше.Для установки режима автоматического обновления для патч-версий необходимо в ModuleConfig deckhouseустановить параметр settings.update.mode вAutoPatch:kubectl patch mc deckhouse --type=merge -p='{"spec":{"settings":{"update":{"mode":"AutoPatch"}}}}'
- 
    Установить конкретный тег для Deployment deckhouseи удалить параметр releaseChannel из конфигурации модуляdeckhouse.В таком случае DKP останется на конкретной версии, никакой информации о новых доступных версиях (объекты DeckhouseRelease) в кластере появляться не будет. Пример установки версии v1.66.3для DKP EE и удаления параметраreleaseChannelиз конфигурации модуляdeckhouse:kubectl -ti -n d8-system exec svc/deckhouse-leader -c deckhouse -- kubectl set image deployment/deckhouse deckhouse=registry.deckhouse.ru/deckhouse/ee:v1.66.3 kubectl patch mc deckhouse --type=json -p='[{"op": "remove", "path": "/spec/settings/releaseChannel"}]'