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

Архитектура службы

Введение

OpenStack-Ansible (OSA) имеет гибкую модель конфигурации развертывания, которая позволяет развертывать все службы в отдельных контейнерах машин или на назначенных хостах без использования контейнеров, а весь сетевой трафик — либо на одном сетевом интерфейсе, либо на нескольких сетевых интерфейсах.

OpenStack-Ansible имеет гибкую модель конфигурации развертывания, которая позволяет развертывать все службы в отдельных контейнерах машин или на назначенных хостах без использования контейнеров, а весь сетевой трафик — либо на одном сетевом интерфейсе, либо на нескольких сетевых интерфейсах.

В следующих разделах описываются службы, которые развертывает OpenStack-Ansible.

Инфраструктурные услуги

OpenStack-Ansible развертывает следующие компоненты инфраструктуры:

  • MariaDB с Galera

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

  • RabbitMQ

    Службы OpenStack используют RabbitMQ для Advanced Message Queuing Protocol (AMQP). OpenStack-Ansible развертывает RabbitMQ в кластерной конфигурации со всеми очередями, зеркально отраженными между узлами кластера. Поскольку трафик очереди сообщений Telemetry (ceilometer) довольно большой, для больших сред мы рекомендуем разделить уведомления Telemetry в отдельный кластер RabbitMQ.

  • Memcached

    Службы OpenStack используют Memcached для кэширования в памяти, что ускоряет транзакции. Например, служба идентификации OpenStack (Keystone) использует Memcached для кэширования токенов аутентификации, что гарантирует, что проверка токена не должна завершать транзакцию на диске или в базе данных каждый раз, когда служба запрашивает проверку токена.

  • Репозиторий

    Репозиторий содержит стандартный набор артефактов, которые используются для установки среды. Артефакты включают:

    • Репозиторий Git, содержащий копию исходного кода, который используется для подготовки пакетов для всех служб OpenStack

    • Python wheels для всех служб, развернутых в среде

    • Кэш-прокси apt/yum, который используется для кэширования пакетов дистрибутивов, установленных в среде

  • Балансировщик нагрузки

    Для развертывания требуется по крайней мере один балансировщик нагрузки. OpenStack-Ansible предоставляет развертывание HAProxy, но мы рекомендуем использовать физическое устройство балансировки нагрузки для рабочих окружений.

  • Контейнер утилит

    Если инструмент или объект не требует выделенного контейнера или если нецелесообразно создавать новый контейнер для одного инструмента или объекта, он устанавливается в контейнер утилит. Контейнер утилит также используется, когда инструменты не могут быть установлены непосредственно на хосте. Контейнер утилит подготовлен с соответствующими учетными данными и клиентами для администрирования среды OpenStack. Он настроен на автоматическое использование внутренних точек доступа сервиса.

  • Контейнер Unbound DNS

    Контейнеры, с кэширующей службой Unbound DNS , могут быть дополнительно развернуты для кэширования DNS-поиска и обработки внутреннего разрешения имен DNS. Мы рекомендуем использовать эту службу для крупномасштабных рабочих окружений, поскольку развертывание будет значительно быстрее. Если эта служба не используется, OpenStack-Ansible изменяет записи /etc/hosts для всех хостов в среде.

Службы OpenStack

OpenStack-Ansible может развертывать множество сервисов. Посмотрите на матрицу зрелости ролей, чтобы узнать статус сервиса, который вы хотите развернуть.