Обновление региона KeyStack ks2025.1.1 → ks2026.1

В этом разделе описаны шаги по обновлению версии KeyStack при сохранении текущих версий ОС на узлах.

Перед обновлением убедитесь в наличии пакета обновления upgrade-ks2026.1-{sberlinux|ubuntu}.tgz на LCM-узле в папке /installer/update.

Проверка работоспособности региона

Перед тем как приступать к обновлению, необходимо проверить состояние облачной инфраструктуры. Эта проверка необходима для минимизации рисков и поддержания стабильности системы. Проверка работоспособности региона позволяет убедиться, что виртуальные машины создаются и доступны по сети, что подтверждает работоспособность цепочки сервисов (MariaDB, HAProxy, Cinder, Nova, Neutron, Glance).

  1. Подключитесь к интерфейсу OpenStack CLI.

  2. Проверьте сетевую доступность всех узлов облака с помощью команды ping.

  3. Выполните команду openstack compute service list для проверки состояния вычислительных сервисов. Убедитесь, что все сервисы находятся в состоянии up.

  4. Выполните команду openstack volume service list для проверки состояния службы томов. Убедитесь, что все сервисы находятся в состоянии up.

  5. Выполните команду openstack server list для проверки состояния виртуальных машин.

  6. Используя OpenStack CLI, портал самообслуживания Horizon или Портал администратора, создайте несколько ВМ с различными флейворами и выполните их live-миграцию.

Отключение сервисов DRS и HA

Перед началом обновления необходимо отключить сервисы DRS и HA.

Для деактивации DRS:

  1. Войдите в Портал администратора.

  2. Перейдите в раздел Динамический планировщик ресурсов > Задания.

  3. Деактивируйте все задания сервиса DRS.

Для деактивации HA:

  1. Зайдите на каждый Control-узел по SSH и выполните команду:

    # systemctl stop kolla-consul-container.service
    

Настройка и обновление RabbitMQ

Перед обновлением региона необходимо выполнить обновление RabbitMQ до версии 4.

Настройка параметров RabbitMQ:

  1. Зайдите в веб-интерфейс GitLab.

  2. Перейдите в репозиторий вашего региона project_k / deployments / <имя региона>.

  3. Откройте на редактирование файл globals.d/REGION.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
    
  4. Создайте новый пайплайн: Build > Pipelines > New pipeline.

  5. В переменной KOLLA_ARGS укажите значение --skip-tags loadbalancer.

  6. В переменной KOLLA_ANSIBLE_DEPLOY_ACTION укажите значение genconfig.

  7. Запустите пайплайн, нажав кнопку New pipeline.

  8. Дождитесь завершения задач на этапе setup.

  9. Запустите задачу deploy на этапе deploy и дождитесь её завершения.

Остановите все службы OpenStack, использующие RabbitMQ, чтобы они пока не пытались пересоздать очереди.

  1. Создайте новый пайплайн: Build > Pipelines > New pipeline.

  2. В переменной KOLLA_ANSIBLE_DEPLOY_ACTION укажите значение stop.

  3. В переменной KOLLA_ARGS укажите значение --tags keystone,cinder,nova,placement,glance,neutron,octavia,barbican,heat,adminui,hostmgmt,designate,ironic -e 'skip_stop_containers=["vhost"]' --yes-i-really-really-mean-it.

  4. Запустите пайплайн, нажав кнопку New pipeline.

  5. Дождитесь завершения задач на этапе setup.

  6. Запустите задачу deploy на этапе deploy и дождитесь её завершения.

Отключение опции высокой доступности RabbitMQ:

Примечание

Выполните этот шаг только в том случае, если ранее использовалась опция om_enable_rabbitmq_high_availability. В противном случае его можно пропустить.

  1. Зайдите в веб-интерфейс GitLab.

  2. Перейдите в репозиторий вашего региона project_k / deployments / <имя региона>.

  3. Откройте на редактирование файл globals.d/REGION.yml измените строку:

    om_enable_rabbitmq_high_availability: false
    
  4. Создайте новый пайплайн: Build > Pipelines > New pipeline.

  5. В переменной KOLLA_ANSIBLE_DEPLOY_ACTION укажите значение reconfigure.

  6. В переменной KOLLA_ARGS укажите значение --tags rabbitmq.

  7. Запустите пайплайн, нажав кнопку New pipeline.

  8. Дождитесь завершения задач на этапе setup.

  9. Запустите задачу deploy на этапе deploy и дождитесь её завершения.

Сброс состояния RabbitMQ:

  1. Создайте новый пайплайн: Build > Pipelines > New pipeline.

  2. В переменной KOLLA_ANSIBLE_DEPLOY_ACTION укажите значение rabbitmq-reset-state.

  3. Запустите пайплайн, нажав кнопку New pipeline.

  4. Дождитесь завершения задач на этапе setup.

  5. Запустите задачу deploy на этапе deploy и дождитесь её завершения.

Запустите все службы OpenStack, использующие RabbitMQ, чтобы они заново создали соответствующие очереди:

  1. Создайте новый пайплайн: Build > Pipelines > New pipeline.

  2. В переменной KOLLA_ANSIBLE_DEPLOY_ACTION укажите значение deploy.

  3. В переменной KOLLA_ARGS укажите значение --tags keystone,cinder,nova,placement,glance,neutron,octavia,barbican,heat,adminui,hostmgmt,designate,ironic.

  4. Запустите пайплайн, нажав кнопку New pipeline.

  5. Дождитесь завершения задач на этапе setup.

  6. Запустите задачу deploy на этапе deploy и дождитесь её завершения.

Настройка GitLab

Измените конфигурацию пайплайна:

  1. Зайдите в веб-интерфейс GitLab.

  2. Перейдите в репозиторий вашего региона project_k / deployments / <имя региона>.

  3. Откройте файл .gitlab-ci.yml в репозитории региона.

  4. В переменной KEYSTACK_RELEASE укажите версию релиза, на которую производится обновление — ks2026.1:

    KEYSTACK_RELEASE:
      value: &KEYSTACK_RELEASE ks2026.1
    

Настройте таймаут для пайплайнов:

  1. Перейдите в раздел Settings > CI/CD > General pipelines.

  2. Установите значение Timeout5h.

Запустите обновление RabbitMQ:

  1. Зайдите в веб-интерфейс GitLab.

  2. Перейдите в репозиторий вашего региона project_k / deployments / <имя региона>.

  3. Создайте новый пайплайн: Build > Pipelines > New pipeline.

  4. В переменной KOLLA_ANSIBLE_DEPLOY_ACTION укажите значение upgrade.

  5. В переменной KOLLA_ARGS укажите значение --tags rabbitmq.

  6. Запустите пайплайн, нажав кнопку New pipeline.

  7. Дождитесь завершения задач на этапе setup.

  8. Запустите задачу deploy на этапе deploy и дождитесь её завершения.

Обновление KeyStack на Control-узлах

Отредактируйте файл inventory вашего региона:

  1. Зайдите в веб-интерфейс GitLab.

  2. Перейдите в репозиторий вашего региона project_k / deployments / <имя региона>.

  3. Откройте на редактирование файл 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
    

    Удалите группы:

    [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
    
  4. Откройте на редактирование файл globals.d/REGION.yml, закомментируйте одну строку и добавьте следующие параметры для выключения TLS на время проведения процесса обновления:

    # kolla_internal_fqdn_cert: "/etc/kolla/haproxy-internal.pem"
    
    libvirt_tls: "no"
    rabbitmq_enable_tls: "no"
    kolla_enable_tls_backend: "no"
    opensearch_enable_tls_backend: "no"
    

    Если данные параметры уже включены в конфигурации ks2025.1, оставьте их без изменений. После завершения процесса обновления данные параметры можно убрать.

    В продукте по умолчанию выключены сервисы Octavia, Heat, Barbican и Designate. Если вы их используете, добавьте опции их включения:

    enable_octavia: "yes"
    enable_barbican: "yes"
    enable_designate: "yes"
    enable_heat: "yes"
    

По умолчанию в ks2026.1 Prometheus Server выключен, включен Victoriametrics. Для продолжения работы с Prometheus Server добавьте в файл globals.d/REGION.yml параметр:

enable_prometheus_server: "yes"

Запущенный сервис Prometheus Alertmanager заранее создаёт каталог данных Prometheus, что может приводить к ошибке переноса данных при выполнении пайплайна обновления региона на Control-узлах. Поэтому перед обновлением необходимо остановить сервис Prometheus Alertmanager, а также удалить автоматически созданную директорию etc/prometheus/_data и всё её содержимое. Для этого перед запуском пайплайна обновления выполните следующие действия для каждого Control-узла по отдельности:

  1. Зайдите на Control-узел по SSH и выполните команду:

    # systemctl stop kolla-prometheus_alertmanager-container.service
    

    Команда остановит запущенный на узле Prometheus Alertmanager.

  2. Выполните команду:

    # rm -rf /var/lib/docker/volumes/prometheus/_data/*
    

    Команда удалит соответствующую директорию.

    В случае использования Podman команда будет иметь следующий вид:

    # rm -rf /var/lib/containers/storage/volumes/prometheus/_data/*
    
  3. По умолчанию в ks2026.1 выключена поддержка serial console. Для ее дальнейшего использования добавьте в файл globals.d/REGION.yml параметр:

    enable_nova_serialconsole_proxy: "yes"
    

Для обновления KeyStack на Control-узлах выполните следующие действия:

  1. Зайдите в веб-интерфейс GitLab.

  2. Перейдите в репозиторий вашего региона project_k / deployments / <имя региона>.

  3. Создайте новый пайплайн: Build > Pipelines > New pipeline.

  4. В переменной KOLLA_ARGS укажите значение --limit control. Это обеспечит выполнение пайплайна только для Control-узлов.

  5. В переменной KOLLA_ANSIBLE_DEPLOY_ACTION укажите значение upgrade.

  6. Запустите пайплайн, нажав кнопку New pipeline.

  7. Дождитесь завершения задач на этапе setup.

  8. Запустите задачу deploy на этапе deploy и дождитесь её завершения.

Для обновления KeyStack на Network-узлах выполните следующие действия:

  1. Зайдите в веб-интерфейс GitLab.

  2. Перейдите в репозиторий вашего региона project_k / deployments / <имя региона>.

  3. Создайте новый пайплайн: Build > Pipelines > New pipeline.

  4. В переменной KOLLA_ARGS укажите значение --limit network. Это обеспечит выполнение пайплайна только для Network-узлов.

  5. В переменной KOLLA_ANSIBLE_DEPLOY_ACTION укажите значение upgrade.

  6. Запустите пайплайн, нажав кнопку New pipeline.

  7. Дождитесь завершения задач на этапе setup.

  8. Запустите задачу deploy на этапе deploy и дождитесь её завершения.

Обновление KeyStack на Compute-узлах

Перед выполнением обновления Compute-узлов их необходимо освободить от виртуальных машин. Это можно сделать путём перевода одного или нескольких узлов в режим обслуживания. При освобождении виртуальные машины будут смигрированы на другие узлы. Для перевода узлов в режим обслуживания выполните следующие шаги:

  1. Зайдите в Портал администратора.

  2. Перейдите в раздел Вычислительные ресурсы > Гипервизоры.

  3. Выберите в выпадающем меню столбца actions Enable maintenance mode для нужного гипервизора и подтвердите его перевод в режим обслуживания.

Перевод гипервизора в режим обслуживания

Перевод гипервизора в режим обслуживания

Затем выполните обновление одного или нескольких освобожденных узлов:

  1. Зайдите в веб-интерфейс GitLab.

  2. Перейдите в репозиторий вашего региона project_k / deployments / <имя региона>.

  3. Создайте новый пайплайн: Build > Pipelines > New pipeline.

  4. В переменной KOLLA_ARGS укажите значение --limit hostname1,hostname2, перечислив имена гипервизоров, указанные в файле inventory вашего региона.

    Подсказка

    Значение параметра --limit можно указывать различными способами. Например, если ваш файл inventory содержит такие имена узлов:

    [compute]
    cdm-sl-pca35.domain.company.ru
    cdm-bl-pca02.domain.company.ru
    cdm-bl-pca03.domain.company.ru
    cdm-bl-pca20.domain.company.ru
    

    вы можете использовать любой из следующих вариантов:

    • --limit cdm-sl-pca35.domain.company.ru,cdm-bl-pca02.domain.company.ru,cdm-bl-pca03.domain.company.ru

    • --limit cdm-sl-pca35*,cdm-bl-pca02*,cdm-bl-pca03*

    • --limit cdm-sl-pca35*,cdm-bl-pca0[2,3]*

  5. В переменной KOLLA_ANSIBLE_DEPLOY_ACTION укажите значение upgrade.

  6. Запустите пайплайн, нажав кнопку New pipeline.

  7. Дождитесь завершения задач на этапе setup.

  8. Запустите задачу deploy на этапе deploy и дождитесь её завершения.

Проверьте состояние узлов после обновления и при необходимости выведите узлы из режима обслуживания. Для этого:

  1. Зайдите в Портал администратора.

  2. Перейдите в раздел Вычислительные ресурсы > Гипервизоры.

  3. Выберите в выпадающем меню столбца actions Disable maintenance mode.

Повторите шаги запуска пайплайна для всех Compute-узлов по одному или порциями до полного обновления региона.

Завершение обновления KeyStack

  1. Зайдите в веб-интерфейс GitLab.

  2. Перейдите в репозиторий вашего региона project_k / deployments / <имя региона>.

  3. Создайте новый пайплайн: Build > Pipelines > New pipeline.

  4. В переменной KOLLA_ARGS укажите значение --tags hostmgmt.

  5. В переменной KOLLA_ANSIBLE_DEPLOY_ACTION укажите значение deploy.

  6. Запустите пайплайн, нажав кнопку New pipeline.

  7. Дождитесь завершения задач на этапе setup.

  8. Запустите задачу deploy на этапе deploy и дождитесь её завершения.

Остановите и удалите сервисы контейнеров kolla-prometheus_hypervisor_exporter-container.service и kolla-prometheus_rabbitmq_exporter-container.service:

  1. Зайдите на каждый Compute-узел по SSH.

  2. Выполните команды:

    # systemctl stop kolla-prometheus_hypervisor_exporter-container.service
    # systemctl disable kolla-prometheus_hypervisor_exporter-container.service
    
  3. Зайдите на каждый Control-узел по SSH.

  4. Выполните команды:

    # systemctl stop kolla-prometheus_rabbitmq_exporter-container.service
    # systemctl disable kolla-prometheus_rabbitmq_exporter-container.service
    

Проверка работоспособности региона после обновления

Выполните все шаги проверки из раздела Проверка работоспособности региона.

Включение сервисов DRS и HA

Для включения DRS:

  1. Войдите в Портал администратора.

  2. Перейдите в раздел Динамический планировщик ресурсов > Задания.

  3. Активируйте все задания сервиса DRS.

Для включения HA:

  1. Войдите в Портал администратора.

  2. Перейдите в раздел Настройки региона > Службы.

  3. Заполните поля:

    • Имя хоста — выберите имя Control-узла;

    • Docker, Systemd, Podman — выберите Systemd;

    • Команда — выберите Start;

    • Идентификатор/Наименование — выберите kolla-consul-container.

  4. Нажмите кнопку Выполнить.

  5. Повторите действия для всех Control-узлов.