Этот модуль настраивает в 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.
Есть три варианта закрепления релиза:
-
Установить ручной режим обновления. В этом случае вы остановитесь на текущем релизе, но будете получать patch-релизы, а minor-релиз не будет обновляться без явного одобрения.
Например: текущий релиз
v1.29.3
, после установки ручного режима обновлений Deckhouse сможет обновиться до версииv1.29.9
, но не будет обновляться на релизv1.30.0
. -
Установить конкретный тег для deployment/deckhouse. В таком случае Deckhouse останется на этом релизе до выхода следующего patch/minor-релиза. Это может понадобиться, если в какой-то версии Deckhouse обнаружилась ошибка, которой не было раньше, и вы хотите откатиться на предыдущий релиз, но обновиться, как только выйдет релиз с исправлением данной ошибки.
Например:
kubectl -n d8-system set image deployment/deckhouse deckhouse=registry.deckhouse.io/deckhouse/ee:v1.30.5
. -
Установить конкретный тег для deployment/deckhouse и удалить
releaseChannel
из конфигурации модуляdeckhouse
. В таком случае вы останетесь на конкретной версии Deckhouse и не будете получать обновлений.$ kubectl -n d8-system set image deployment/deckhouse deckhouse=registry.deckhouse.io/deckhouse/ee:v1.30.5 $ kubectl edit mc deckhouse // удалить releaseChannel