[ English | русский | Indonesia ]

Управление контейнерами

С Ansible процесс установки OpenStack полностью автоматизирован с использованием плейбуков, написанных на YAML. После завершения установки, настройки, сделанные плейбуками, можно изменять и модифицировать. Службы и контейнеры могут изменяться для соответствия определенным требованиям среды. Масштабирование сервисов достигается путем настройки сервисов в контейнерах или добавления новых групп развертывания. Также можно удалять контейнеры, если это необходимо, после завершения изменений и модификаций.

Масштабирование отдельных служб

Отдельные службы OpenStack и другие службы проектов с открытым исходным кодом работают в контейнерах. Масштабировать эти службы можно, изменив файл /etc/openstack_deploy/openstack_user_config.yml.

  1. Перейдите в файл /etc/openstack_deploy/openstack_user_config.yml.

  2. Откройте раздел групп развертывания в файле конфигурации. Под именем группы развертывания добавьте строку значения affinity для масштабирования контейнера службы OpenStack:

    infra_hosts:
      infra1:
        ip: 10.10.236.100
        # Rabbitmq
        affinity:
          galera_container: 1
          rabbit_mq_container: 2
    

    В этом примере galera_container имеет значение контейнера, равное единице. На практике любые контейнеры, которые не требуют корректировки, могут оставаться со значением по умолчанию, равным единице, и не должны корректироваться выше или ниже значения единицы.

    Значение affinity для каждого контейнера по умолчанию установлено на единицу. Установите значение affinity на ноль для ситуаций, когда службы OpenStack, размещенные в определенном контейнере, не понадобятся при масштабировании других требуемых служб.

  3. Обновите номер контейнера, указанный в конфигурации affinity, до желаемого числа. В приведенном выше примере galera_container установлен на один, а rabbit_mq_container на два, что масштабирует службы RabbitMQ, но оставляет службы Galera в текущем состоянии.

  4. После изменения конфигурации выполните соответствующие команды плейбука, чтобы создать новые контейнеры и установить соответствующие службы.

    Например, запустите 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.

  1. Выполните команды 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"
    
  2. Замените CONTAINER_NAME на целевой контейнер.