Доступно в редакциях: 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"}]'