Обновление региона KeyStack до версии 2025.1.1

В этом разделе описаны шаги по обновлению версии 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. Перейдите в раздел DRS > Jobs.

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

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

    # systemctl stop kolla-drs-container.service
    

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

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

    # systemctl stop kolla-consul-container.service
    

Настройка GitLab

Проверьте значения переменных CI/CD:

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

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

  3. Перейдите в раздел Settings > CI/CD > Variables.

  4. Убедитесь в наличии переменной BASE со значением sberlinux.

  5. Если переменная отсутствует:

    1. Нажмите Add variable.

    2. Введите в поле Key значение BASE.

    3. Введите в поле Value значение sberlinux.

    4. Уберите флаг Protect variable и сохраните изменения.

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

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

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

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

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

    KEYSTACK_RELEASE:
      value: &KEYSTACK_RELEASE ks2025.1.1
    

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

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

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

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

Перед выполнением обновления Control-узлов проверьте текущую версию RabbitMQ:

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

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

    # docker exec rabbitmq rabbitmqctl --version
    
  3. Если версия RabbitMQ старше 3.13, выполните update-rabbitmq-2025.1.1

Остановите и удалите контейнеры prometheus-haproxy-exporter и mariadb-cluster-check:

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

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

    # docker stop prometheus-haproxy-exporter mariadb-cluster-check
    # docker rm prometheus-haproxy-exporter mariadb-cluster-check
    

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

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

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

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

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

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

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

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

  8. Повторите шаги выше для остальных Control-узлов, указывая значения --limit control[1], --limit control[2] и так далее.

Отдельно выполните обновление компонентов Nova, Neutron на всех Control-узлах:

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

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

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

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

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

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

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

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

Перед выполнением обновления Compute-узла, его необходимо освободить от виртуальных машин. Освободите один или несколько гипервизоров от виртуальных машин одним из перечисленных способов:

  • живая миграция;

  • холодная миграция;

  • перевод в режим обслуживания maintenance mode. Например, это можно сделать следующей командой:

    # openstack compute service set --disable <имя узла> nova-compute
    

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

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

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

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

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

    Hint

    Значение параметра --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. Запустите пайплайн, нажав кнопку Run pipeline.

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

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

Проверьте состояние узлов после обновления и при необходимости выведите узлы из режима обслуживания (maintenance mode):

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

    # openstack compute service list --long
    
  2. Если какие-то гипервизоры находятся в режиме обслуживания, выведите их из него. Например, это можно сделать следующей командой:

    # openstack compute service set --up --enable <имя узла> nova-compute
    
  3. Проведите живую миграцию виртуальных машин на обновлённый гипервизор.

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

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

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

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

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

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

    # systemctl start kolla-drs-container.service
    
  2. Войдите в Портал администратора.

  3. Перейдите в раздел DRS > Jobs.

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

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

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

    # systemctl start kolla-consul-container.service