.. _upgrade-region-2025.1.1: ============================================== Обновление региона KeyStack до версии 2025.1.1 ============================================== В этом разделе описаны шаги по обновлению версии KeyStack при сохранении текущих версий ОС на узлах. .. _region-verification: Проверка работоспособности региона ================================== Перед тем как приступать к обновлению, необходимо проверить состояние облачной инфраструктуры. Эта проверка необходима для минимизации рисков и поддержания стабильности системы. Проверка работоспособности региона позволяет убедиться, что виртуальные машины создаются и доступны по сети, что подтверждает работоспособность цепочки сервисов (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: #. Войдите в Портал администратора. #. Перейдите в раздел :menuselection:`DRS > Jobs`. #. Деактивируйте все задания сервиса DRS. #. Зайдите на каждый Control-узел по SSH и выполните команду: :: # systemctl stop kolla-drs-container.service Для деактивации HA: #. Зайдите на каждый Control-узел по SSH и выполните команду: :: # systemctl stop kolla-consul-container.service Настройка GitLab ================ Проверьте значения переменных CI/CD: .. tabs:: .. tab:: SberLinux #. Зайдите в веб-интерфейс GitLab. #. Перейдите в репозиторий вашего региона **project_k / deployments / <ваш регион>**. #. Перейдите в раздел :menuselection:`Settings > CI/CD > Variables`. #. Убедитесь в наличии переменной ``BASE`` со значением ``sberlinux``. #. Если переменная отсутствует: #. Нажмите :guilabel:`Add variable`. #. Введите в поле **Key** значение ``BASE``. #. Введите в поле **Value** значение ``sberlinux``. #. Уберите флаг **Protect variable** и сохраните изменения. .. tab:: Ubuntu #. Зайдите в веб-интерфейс GitLab. #. Перейдите в репозиторий вашего региона **project_k / deployments / <ваш регион>**. #. Перейдите в раздел :menuselection:`Settings > CI/CD > Variables`. #. Убедитесь в наличии переменной ``BASE`` со значением ``ubuntu``. #. Если переменная отсутствует: #. Нажмите :guilabel:`Add variable`. #. Введите в поле **Key** значение ``BASE``. #. Введите в поле **Value** значение ``ubuntu``. #. Уберите флаг **Protect variable** и сохраните изменения. Измените конфигурацию пайплайна: #. Зайдите в веб-интерфейс GitLab по адресу ``https://ks-lcm.cloud.itkey.com``. #. Перейдите в репозиторий вашего региона **project_k / deployments / <ваш регион>**. #. Откройте файл ``.gitlab-ci.yml`` в репозитории региона. #. В переменной ``KEYSTACK_RELEASE`` укажите версию релиза, на которую производится обновление — ``ks2025.1.1``: .. code-block:: yaml KEYSTACK_RELEASE: value: &KEYSTACK_RELEASE ks2025.1.1 Настройте таймаут для пайплайнов: #. Перейдите в раздел :menuselection:`Settings > CI/CD > General pipelines`. #. Установите значение **Timeout** — ``5h``. Обновление KeyStack на Control-узлах ==================================== Перед выполнением обновления Control-узлов проверьте текущую версию RabbitMQ: #. Зайдите на каждый Control-узел по SSH. #. Выполните команду: :: # docker exec rabbitmq rabbitmqctl --version #. Если версия RabbitMQ старше 3.13, выполните :ref:`update-rabbitmq-2025.1.1` Остановите и удалите контейнеры ``prometheus-haproxy-exporter`` и ``mariadb-cluster-check``: #. Зайдите на каждый Control-узел по SSH. #. Выполните команды: :: # docker stop prometheus-haproxy-exporter mariadb-cluster-check # docker rm prometheus-haproxy-exporter mariadb-cluster-check Для обновления KeyStack на Control-узлах выполните следующие действия: #. Зайдите в веб-интерфейс GitLab. #. Перейдите в репозиторий вашего региона **project_k / deployments / <ваш регион>**. #. Создайте новый пайплайн: :menuselection:`Build > Pipelines > Run Pipeline`. #. В переменной ``KOLLA_ARGS`` укажите значение ``--limit control[0]``. Это обеспечит выполнение пайплайна только для первого Control-узла. #. Запустите пайплайн, нажав кнопку :guilabel:`Run pipeline`. #. Дождитесь завершения задач на этапе **setup**. #. Запустите задачу **deploy** на этапе **deploy** и дождитесь её завершения. #. Повторите шаги выше для остальных Control-узлов, указывая значения ``--limit control[1]``, ``--limit control[2]`` и так далее. Отдельно выполните обновление компонентов Nova, Neutron на всех Control-узлах: #. Зайдите в веб-интерфейс GitLab. #. Перейдите в репозиторий вашего региона **project_k / deployments / <ваш регион>**. #. Создайте новый пайплайн: :menuselection:`Build > Pipelines > Run Pipeline`. #. В переменной ``KOLLA_ARGS`` укажите значение ``-t nova,neutron --limit control``. Это обеспечит выполнение пайплайна только для этих компонентов. #. Запустите пайплайн, нажав кнопку :guilabel:`Run pipeline`. #. Дождитесь завершения задач на этапе **setup**. #. Запустите задачу **deploy** на этапе **deploy** и дождитесь её завершения. Обновление KeyStack на Compute-узлах ==================================== Перед выполнением обновления Compute-узла, его необходимо освободить от виртуальных машин. Освободите один или несколько гипервизоров от виртуальных машин одним из перечисленных способов: * живая миграция; * холодная миграция; * перевод в режим обслуживания maintenance mode. Например, это можно сделать следующей командой: :: # openstack compute service set --disable <имя узла> nova-compute Затем выполните обновление одного или нескольких освобожденных узлов: #. Зайдите в веб-интерфейс GitLab. #. Перейдите в репозиторий вашего региона **project_k / deployments / <ваш регион>**. #. Создайте новый пайплайн: :menuselection:`Build > Pipelines > Run Pipeline`. #. В переменной ``KOLLA_ARGS`` укажите значение ``--limit hostname1,hostname2``, перечислив имена гипервизоров, указанные в файле ``inventory`` вашего региона. .. hint:: Значение параметра ``--limit`` можно указывать различными способами. Например, если ваш файл ``inventory`` содержит такие имена узлов: .. code-block:: ini [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]*`` #. Запустите пайплайн, нажав кнопку :guilabel:`Run pipeline`. #. Дождитесь завершения задач на этапе **setup**. #. Запустите задачу **deploy** на этапе **deploy** и дождитесь её завершения. Проверьте состояние узлов после обновления и при необходимости выведите узлы из режима обслуживания (maintenance mode): #. Выполните команду: :: # openstack compute service list --long #. Если какие-то гипервизоры находятся в режиме обслуживания, выведите их из него. Например, это можно сделать следующей командой: :: # openstack compute service set --up --enable <имя узла> nova-compute #. Проведите живую миграцию виртуальных машин на обновлённый гипервизор. Повторите шаги запуска пайплайна для всех Compute-узлов по одному или порциями до полного обновления региона. Проверка работоспособности региона после обновления =================================================== Выполните все шаги проверки из раздела :ref:`region-verification`. Включение сервисов DRS и HA =========================== Для включения DRS: #. Зайдите на каждый Control-узел по SSH и выполните команду: :: # systemctl start kolla-drs-container.service #. Войдите в Портал администратора. #. Перейдите в раздел :menuselection:`DRS > Jobs`. #. Активируйте все задания сервиса DRS. Для включения HA: #. Зайдите на каждый Control-узел по SSH и выполните команду: :: # systemctl start kolla-consul-container.service