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

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

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

Перед тем как приступать к обновлению, необходимо проверить состояние облачной инфраструктуры. Эта проверка необходима для минимизации рисков и поддержания стабильности системы. Проверка работоспособности региона позволяет убедиться, что виртуальные машины создаются и доступны по сети, что подтверждает работоспособность цепочки сервисов (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
    

Настройка GitLab

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

  1. Зайдите в веб-интерфейс GitLab по адресу https://ks-lcm.cloud.itkey.com.

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

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

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

    KEYSTACK_RELEASE:
      value: &KEYSTACK_RELEASE ks2025.2.5
    

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

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

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

Включение hostmgmt-агента

При обновлении с версии 2025.1.1 на версию 2025.2.5 необходимо вручную включить компонент hostmgmt-агента. Этот компонент обеспечивает работу страницы Сервисы на Портале администратора. Пайплайн обновления региона обновляет только уже установленные компоненты и не выполняет установку новых, поэтому hostmgmt-агент требует отдельного предварительного развёртывания. Если пропустить описанные ниже шаги, hostmgmt-агент не будет установлен, а страница Сервисы на Портале администратора останется недоступной.

Выполните следующие действия после обновления LCM и перед запуском пайплайна обновления региона.

Настройка region.yaml

Откройте файл region.yaml целевого региона и в группу параметров # Keystack options добавьте следующую строку:

enable_hostmgmt: "yes"

Обновление файла inventory

В файл inventory целевого региона добавьте новые группы узлов:

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

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

  3. Откройте на редактирование файл inventory и добавьте новые группы:

    [hostmgmt:children]
    control
    compute
    [firewall:children]
    baremetal
    

Развёртывание hostmgmt-агента

Для развёртывания hostmgmt-агента выполните следующие действия:

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

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

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

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

-t hostmgmt,rabbitmq,common,adminui
  1. Запустите пайплайн, нажав кнопку New pipeline.

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

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

Предупреждение

Не используйте аргумент -t hostmgmt отдельно. При развёртывании только с этим тегом hostmgmt-агент не запустится на узлах, так как виртуальный хост RabbitMQ для hostmgmt не будет создан. В логах это проявляется ошибкой:

amqp.exceptions.NotAllowed: Connection.open: (530) NOT_ALLOWED - vhost hostmgmt not found

Для корректной установки укажите полный набор тегов: hostmgmt,rabbitmq,common,adminui.

Устранение ошибки inventory на Портале администратора

Если после развёртывания на странице Сервисы или Обновление региона на Портале администратора отображается ошибка с кодом 400 и текстом «File was not found at the address inventory inventory-ci», закомментируйте в файле region.yaml параметр adminui_inventory_path:

# adminui_inventory_path: "inventory/inventory-ci"

После этого выполните повторное развёртывание с аргументом -t adminui.

Предупреждение

При применении настроек host-config, затрагивающих параметры GRUB, операционная система узла будет перезагружена.

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

Запущенный сервис Prometheus Alertmanager заранее создаёт каталог данных Prometheus, что может приводить к ошибке переноса данных при выполнении пайплайна обновления региона на Control-узлах. Поэтому перед обновлением необходимо остановить сервис Prometheus Alertmanager, а также удалить автоматически созданную директорию /var/lib/docker/volumes/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
    

Для обновления 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 на 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-узлов по одному или порциями до полного обновления региона.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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