Сопровождение развёртывания

Действия администратора системы после установки

После установки системы можно выполнить несколько действий через dctui. Для этого зайдите во вкладку Cloud Admin Actions в меню развёртывания.

┌───────────────────────────────────────── Cloud Admin Actions ──────────────────────────────────────────┐
│Restart    ⏷ Collapse                                                                                   │
│Configure  ⏷ Collapse                    [service]                                Running processes     █
│           galera                                     [restart button]                                  ░
│           neutron                       -----------------------------------------                      ░
│           neutron_ml2                   all                                                            ░
│           nova_libvirt                               Compute                                           ░
│           nova                                       Controller                                        ░
│           barbican                      -----------------------------------------                      ░
│                                         cinder                                                         ░
│Extra      ⏷ Collapse                                 Controller                                        ░
│           haproxy                                    Pacemaker                                         ░
│           galera-local-connection       -----------------------------------------                      ░
│                                         glance                                                         ░
│                                                      Controller                                        ░
│                                         -----------------------------------------                      ░
│                                         horizon                                                        ░
│                                                      Controller                                        ░
│                                         -----------------------------------------                      ░
│                                         ironic                                                         ░
│                                                      Controller                                        ░
│                                         -----------------------------------------                      ░
│                                         keystone                                                       ░
│                                                      Controller                                        ░
│                                         -----------------------------------------                      ░
│                                         memcached                                                      ░
│                                                      Controller                                        ░
│                                         -----------------------------------------                      ░
│                                         michman                                                        ░
│                                                      Controller                                        ░
│                                         -----------------------------------------                      ░
│                                         neutron                                                        ░
│                                                      Compute                                           ░
│                                                      Controller                                        ░
│                                         -----------------------------------------                      ░
│                                         nova                                                           ░
│                                                      Compute                                           ░
│                                                      Controller                                        ░
│                                         -----------------------------------------                      ░
│                                         galera                                                         ░
│                                                      Pacemaker                                         ░
│                                         -----------------------------------------                      ░
│                                         rabbit                                                         ░
│                                                      Pacemaker                                         ░
│                                         -----------------------------------------                      ░
│                                         redis                                                          ░
│                                                      Pacemaker                                         ░
│                                         -----------------------------------------                      ░
│                                         haproxy                                                        ░
│                                                      Pacemaker                                         ░
│                                         -----------------------------------------                      ░
│                                         ovn_dbs                                                        ░
│                                                      Pacemaker                                         ░
│                                                                                                        ░
│                                                         < Stop/Ctrl+D >          < Cancel/Ctrl+C >     │
└────────────────────────────────────────────────────────────────────────────────────────────────────────┘

Вы увидите список разделов:

  • Restart - перезапуск сервисов

  • Configure - конфигурация сервисов (без перезапуска сервисов)

  • Extra - дополнительные плейбуки:

    • haproxy - конфигурация haproxy

    • galera-local-connection - изменить подключение к galera с VIP адреса на локальный

Изменение состава физических узлов

Добавление узла

Общий порядок действий:

  1. Добавить новый физический узел. Настроить порядок интерфейсов и диск ОС далее, согласно инструкции;

  2. Добавить узел в развёртывание;

  3. Применить изменения. Выполните операции Provision Nodes, Deploy Services.

На этапе Deploy Services при масштабировании развёртывания типа OpenStack и роли:

  • Compute: выберите только нулевой контроллер и новый узел вычисления,

  • Controller/PowerOfThree: выберите все узлы в роли Controller/PowerOfThree соответственно,

  • Monitoring: выберите только новый узел.

При масштабировании развёртывания типа Ceph выберите нулевой хост и ваш новый узел типа Ceph.

Удаление узла

Общий порядок действий:

  1. Подготовить систему к удалению узла.

  2. Удалить узел из развёртывания.

  3. Удалить узел из системы.

Для подготовки системы к удалению в развёртывании типа Openstack узла:

  • вычисления: в режиме администратора облака необходимо выключить удаляемый узел.

  • управления: с удаляемого узла выполните команду:

    sudo pcs node maintenance <node-name>
    

Для удаления узла из развёртывания используйте DeckCrew TUI, зайдите во вкладку Deployment из меню развёртывания, в состав которого входит узел для удаления и нажмите на галку Activate Danger Zone

┌────────────────────────────────────────── Deployment process ──────────────────────────────────────────┐
│  < Refresh/Ctrl+R >                                                                                    │
│                                                                                                        █
│Stack status                                                                                            ░
│  last_action: Validate Templates                                                                       ░
│  status: DEPLOY_SUCCESS                                                                                ░
│                                                                                                        ░
│Debug mode                                                                                              ░
│  [ ] No launch. Generate deployment script only                                                        ░
│                                                                                                        ░
│Pick deployment action                                                                                  ░
│  (•) Prepare Networks                                                                                  ░
│  ( ) Prepare Virtual IPs                                                                               ░
│  ( ) Provision Nodes                                                                                   ░
│  ( ) Update Known Hosts                                                                                ░
│  ( ) Validate Templates                                                                                ░
│  ( ) Deploy Services                                                                                   ░
│                                                                                                        ░
│  [✓] Activate danger section                                                                           ░
│  ( ) Update Partition                                                                                  ░
│  (•) Delete Nodes                                                                                      ░
│  ( ) Delete Deployment                                                                                 ░
│                                                                                                        ░
│Set extra settings for deployment action                                                                ░
│[ ] test-compute-0                                                                                      ░
│[ ] test-compute-1                                                                                      ░
│[ ] test-controller-0                                                                                   ░
│[ ] test-controller-1                                                                                   ░
│[ ] test-controller-2                                                                                   ░
│                                                                                                        ░
│--------------------------------------------------------------------------------------------------------░
│Logs                                                                                                    ░
│                                                                                                        ░
│                               < Start/Ctrl+A >          < Stop/Ctrl+D >          < Cancel/Ctrl+C >     │
└────────────────────────────────────────────────────────────────────────────────────────────────────────┘

Выберите узлы для удаления и нажмите кнопку Start.

Затем перейдите в меню Roles/Nodes and Networks и удалите ваш узел из списка узлов используя кнопку Delete.

Для удаления узла из системы перейдите в меню управления физическими узлами и удалите узел выбрав его в списке узлов и нажав на кнопку Delete.

Замена узла в облаке

Для замены узла необходимо сначала добавить новый физический узел и настроить его согласно инструкции из Добавления узлов в облако.

Затем перейдите в раздел Roles/Nodes and Networks, удалите узел, который хотите заменить, и добавьте новый узел.

Затем в разделе Deployment выполните Provision Nodes, Update Known Hosts и Deploy Services.

Ручное обновление

Обновление пакетов

Для обновления пакетов системы необходимо использовать менеджер пакетов dnf.

Настройте репозитории для обновления в /etc/yum.repos.d/ на тех узлах, что планируется обновить. Убедитесь, что devel репозитории отключены, и включены репозитории acloud_staging и acloud_staging_imagedata.

Предварительно убедитесь, что версия python3 и glibc не меняются при обновлении пакетов, так как это может привести к поломке системы. Для этого выполните команду:

dnf info python3 glibc

Сравните вывод версии в разделе Available Packages и Installed Packages. Версия должна совпадать по первым двум числам.

Если версии отличаются, обратитесь к разработчикам Moncloud. Например, python3.11.5 можно обновлять до python3.11.6, но до python3.12.0 уже не рекомендуется обновлять.

Обновление контейнеров

Реестр образов контейнеров находится на узле развёртывания на порту 13787. Для обновления всех образов в реестре необходимо обновить (или установить) пакет acloud-registry на узле развёртывания:

sudo dnf update acloud-registry --enablerepo=acloud_staging_imagedata

Для обновления всех контейнеров в системе перейдите к соответствующему разделу документации Обновление Openstack или Обновление узла развёртывания.

Частичное обновление контейнеров

Чтобы обновить один или несколько образов в реестре, используйте команду skopeo, установленную на узле развёртывания. Например, для обновления образа openstack-nova-api выполните команду:

skopeo copy --src-tls-verify=false \
docker://acloud-obs.intra.acloud.ru/acloud/staging/containers/containers/acloud/openstack-nova-api:latest \
docker://<undercloud_ip>:13787/acloud/openstack-nova-api:latest

В зависимости от того, как контейнер управляется, способ его обновления может отличаться:

  • простые контейнеры, не управляемые сервисом Pacemaker,

  • сложные контейнеры, управляемые сервисом Pacemaker, а именно:

    • cinder-volume

    • rabbitmq

    • redis

    • haproxy

    • mariadb

Для простых контейнеров используйте команду dctl для пересоздания контейнера на всех узлах управления:

dctl instance update demo --container nova_api --role Controller

или на одном узле, например:

dctl instance update demo --container nova_api --host demo-controller-0

Для сложных контейнеров необходимо вручную скачать образ контейнера на каждый узел управления и переименовать в cluster.common.tag/<service>:pcmklatest, например:

ssh tripleo-admin@demo-controller-0.ctlplane
sudo podman pull undercloud.ctlplane:13787/acloud/openstack-cinder-volume:latest
sudo podman tag undercloud.ctlplane:13787/acloud/openstack-cinder-volume:latest \
cluster.common.tag/cinder-volume:pcmklatest

Затем перезапустите бандл соответствующий обновлённому образу, например:

sudo pcs resource restart openstack-cinder-volume-podman-0

Убедитесь, что контейнер был успешно обновлён, проверив дату создания контейнера через команду podman ps -a, например:

``podman ps -a | grep cinder-volume``.

  **Примечание:** Частичное обновление контейнеров не применимо в тех случаях, когда меняется конфигурация для сервиса.

При обновлении контейнеров nova_virt* необходимо предварительно остановить виртуальные машины на узле с обновляемым контейнером.

Обновление OpenStack

Примечание

Предварительно необходимо остановить виртуальные машины на обновляемом узле, так как при обновлении все контейнеры пересоздаются, то есть будут пересозданы и контейнеры nova_virt*, остановка которых приводит к завершению работы всех запущенных ВМ.

Для начала необходимо сбекапить данные. Не все папки есть на всех узлах облака:

mkdir backups-$(date "+%Y-%m-%d")
cd backups-$(date "+%Y-%m-%d")
sudo rsync -a /var/lib/mysql ./
sudo rsync -a /var/lib/rabbitmq ./
sudo rsync -a /var/lib/openvswitch ./
sudo rsync -a /var/lib/config-data ./
sudo rsync -a /var/lib/kolla ./
sudo rsync -a /var/lib/tripleo-config ./

Последовательность действий:

  1. Обновить пакеты acloud-registry и acloud-images на узле развёртывания:

    sudo dnf update acloud-registry acloud-images --enablerepo acloud_staging_imagedata
    
  2. Обновить пакеты на узлах OpenStack.

  3. Обновить скрипты развёртывания

  4. Запустить Deploy Services из инсталлятора DeckCrewTUI.

Обновление скриптов развёртывания

На процесс развёртывания влияют пакеты openstack-tripleo-heat-templates, tripleo-ansible и в редких случаях deckcrew и tripleo-common.

Поэтому предварительно обновите необходимые пакеты на узле развёртывания:

sudo dnf update openstack-tripleo-heat-templates \
tripleo-ansible --enablerepo=acloud_staging

При создании развёртывания через инсталлятор dctui или dctl шаблоны копируются из пакета openstack-tripleo-heat-templates в директорию /etc/deckcrew/templates/. Для обновления шаблонов в этой директории выполните следующую команду:

dctl instance update --templates <deploy_name>

В случае возникновения ошибок ребейза зайдите в указанную в ошибке директорию:

cd /etc/deckcrew/templates/<deploy_name>-<deploy_type>-update

и выполните успешный ребейз, после чего запустите команду обновления шаблонов с флагом --finish:

dctl instance update --templates <deploy_name> --finish

Примечание

При обновлении шаблонов могут происходить конфликты обновления. Если вы не уверены, что делаете, то лучше обратитесь к разработчикам moncloud.

Обновление с добавлением SSL/TLS

Проведите настройку SSL/TLS согласно инструкции

Если первоначально развёртывание было создано без SSL/TLS, то для добавления SSL/TLS необходимо зайти на один из узлов управления и выполнить:

sudo pcs resource bundle update haproxy-bundle storage-map add \
source-dir=/etc/pki/tls/private/overcloud_endpoint.pem \
target-dir=/etc/pki/tls/private/overcloud_endpoint.pem \
options=ro

Обновление узла развёртывания

Примечание

Не требуется при обновлении OpenStack или Ceph.

Обновление зависит от версий deckcrew и openstack-tripleo-heat-templates.

Обновление системы хранения

(В разработке)