Обновление региона KeyStack ks2025.1.1 → ks2026.2 вместе с ОС узлов¶
В этом разделе описаны шаги по обновлению версии KeyStack и ОС на узлах.
Перед обновлением убедитесь, что пакет обновления upgrade-ks2026.2-{sberlinux|ubuntu}.tgz загружен на LCM-узел в папку /installer/update — через пайплайн или вручную командой update.sh. Для регионов с Cloud SDS дополнительно требуется пакет upgrade-ks2026.2-sds1.4-sberlinux.tgz в той же папке.
Проверка работоспособности региона¶
Перед тем как приступать к обновлению, необходимо проверить состояние облачной инфраструктуры. Эта проверка необходима для минимизации рисков и поддержания стабильности системы. Проверка работоспособности региона позволяет убедиться, что виртуальные машины создаются и доступны по сети, что подтверждает работоспособность цепочки сервисов (MariaDB, HAProxy, Cinder, Nova, Neutron, Glance).
Подключитесь к интерфейсу OpenStack CLI.
Проверьте сетевую доступность всех узлов облака с помощью команды
ping.Выполните команду
openstack compute service listдля проверки состояния вычислительных сервисов. Убедитесь, что все сервисы находятся в состоянииup.Выполните команду
openstack volume service listдля проверки состояния службы томов. Убедитесь, что все сервисы находятся в состоянииup.Выполните команду
openstack server listдля проверки состояния виртуальных машин.Используя OpenStack CLI, портал самообслуживания Horizon или Портал администратора, создайте несколько ВМ с различными флейворами и выполните их live-миграцию.
Отключение сервисов DRS и HA¶
Перед началом обновления необходимо отключить сервисы DRS и HA.
Для деактивации DRS:
Войдите в Портал администратора.
Перейдите в раздел .
Деактивируйте все задания сервиса DRS.
Для деактивации HA:
Зайдите на каждый Control-узел по SSH и выполните команду:
# systemctl stop kolla-consul-container.service
Настройка и обновление RabbitMQ¶
Перед обновлением региона необходимо выполнить обновление конфигурации RabbitMQ.
Настройка параметров RabbitMQ:
Зайдите в веб-интерфейс GitLab.
Перейдите в репозиторий project_k / deployments / <имя региона>.
Откройте на редактирование файл
globals.d/rmq-tmp.yml, исправьте или внесите новые строки:om_enable_queue_manager: true om_enable_rabbitmq_quorum_queues: true om_enable_rabbitmq_transient_quorum_queue: true om_enable_rabbitmq_stream_fanout: true om_enable_rabbitmq_high_availability: falseСоздайте новый пайплайн: .
В переменной
KOLLA_ARGSукажите значение--skip-tags loadbalancer,prometheus,victoriametrics,mariadb,rabbitmq,opensearch,memcache,grafana,drs,consul.В переменной
KOLLA_ANSIBLE_DEPLOY_ACTIONукажите значениеgenconfig.Запустите пайплайн New pipeline.
Дождитесь завершения задач на этапе setup.
Запустите задачу deploy на этапе deploy и дождитесь её завершения.
Остановите все службы OpenStack, использующие RabbitMQ, чтобы они пока не пытались пересоздать очереди.
Создайте новый пайплайн: .
В переменной
KOLLA_ARGSукажите значение--tags common,keystone,cinder,nova,placement,glance,neutron,octavia,barbican,heat,adminui,hostmgmt,designate,ironic -e 'skip_stop_containers=["vhost"]' --yes-i-really-really-mean-it.В переменной
KOLLA_ANSIBLE_DEPLOY_ACTIONукажите значениеstop.Запустите пайплайн New pipeline.
Дождитесь завершения задач на этапе setup.
Запустите задачу deploy на этапе deploy и дождитесь её завершения.
Сброс состояния RabbitMQ:
Зайдите на каждый Control-узел по SSH и выполните команду:
# systemctl stop kolla-rabbitmq-container.service && podman rm rabbitmq && podman volume rm rabbitmqСоздайте новый пайплайн: .
В переменной
KOLLA_ARGSукажите значение-e container_network_mode='host' -t rabbitmq.В переменной
KOLLA_ANSIBLE_DEPLOY_ACTIONукажите значениеdeploy.Запустите пайплайн New pipeline.
Дождитесь завершения задач на этапе setup.
Запустите задачу deploy на этапе deploy и дождитесь её завершения.
Создайте новый пайплайн: .
В переменной
KOLLA_ANSIBLE_DEPLOY_ACTIONукажите значениеrabbitmq-reset-state.Запустите пайплайн New pipeline.
Дождитесь завершения задач на этапе setup.
Запустите задачу deploy на этапе deploy и дождитесь её завершения.
Запустите все службы OpenStack, использующие RabbitMQ, чтобы они заново создали соответствующие очереди:
Создайте новый пайплайн: .
В переменной
KOLLA_ARGSукажите значение--tags common,keystone,cinder,nova,placement,glance,neutron,octavia,barbican,heat,adminui,hostmgmt,designate,ironic.В переменной
KOLLA_ANSIBLE_DEPLOY_ACTIONукажите значениеdeploy-containers.Запустите пайплайн New pipeline.
Дождитесь завершения задач на этапе setup.
Запустите задачу deploy на этапе deploy и дождитесь её завершения.
Перевод MariaDB в режим host network:
Примечание
Выполните этот шаг только если обновление производится на ОС SberLinux
Зайдите на каждый Control-узел по SSH и выполните команду:
# sysctl -w net.bridge.bridge-nf-call-iptables=0Создайте новый пайплайн: .
В переменной
KOLLA_ANSIBLE_DEPLOY_ACTIONукажите значениеmariadb-recovery.Запустите пайплайн New pipeline.
Дождитесь завершения задач на этапе setup.
Запустите задачу deploy на этапе deploy и дождитесь её завершения.
Создайте новый пайплайн: .
В переменной
KOLLA_ARGSукажите значение-e container_network_mode='host' -t mariadb.В переменной
KOLLA_ANSIBLE_DEPLOY_ACTIONукажите значениеdeploy.Запустите пайплайн New pipeline.
Дождитесь завершения задач на этапе setup.
Запустите задачу deploy на этапе deploy и дождитесь её завершения.
Настройка GitLab¶
Измените конфигурацию пайплайна:
Зайдите в веб-интерфейс GitLab.
Перейдите в репозиторий project_k / deployments / <имя региона>.
Откройте файл
.gitlab-ci.ymlв репозитории региона.В переменной
KEYSTACK_RELEASEукажите версию релиза, на которую производится обновление —ks2026.2:KEYSTACK_RELEASE: value: &KEYSTACK_RELEASE ks2026.2
Настройте таймаут для пайплайнов:
Перейдите в раздел .
Установите значение Timeout —
5h.
Обновление KeyStack на Control-узлах¶
Отредактируйте конфигурацию региона:
Зайдите в веб-интерфейс GitLab.
Перейдите в репозиторий project_k / deployments / <имя региона>.
Откройте на редактирование файл
inventoryи измените группы:[tls-backend:children] control network compute storage monitoring [octavia:children] control [octavia-health-manager:children] network [octavia-worker:children] network [designate-mdns:children] designate [adminui-backend:children] control [adminui-frontend:children] controlДобавьте группы:
[nova-metadata:children] nova [prometheus-redfish-exporter:children] monitoring [prometheus-smartctl-exporter:children] monitoring control compute network storage [prometheus-pushgateway:children] monitoring [ovn-sb-db-relay:children] ovn-database [hostmgmt:children] control compute [vector:children] monitoring [adminui-hypervisor-exporter:children] compute [firewall:children] control network compute storage monitoring [temporal:children] control [patroni:children] control [keyvrm:children] control [keyvrm-server:children] keyvrm [keyvrm-worker:children] keyvrm [mcrouter:children] memcachedУдалите группы:
[adminui:children] control [swift:children] control # Swift [swift-proxy-server:children] swift [swift-account-server:children] storage [swift-container-server:children] storage [swift-object-server:children] storage [prometheus-hypervisor-exporter:children] computeОткройте на редактирование файл
globals.d/REGION.yml, удалите параметрkolla_internal_fqdn_cert.Откройте на редактирование файл
globals.d/2526-tmp.ymlи добавьте следующие параметры для выключения TLS на время проведения процесса обновления:Примечание
Файл
globals.d/2526-tmp.ymlнеобходим только на время обновления. Если данные параметры уже включены в конфигурации ks2025.1, в любых конфигурационных файлахglobals.d/*.yml, оставьте их без изменений. После завершения процесса обновления данные параметры можно убрать для включения функций безопасности.libvirt_tls: "no" rabbitmq_enable_tls: "no" opensearch_enable_tls_backend: "no" kolla_enable_mtls_backend: "no" nova_qemu_vnc_tls: "no" kolla_enable_tls_external: "yes" kolla_enable_tls_internal: "yes" kolla_enable_tls_backend: "no" kolla_enable_mtls_external: "no" kolla_enable_mtls_internal: "no" enable_selinux_profiles: "no" selinux_state: "permissive" enable_podman_ro: "no"Если в конфигурационных файлах
globals.d/*.ymlвключены опцииenable_keyvrmилиenable_rbac_model— выключите их на время обновления.В продукте по умолчанию выключены сервисы Octavia, Heat, Barbican и Designate. Если вы их используете, добавьте опции их включения:
enable_octavia: "yes" enable_barbican: "yes" enable_designate: "yes" enable_heat: "yes"Откройте на редактирование файл
globals.d/sds14-tmp.ymlи добавьте следующие временные теги:Примечание
Данный пункт предназначен только для обновления регионов, использующих Cloud SDS в качестве Storage.
В этом файле фиксируются промежуточные версии компонент nova-compute, cinder-volume и glance-api, необходимых для возможности обновления Cloud SDS 1.3 → 1.4 → 1.5.
sds_14_tag: "ks2026.2-sds14-sberlinux" nova_compute_tag: "{{ sds_14_tag }}" cinder_volume_tag: "{{ sds_14_tag }}" glance_api_tag: "{{ sds_14_tag }}"
По умолчанию в ks2026.2 Prometheus Server выключен, включен Victoriametrics. Для продолжения работы с Prometheus Server добавьте в файл globals.d/REGION.yml параметр:
enable_prometheus_server: "yes"
Запущенный сервис Prometheus Alertmanager заранее создаёт каталог данных Prometheus, что может приводить к ошибке переноса данных при выполнении пайплайна обновления региона на Control-узлах. Поэтому перед обновлением необходимо остановить сервис Prometheus Alertmanager, а также удалить автоматически созданную директорию etc/prometheus/_data и всё её содержимое. Для этого перед запуском пайплайна обновления выполните следующие действия для каждого Control-узла по отдельности:
Зайдите на Control-узел по SSH и выполните команду:
# systemctl stop kolla-prometheus_alertmanager-container.serviceКоманда остановит запущенный на узле Prometheus Alertmanager.
Выполните команду:
# rm -rf /var/lib/docker/volumes/prometheus/_data/*Команда удалит соответствующую директорию.
В случае использования Podman команда будет иметь следующий вид:
# rm -rf /var/lib/containers/storage/volumes/prometheus/_data/*
По умолчанию в ks2026.2 выключена поддержка serial console. Для её дальнейшего использования добавьте в файл globals.d/REGION.yml параметр:
enable_nova_serialconsole_proxy: "yes"
Для загрузки образов KeyStack в кеш узлов выполните следующие действия:
Примечание
Данный шаг опциональный и нужен для ускорения выполнения основного пайплайна обновления. Процедура загрузки образов может идти в фоновом режиме. НЕ нужно дожидаться её завершения для перехода к следующим шагам.
Зайдите в веб-интерфейс GitLab.
Перейдите в репозиторий project_k / deployments / <имя региона>.
Создайте новый пайплайн: .
В переменной
KOLLA_ANSIBLE_DEPLOY_ACTIONукажите значениеpull.Запустите пайплайн New pipeline.
Дождитесь завершения задач на этапе setup.
Запустите задачу deploy на этапе deploy.
Для обновления вспомогательных служб KeyStack выполните следующие действия:
Зайдите в веб-интерфейс GitLab.
Перейдите в репозиторий project_k / deployments / <имя региона>.
Создайте новый пайплайн: .
В переменной
KOLLA_ARGSукажите значение-t common.В переменной
KOLLA_ANSIBLE_DEPLOY_ACTIONукажите значениеdeploy.Запустите пайплайн New pipeline.
Дождитесь завершения задач на этапе setup.
Запустите задачу deploy на этапе deploy и дождитесь её завершения.
Для обновления KeyStack на Control-узлах выполните следующие действия:
Зайдите в веб-интерфейс GitLab.
Перейдите в репозиторий project_k / deployments / <имя региона>.
Создайте новый пайплайн: .
В переменной
KOLLA_ARGSукажите значение--limit control,storage. Это обеспечит выполнение пайплайна только для Control-узлов.В переменной
KOLLA_ANSIBLE_DEPLOY_ACTIONукажите значениеupgrade.Запустите пайплайн New pipeline.
Дождитесь завершения задач на этапе setup.
Запустите задачу deploy на этапе deploy и дождитесь её завершения.
Примечание
На данном этапе может возникнуть ошибка на обновлении компонента OpenSearch, задача
[opensearch : Check if a log retention policy exists]. В случае возникновения ошибки нужно повторно запустить задачу нажав Run again.
Для установки служб AdminUI Hostmanagement agent выполните следующие действия:
Зайдите в веб-интерфейс GitLab.
Перейдите в репозиторий project_k / deployments / <имя региона>.
Создайте новый пайплайн: .
Выберите ветку вашего релиза в выпадающем списке Run for branch name or tag
master-<имя релиза keystack>.В переменной
KOLLA_ARGSукажите значение--tags hostmgmt,adminui.В переменной
KOLLA_ANSIBLE_DEPLOY_ACTIONукажите значениеdeploy.Запустите пайплайн New pipeline.
Дождитесь завершения задач на этапе setup.
Запустите задачу deploy на этапе deploy и дождитесь её завершения.
Сервисы DRS и Consul (VMHA) больше не включены по умолчанию — их функциональность реализована сервисом KeyVRM. Порядок его настройки описан в разделе Настройка развёртывания и подключений KeyVRM.
Для удаления более неиспользуемых сервисов KeyStack выполните следующие действия:
Откройте на редактирование файл
globals.d/REGION.ymlи удалите следующие параметры:enable_drs: "yes" enable_consul: "yes"Зайдите на Control-узел по SSH и выполните команду:
# systemctl disable --now kolla-drs-container.service kolla-consul-container.service kolla-prometheus_consul_exporter-container.service ; rm -f /etc/systemd/system/kolla-{consul,drs,prometheus_consul_exporter}-container.service ; podman rm consul drs prometheus_consul_exporter ; podman volume rm consulКоманда остановит и удалит запущенные на узле службы consul (VMHA) и DRS.
Для удаления Horizon (в версии на SberLinux больше не поставляется) зайдите на Control-узел по SSH и выполните команду:
# systemctl disable --now kolla-horizon-container.service ; rm -f /etc/systemd/system/kolla-horizon-container.service ; podman rm horizonКоманда остановит и удалит запущенную на узле службу Horizon.
Зайдите на Compute-узел по SSH и выполните команду:
# systemctl disable --now kolla-consul-container.service && rm -f /etc/systemd/system/kolla-consul-container.service && podman rm consul && podman volume rm consulКоманда остановит и удалит запущенную на узле службу consul (VMHA).
Для обновления ОС на Control-узлах выполните действия, описанные в разделе Обновление контроллеров, выбрав компонент обновления ОС.
Для обновления KeyStack на Network-узлах выполните следующие действия:
Зайдите в веб-интерфейс GitLab.
Перейдите в репозиторий project_k / deployments / <имя региона>.
Создайте новый пайплайн: .
В переменной
KOLLA_ARGSукажите значение--limit network. Это обеспечит выполнение пайплайна только для Network-узлов.В переменной
KOLLA_ANSIBLE_DEPLOY_ACTIONукажите значениеupgrade.Запустите пайплайн New pipeline.
Дождитесь завершения задач на этапе setup.
Запустите задачу deploy на этапе deploy и дождитесь её завершения.
Обновление KeyStack на Compute-узлах¶
Для обновления KeyStack на Compute-узлах выполните действия, описанные в разделе Обновление гипервизоров, выбрав компонент обновления ОС+KeyStack.
Завершение обновления KeyStack¶
Примечание
Данный этап можно выполнять только после успешного обновления всех Compute узлов
Для завершения обновления KeyStack и включения всех функций безопасности выполните следующие шаги:
Удалите временные файлы из конфигурационного репозитория региона:
globals.d/2526-tmp.ymlиglobals.d/rmq-tmp.yml.Зайдите в веб-интерфейс GitLab.
Перейдите в репозиторий project_k / deployments / <имя региона>.
Создайте новый пайплайн: .
В переменной
KOLLA_ANSIBLE_DEPLOY_ACTIONукажите значениеdeploy.Запустите пайплайн New pipeline.
Дождитесь завершения задач на этапе setup.
Запустите задачу deploy на этапе deploy и дождитесь её завершения.
Остановите и удалите сервисы контейнеров kolla-prometheus_hypervisor_exporter-container.service и kolla-prometheus_rabbitmq_exporter-container.service:
Зайдите на каждый Compute-узел по SSH.
Выполните команды:
# systemctl stop kolla-prometheus_hypervisor_exporter-container.service # systemctl disable kolla-prometheus_hypervisor_exporter-container.serviceЗайдите на каждый Control-узел по SSH.
Выполните команды:
# systemctl stop kolla-prometheus_rabbitmq_exporter-container.service # systemctl disable kolla-prometheus_rabbitmq_exporter-container.service
Примечание
Данный этап можно выполнять только после успешного обновления кластера Cloud SDS до версии 1.4.х
Для завершения обновления драйверов Cloud SDS выполните следующие шаги:
Удалите временный файл из конфигурационного репозитория региона
globals.d/sds14-tmp.yml.Зайдите в веб-интерфейс GitLab.
Перейдите в репозиторий project_k / deployments / <имя региона>.
Создайте новый пайплайн: .
В переменной
KOLLA_ARGSукажите значение-t nova-cell,cinder,glance.В переменной
KOLLA_ANSIBLE_DEPLOY_ACTIONукажите значениеdeploy.Запустите пайплайн New pipeline.
Дождитесь завершения задач на этапе setup.
Запустите задачу deploy на этапе deploy и дождитесь её завершения.
Проверка работоспособности региона после обновления¶
Выполните все шаги проверки из раздела Проверка работоспособности региона.