Обновление региона KeyStack до версии 2025.1.1 вместе с ОС узлов
Обновление региона KeyStack до версии 2025.1.1 вместе с ОС узлов¶
В этом разделе описаны шаги по обновлению операционных систем узлов с последующим развёртыванием на них целевой версии KeyStack. Обновление операционных систем происходит путём полного удаления старой версии ОС и установки новой версии ОС.
Перед тем как приступать к обновлению, необходимо проверить состояние облачной инфраструктуры. Эта проверка необходима для минимизации рисков и поддержания стабильности системы. Проверка работоспособности региона позволяет убедиться, что виртуальные машины создаются и доступны по сети, что подтверждает работоспособность цепочки сервисов (MariaDB, HAProxy, Cinder, Nova, Neutron, Glance).
Подключитесь к интерфейсу OpenStack CLI.
Проверьте сетевую доступность всех узлов облака с помощью команды ping.
Выполните команду openstackcomputeservicelist для проверки состояния вычислительных сервисов. Убедитесь, что все сервисы находятся в состоянии up.
Выполните команду openstackvolumeservicelist для проверки состояния службы томов. Убедитесь, что все сервисы находятся в состоянии up.
Выполните команду openstackserverlist для проверки состояния виртуальных машин.
Используя OpenStack CLI, портал самообслуживания Horizon или Портал администратора, создайте несколько ВМ с различными флейворами и выполните их live-миграцию.
Примечание
Убедитесь в наличии настройки LACP Fallback на загрузочном порте каждого обновляемого сервера перед запуском пайплайна развёртывания ОС.
Перейдите в веб-интерфейс GitLab по адресу https://ks-lcm.cloud.itkey.com.
Перейдите в репозиторий project_k / services / baremetal.
Перейдите в раздел Settings > CI/CD > Variables.
Проверьте наличие переменных NEXUS_FQDN и NEXUS_USER в списке.
При отсутствии, добавьте их:
Нажмите Add variable.
Снимите флаг Protect variable. Переменные не должны быть protected.
Укажите Key и Value:
NEXUS_FQDN со значением полного доменного имени сервиса Nexus;
NEXUS_USER со значением admin.
Установка Bifrost выполняется через запуск пайплайна GitLab:
Перейдите в веб-интерфейс GitLab.
Перейдите в репозиторий project_k / deployments / bifrost.
Откройте файл inventory и замените в нем значение LCM_IP на IP-адрес LCM-узла.
Откройте файл globals.d/REGION.yml и замените значение параметра network_interface на имя интерфейса LCM-узла, на котором будет работать PXE, например, bond0. Убедитесь, что выбран именно тот интерфейс, который соответствует PXE-сети.
Откройте файл config/bifrost/bifrost.yml и внесите в него изменения:
Измените следующие строки, заменив LCM_IP на IP-адрес LCM-узла:
При провиженинге узлам будут назначены адреса и прочие параметры IP, указанные на этом шаге. Для этого используется сервис dnsmasq. Настройте эти параметры:
Обновление узлов Control выполняется поочерёдно. Рекомендуется делать обновление серверов по порядку по одному, начиная с первого Control-узла. Для каждого узла вначале выполняется переустановка операционной системы, а затем обновление версии KeyStack.
Выполните шаги двух следующих разделов последовательно для каждого Control-узла.
Запустите пайплайн для развёртывания системы на Control-узлах.
Откройте веб-интерфейс GitLab.
Перейдите в репозиторий project_k / services / baremetal.
Создайте новый пайплайн: Build > Pipelines > Run Pipeline.
В открывшемся окне укажите значения переменных:
TARGET_ROLE — controller;
TARGET_CLOUD — имя тега региона в NetBox;
TARGET_NODE — имя конкретного узла для развёртывания, если необходимо ограничить развёртывание одним узлом;
IRONIC_IMAGE_URL — путь до образа системы, который будет установлен на узел, в формате http://<IP-адресLCM>:8080/sberlinux-9.4.3-x86_64.qcow2. Требования к образу:
только поддерживаемый тип операционной системы,
формат QCOW2,
hash-файл образа в формате <имяобраза>.md5 располагается в одной папке с самим образом.
IRONIC_IMAGE_ROOTFS_UUID — UUID корневого раздела в образе, если используется программный RAID;
IPA_KERNEL_NAME — путь до образа агента Ironic Python Agent (IPA) kernel image;
IPA_RAMDISK_NAME — путь до образа агента Ironic Python Agent (IPA) initramfs image;
KOLLA_ANSIBLE_IMG_TAG — тег контейнера с kolla-ansible, используемый для пайплайна;
EXPERIMENTAL_NETBOX_INTROSPECTION: true — использовать автозаполнение интерфейсов устройств в NetBox.
KEYSTACK_RELEASE — тег релиза Keystack;
CI_DEBUG_TRACE:
true — выводить отладочную информацию в пайплайне,
false — не выводить отладочную информацию.
Запустите пайплайн, нажав кнопку Run pipeline.
Дождитесь завершения выполнения операции. По результату выполнения пайплайна на сервере будет установлена операционная система.
Далее выполните инструкции из следующего раздела для обновления версии KeyStack на этом узле.
Перейдите в репозиторий вашего региона project_k / deployments / <имя региона>.
Откройте файл globals.d/REGION.yml.
Проверьте, что в файле отсутствуют или закомментированы следующие параметры:
docker_yum_gpgkey
docker_yum_url
docker_yum_baseurl
Создайте новый пайплайн: Build > Pipelines > Run Pipeline.
Сначала необходимо выполнить пайплайн без развёртывания компонента Keystone. Установите значение переменной KOLLA_ARGS равное --skip-tagskeystone--limitcontrol[<номерControl-узла>] для обновления одного узла. Нумерация узлов начинается с нуля. Для первого Control-узла укажите 0, для второго 1 и так далее.
Запустите пайплайн, нажав кнопку Run pipeline.
Дождитесь завершения задач на этапе setup.
Запустите задачу deploy на этапе deploy и дождитесь её завершения.
Последовательно запустите задачи bootstrap-servers и deploy, дождавшись выполнения каждой.
Повторно создайте новый пайплайн: Build > Pipelines > Run Pipeline.
Установите значение переменной KOLLA_ARGS равное -tkeystone для выполнения пайплайна только для компонента KeyStone.
Запустите пайплайн, нажав кнопку Run pipeline.
Дождитесь завершения задач на этапе setup.
После обновления Control-узла на нём запускается сервис Consul, обеспечивающий функцию HA. Наличие этого сервиса во включённом состоянии нежелательно, если в дальнейшем планируется обновление Compute-узлов. Выключите сервис Consul:
Зайдите на Control-узел по SSH.
Выполните команду:
# systemctlstopkolla-consul-container.service
Повторите шаги по переустановке ОС и установке KeyStack для всех остальных Control-узлов региона поочерёдно, указав значения --limitcontrol[1] для второго Control-узла, --limitcontrol[2] для третьего Control-узла соответственно.
Перейдите в репозиторий вашего региона project_k / deployments / <имя региона>.
Откройте файл inventory и закомментируйте в нём все недоступные узлы.
Совет
После возврата недоступных узлов в регион необходимо их раскомментировать и запустить шаг пайплайна deploy без тегов, но с указанием переменной KOLLA_ARGS равной --limithostname1.
Перед выполнением обновления Compute-узла, его необходимо освободить от виртуальных машин. Освободите один или несколько гипервизоров от виртуальных машин одним из перечисленных способов:
Запустите пайплайн для развёртывания системы на Compute-узлах:
Откройте веб-интерфейс GitLab.
Перейдите в репозиторий project_k / services / baremetal.
Создайте новый пайплайн: Build > Pipelines > Run Pipeline.
В открывшемся окне укажите значения переменных:
TARGET_ROLE — compute;
TARGET_CLOUD — имя тега региона в NetBox;
TARGET_NODE — имя конкретного узла для развёртывания, если необходимо ограничить развёртывание одним узлом;
IRONIC_IMAGE_URL — путь до образа системы, который будет установлен на узел, в формате http://<IP-адресLCM>:8080/sberlinux-9.4.3-x86_64.qcow2. Требования к образу:
только поддерживаемый тип операционной системы,
формат QCOW2,
hash-файл образа в формате <имяобраза>.md5 располагается в одной папке с самим образом.
IRONIC_IMAGE_ROOTFS_UUID — UUID корневого раздела в образе, если используется программный RAID;
IPA_KERNEL_NAME — путь до образа агента Ironic Python Agent (IPA) kernel image;
IPA_RAMDISK_NAME — путь до образа агента Ironic Python Agent (IPA) initramfs image;
KOLLA_ANSIBLE_IMG_TAG — тег контейнера с kolla-ansible, используемый для пайплайна;
EXPERIMENTAL_NETBOX_INTROSPECTION: true — использовать автозаполнение интерфейсов устройств в NetBox.
KEYSTACK_RELEASE — тег релиза Keystack;
CI_DEBUG_TRACE:
true — выводить отладочную информацию в пайплайне,
false — не выводить отладочную информацию.
Запустите пайплайн, нажав кнопку Run pipeline.
Дождитесь завершения выполнения операции. По результату выполнения пайплайна на сервере будет установлена операционная система.
Выведите гипервизор из работы в облаке:
Зайдите на узел LCM по SSH.
Выполните команды для установки пакета OpenStack Placement osc-placement:
$ pip3installosc-placement
Выполните команды, указав имя гипервизора в переменной HOST_FOR_REMOVAL: