Как происходит обновление
Обновление кластера управления и каждого клиентского кластера в платформе “Штурвал” происходят независимо друг от друга. Обновление доступно только по стабильному каналу (кастомный ресурс ShturvalUpdateChannel, updateChannel = stable).
Выпуск минорных версий происходит 4 раза в год поквартально. Минорная версия включает значительные изменения:
- обновляется версия Kubernetes;
- могут быть изменены компоненты или их версии.
Соответствие выпущенной версии Штурвала и версии Kubernetes
| Версия релиза | Версия Kubernetes |
|---|---|
| 2.2.0 | 1.25.9 |
| 2.2.4 | 1.25.9 |
| 2.2.5 | 1.25.9 |
| 2.2.6 | 1.25.9 |
| 2.3.0 | 1.26.5 |
| 2.3.1 | 1.26.5 |
| 2.3.2 | 1.26.5 |
| 2.3.3 | 1.26.10 |
| 2.4.0 | 1.27.6 |
| 2.4.1 | 1.27.6 |
| 2.5.0 | 1.28.3 |
| 2.5.1 | 1.28.3 |
| 2.5.2 | 1.28.3 |
| 2.5.3 | 1.28.9 |
| 2.6.0 | 1.29.1 |
| 2.6.1 | 1.29.1 |
| 2.7.0 | 1.29.4 |
| 2.7.1 | 1.29.6 |
| 2.7.2 | 1.29.6 |
| 2.8.0 | 1.30.5 |
| 2.8.1 | 1.30.5 |
| 2.9.1 | 1.31.3 |
| 2.9.2 | 1.31.8 |
| 2.10.0 | 1.32.3 |
| 2.11.0 | 1.33.1 |
Выпуск патч версий происходит опционально при необходимости устранения выявляемых уязвимостей и дефектов. Патч версия включает:
- выпускаемые багфиксы;
- устранения уязвимостей компонентов.
Доставка обновлений
Все доступные обновления (стабильные версии) для версии, установленной в вашем кластере, отображаются в графическом интерфейсе в блоке “Обновление” дашбордов кластера управления и клиентского кластера.
Если платформа эксплуатируется в закрытом контуре, то доступные версии будут отображаться после добавления бандла с новой версией в реджистри. Для доставки обновления в закрытых инсталляциях выполните шаги из инструкции Обновление в закрытом контуре.
Вы можете ознакомиться с картой доступных версий обновлений здесь.
Способы обновления кластера
Обновление версии кластера управления и клиентского кластера может проходить из графического интерфейса или из консоли.
Из графического интерфейса платформы
В графическом интерфейсе вы можете запустить обновление ручным способом или настроить расписание для автоматического запуска обновления. Подробнее как запустить обновление из интерфейса описано здесь.
В случае автоматического запуска есть возможность выбора разрешаемого вида версии (минорная, патч) для проведения обновления.
Из интерфейса командной строки
Возможно запустить обновление ручным способом или настроить расписание для автоматического запуска обновления.
Для ручного запуска обновления в кластере укажите необходимую версию в кастомном ресурсе ShturvalUpdate. В команде используйте свои значения параметров.
Пример команды запуска обновления
kubectl -n shturval-update-system patch su shturval-update --type=merge -p '{"spec":{"version":"ВВЕДИТЕ-ВЕРСИЮ-ДЛЯ-ОБНОВЛЕНИЯ"}}'
Чтобы из консоли настроить автоматический запуск обновления по расписанию:
- Создайте YAML-файл update-schedule.yaml с манифестом объекта ShturvalUpdateSchedule.
Пример ShturvalUpdateSchedule для настройки отложенного обновления
apiVersion: update.shturval.tech/v1beta1
kind: ShturvalUpdateSchedule
metadata:
name: <имя объекта>
namespace: shturval-update-system
spec:
allowMinorVersion: <ваше значение параметра>
pauseIfUpdatePeriodExceed: <ваше значение параметра>
schedule: <ваше значение параметра>
updatePeriod: <ваше значение параметра>
| Параметр | Описание | Тип данных | Пример |
|---|---|---|---|
name |
Имя создаваемого ShturvalUpdateSchedule | string | update-schedule |
allowMinorVersion |
Разрешение обновляться на минорную версию | boolean | true |
pauseIfUpdatePeriodExceed |
Прервать обновление, если оно не успело завершиться в указанный период обновления | boolean | false |
schedule |
Расписание времени начала окна обновления в формате Cron | string | 0 8 26 9 * |
updatePeriod |
Длительность окна обновления. По умолчанию 24 часа | string | 10h0m0s |
- Примените созданный ShturvalUpdateSchedule в кластере.
Команда применения update-schedule.yaml
kubectl apply -f update-schedule.yaml
- Когда ShturvalUpdateSchedule применен в кластере, добавьте имя созданного ShturvalUpdateSchedule и версию для обновления в кастомный ресурс ShturvalUpdate. В команде используйте свои значения параметров.
Пример команды инициирования обновления по расписанию
kubectl -n shturval-update-system patch su shturval-update --type=merge -p '{"spec":{"followSchedule":"УКАЖИТЕ-ИМЯ-СОЗДАННОГО-ShturvalUpdateSchedule"}}'