[ English | русский | Deutsch | Indonesia | English (United Kingdom) ]

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

С 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. После изменения конфигурации выполните соответствующие команды 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.

  1. Перейдите в каталог openstack-ansible.

  2. Запустите команды openstack-ansible lxc-containers-destroy.yml, указав целевые контейнеры и контейнер, который необходимо удалить.

    $ openstack-ansible lxc-containers-destroy.yml --limit "CONTAINER_NAME"
    $ openstack-ansible lxc-containers-create.yml --limit "CONTAINER_NAME"
    
  3. Замените ``CONTAINER_NAME`` на целевой контейнер.