[ English | русский | Deutsch | Indonesia | English (United Kingdom) ]
Управление контейнерами¶
С Ansible процесс установки OpenStack полностью автоматизирован с использованием плейбуков, написанных на YAML. После установки настройки, настроенные плейбуками, можно изменять и модифицировать. Службы и контейнеры могут изменяться для соответствия определенным требованиям среды. Масштабирование сервисов достигается путем настройки сервисов в контейнерах или добавления новых групп развертывания. Также можно уничтожать контейнеры, если это необходимо, после завершения изменений и модификаций.
Масштабирование отдельных служб¶
Отдельные службы OpenStack и другие службы проектов с открытым исходным кодом работают в контейнерах. Масштабировать эти службы можно, изменив файл /etc/openstack_deploy/openstack_user_config.yml
.
Перейдите в файл
/etc/openstack_deploy/openstack_user_config.yml
.Откройте раздел групп развертывания в файле конфигурации. Под именем группы развертывания добавьте строку значения affinity для масштабирования контейнера службы OpenStack:
infra_hosts: infra1: ip: 10.10.236.100 # Rabbitmq affinity: galera_container: 1 rabbit_mq_container: 2
В этом примере
galera_container
имеет значение контейнера, равное единице. На практике любые контейнеры, которые не требуют корректировки, могут оставаться со значением по умолчанию, равным единице, и не должны корректироваться выше или ниже значения единицы.Значение affinity для каждого контейнера по умолчанию установлено на единицу. Установите значение affinity на ноль для ситуаций, когда службы OpenStack, размещенные в определенном контейнере, не понадобятся при масштабировании других требуемых служб.
Обновите номер контейнера, указанный в конфигурации
affinity
, до желаемого числа. В приведенном выше примереgalera_container
установлен на один, аrabbit_mq_container
на два, что масштабирует службы RabbitMQ, но оставляет службы Galera в текущем состоянии.После изменения конфигурации выполните соответствующие команды playbook, чтобы создать новые контейнеры и установить соответствующие службы.
Например, запустите команды openstack-ansible lxc-containers-create.yml rabbitmq-install.yml из репозитория
openstack-ansible/playbooks
, чтобы завершить процесс масштабирования, описанный в примере выше:$ cd openstack-ansible/playbooks $ openstack-ansible lxc-containers-create.yml rabbitmq-install.yml
Удаляйте и пересоздавайте контейнеры¶
Для решения некоторых проблем может потребоваться удаление контейнера и его пересоздание с самого начала. Удалить и заново создать контейнер можно с помощью команд lxc-containers-destroy.yml
и lxc-containers-create.yml
. Эти скрипты Ansible находятся в репозитории openstack-ansible/playbooks
.
Перейдите в каталог
openstack-ansible
.Запустите команды openstack-ansible lxc-containers-destroy.yml, указав целевые контейнеры и контейнер, который необходимо удалить.
$ openstack-ansible lxc-containers-destroy.yml --limit "CONTAINER_NAME" $ openstack-ansible lxc-containers-create.yml --limit "CONTAINER_NAME"
Замените ``CONTAINER_NAME`` на целевой контейнер.