Обновление региона 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.

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

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

    # systemctl stop kolla-consul-container.service
    

Обновление RabbitMQ

Перед обновлением региона необходимо выполнить обновление RabbitMQ. Для обновления RabbitMQ до версии 3.12 выполните следующие действия:

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

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

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

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

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

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

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

Настройка 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-узлах

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

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

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

  3. Откройте на редактирование файл inventory и внесите в него изменения:

    1. Добавьте новые группы:

      [prometheus-hypervisor-exporter:children]
      compute
      [victoriametrics:children]
      monitoring
      [systemd-dependencies:children]
      control
      compute
      network
      
    2. В группу [prometheus-blackbox-exporter:children] добавьте значение compute.

    3. Удалите следующие группы:

      [chrony*]
      [rally*]
      [prometheus-rally-exporter]
      [sahara*]
      [vitrage*]
      [solum*]
      [murano*]
      [freezer*]
      [senlin*]
      [monasca*]
      [prometheus-haproxy-exporter]
      [informer*]
      [limiter*]
      

Если в вашем регионе используется интеграция с каталогами пользователей LDAP, выполните следующие шаги:

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

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

  3. Откройте файл config/keystone/domains/keystone.itkey.conf и добавьте в раздел [ldap] следующую строку:

    [ldap]
    tls_cacertfile = "{{ openstack_cacert }}"
    

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

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

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

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

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

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

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

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

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

Note

Если при первом запуске пайплайн завершается ошибкой на шаге TASK [drs: Creating drs databases], запустите пайплайн повторно.

Остановите и удалите контейнеры 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 на Compute-узлах

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

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

  2. Перейдите в раздел Гипервизоры > Гипервизоры.

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

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

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

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

  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. В переменной KOLLA_ANSIBLE_DEPLOY_ACTION укажите значение upgrade.

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

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

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

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

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

  2. Перейдите в раздел Гипервизоры > Гипервизоры.

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

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

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

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

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

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

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

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

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

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

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

    # systemctl start kolla-consul-container.service