[ 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
    

    In this example, galera_container has a container value of one. In practice, any containers that do not need adjustment can remain at the default value of one, and should not be adjusted above or below the value of one.

    The affinity value for each container is set at one by default. Adjust the affinity value to zero for situations where the OpenStack services housed within a specific container will not be needed when scaling out other required services.

  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`` на целевой контейнер.