[ English | русский | Indonesia ]
Управление контейнерами¶
С 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 в текущем состоянии.После изменения конфигурации выполните соответствующие команды плейбука, чтобы создать новые контейнеры и установить соответствующие службы.
Например, запустите openstack.osa.containers_lxc_destroy с тегом
rabbimq-installиз репозиторияopenstack-ansible-plugins, чтобы завершить процесс масштабирования, описанный в приведенном выше примере:$ openstack-ansible openstack.osa.containers_lxc_destroy --tags rabbitmq-install
Удаление и пересоздание контейнеров¶
Для решения некоторых проблем может потребоваться удаление контейнера и его повторная сборка с нуля. Удалить и создать контейнер можно с помощью команд openstack.osa.containers_lxc_destroy и openstack.osa.containers_lxc_create. Эти плейбуки Ansible находятся в репозитории Openstack-Ansible plugins.
Выполните команды openstack-ansible openstack.osa.containers_lxc_destroy, указав целевые контейнеры и контейнер, который необходимо удалить.
$ openstack-ansible openstack.osa.containers_lxc_destroy --limit "CONTAINER_NAME" $ openstack-ansible openstack.osa.containers_lxc_destroy --limit "CONTAINER_NAME"
Замените
CONTAINER_NAMEна целевой контейнер.