Обновление платформы конфигурируется в ресурсе ModuleConfig deckhouse
.
Посмотреть текущую конфигурацию настроек обновления можно с помощью команды:
d8 k get mc deckhouse -oyaml
Пример вывода:
...
spec:
settings:
releaseChannel: Stable
update:
windows:
- days:
- Mon
from: "19:00"
to: "20:00"
...
Настройка режима обновления
Платформа поддерживает три режима обновления:
- Автоматический + окна обновлений не заданы. Кластер обновится сразу после появления новой версии на соответствующем канале обновлений.
- Автоматический + заданы окна обновлений. Кластер обновится в ближайшее доступное окно после появления новой версии на канале обновлений.
- Ручной режим. Для применения обновления требуются ручные действия.
Пример фрагмента конфигурации для включения автоматического обновления платформы:
update:
mode: Auto
Пример фрагмента конфигурации для включения автоматического обновления платформы с окнами обновлений:
update:
mode: Auto
windows:
- from: "8:00"
to: "15:00"
days:
- Tue
- Sat
Пример фрагмента конфигурации для включения ручного режима обновления платформы:
update:
mode: Manual
Каналы обновлений
Платформа использует пять каналов обновлений, предназначенных для использования в разных окружениях. Компоненты платформы могут обновляться автоматически, либо с ручным подтверждением по мере выхода обновлений в каналах обновления.
При обновлении платформы компоненты можно разделить на две категории:
- компоненты управления ресурсами виртуализации (управляющий слой);
- компоненты запуска виртуальных машин («прошивка»).
Обновление компонентов управляющего слоя не влияет на работу уже запущенных виртуальных машин, но может привести к кратковременному разрыву установленных соединений по VNC/последовательному порту на время рестарта компонента управляющего слоя.
Обновления в прошивке виртуальных машин в процессе обновления платформы могут потребовать миграции виртуальных машин для перехода на новую версию «прошивки». Миграция при обновлении осуществляется один раз. Если она проходит неуспешно, владельцу виртуальной машины потребуется выполнить её самостоятельно, выполнив evict, либо перезагрузку виртуальной машины.
Информацию по версиям, доступным на каналах обновления, можно получить на сайте https://releases.deckhouse.ru/.
Чтобы перейти на другой канал обновлений, в конфигурации модуля deckhouse
нужно установить параметр .spec.settings.releaseChannel
.
Пример конфигурации модуля deckhouse
с установленным каналом обновлений Stable
:
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: deckhouse
spec:
version: 1
settings:
releaseChannel: Stable
- При смене канала обновлений на более стабильный (например, с
Alpha
наEarlyAccess
) Deckhouse скачивает данные о релизе (в примере — из каналаEarlyAccess
) и сравнивает их с данными из существующих в кластере ресурсовDeckhouseRelease
:- Более поздние релизы, которые еще не были применены (в статусе
Pending
), удаляются. - Если более поздние релизы уже применены (в статусе
Deployed
), смены релиза не происходит. В этом случае платформа останется на таком релизе до тех пор, пока на канале обновленийEarlyAccess
не появится более поздний релиз.
- Более поздние релизы, которые еще не были применены (в статусе
- При смене канала обновлений на менее стабильный (например, с
EarlyAcess
наAlpha
):- Deckhouse скачивает данные о релизе (в примере — из канала
Alpha
) и сравнивает их с данными из существующих в кластере ресурсовDeckhouseRelease
. - Затем платформа выполняет обновление согласно установленным параметрам обновления.
- Deckhouse скачивает данные о релизе (в примере — из канала
Посмотреть список релизов платформы можно с использованием следующих команд:
d8 k get deckhouserelease
d8 k get modulereleases
Для отключения механизма обновления платформы, удалите в конфигурации модуля deckhouse
параметр .spec.settings.releaseChannel
. В этом случае платформа не проверяет обновления и обновление на patch-релизы не выполняется.
Внимание. Крайне не рекомендуется отключать автоматическое обновление. Это заблокирует обновления на patch-релизы, которые могут содержать исправления критических уязвимостей и ошибок.
Немедленное применение обновлений
Чтобы применить обновление немедленно, установите в соответствующем ресурсе DeckhouseRelease аннотацию release.deckhouse.io/apply-now: "true"
.
В этом случае будут проигнорированы окна обновления, настройки canary-release и режим ручного обновления кластера. Обновление применится сразу после установки аннотации.
Пример команды установки аннотации пропуска окон обновлений для версии v1.56.2
:
d8 k annotate deckhousereleases v1.56.2 release.deckhouse.io/apply-now="true"
Пример ресурса с установленной аннотацией пропуска окон обновлений:
apiVersion: deckhouse.io/v1alpha1
kind: DeckhouseRelease
metadata:
annotations:
release.deckhouse.io/apply-now: "true"