Запуск кластера через Docker Compose | Tdb
Руководство администратора Развертывание Запуск кластера через Docker Compose

Запуск кластера через Docker Compose

В этом руководстве показано, как развернуть кластер Tarantool DB с помощью Docker Compose.

Примечание

Данный способ является вспомогательным и используется для тестирования и демонстрации в примерах документации. Для целевого развертывания используйте инсталлятор Ansible Tarantool Enterprise.

Содержание:

Пререквизиты

Для выполнения примера требуются:

  • установленный Docker-образ Tarantool DB;

  • приложение Docker Compose;

  • исходные файлы примера up_with_docker_compose.

    Примечание

    Есть два способа получить исходные файлы примера:

    • Архив с полной документацией Tarantool DB, полученный по почте или скачанный в личном кабинете tarantool.io. Пример архива: tarantooldb-documentation-2.0.0.tar.gz. Пример up_with_docker_compose расположен в таком архиве в директории ./doc/examples/up_with_docker_compose/.

    • Отдельный архив up_with_docker_compose.tar.gz, скачанный c сайта Tarantool.

Запуск стенда

Перейдите в директорию примера up_with_docker_compose:

cd ./doc/examples/up_with_docker_compose/

Запустите кластер Tarantool DB:

make start

Команда последовательно выполняет следующие шаги:

  1. Запускает централизованное хранилище конфигурации – кластер etcd;

  2. Загружает конфигурацию кластера в централизованное хранилище;

  3. Запускает кластер Tarantool DB;

  4. Загружает миграции в кластер и выполняет их.

Запущенный стенд состоит из:

  • кластера Tarantool DB:

  • кластера etcd из 3 узлов;

  • средств мониторинга (Prometheus, Grafana).

После запуска должны работать все контейнеры, кроме init_host. Также после запуска доступны следующие пользовательские интерфейсы:

  • http://localhost:8081 – веб-интерфейс TCM;

  • http://localhost:9090 – веб-интерфейс Prometheus;

  • http://localhost:3000 – веб-интерфейс Grafana.

Для входа в веб-интерфейс TCM откройте в браузере адрес http://localhost:8081. Логин и пароль для входа:

  • Username: admin

  • Password: secret

В TCM откройте вкладку Stateboard. После применения настроек кластер будет выглядеть так:

Используемые файлы

В руководстве используются следующие файлы примера up_with_docker_compose:

  • cluster/ – директория c файлами для запуска кластера Tarantool DB:

    • config.yml – конфигурация и топология кластера;

    • docker-compose.yml – описание узлов кластера Tarantool DB;

    • migrations/scenario – директория, содержащая файлы с описанием миграций;

  • tools/ – директория с файлами для запуска кластера etcd и средств мониторинга:

    • grafana/ – директория, содержащая настройки для ведения мониторинга;

    • prometheus/ – директория, содержащая настройки Prometheus для сбора и передачи метрик в Grafana;

    • docker-compose.yml – описание узлов кластера etcd и средств мониторинга;

    • tcm.yml – конфигурация для запуска Tarantool Cluster Manager;

  • Makefile – инструкции для утилиты make для запуска и остановки всего стенда.

Конфигурация контейнера для узла Tarantool DB

Конфигурация контейнера для узла Tarantool DB задается в файле docker-compose.yml:

tarantool-router-msk:
  image: tarantooldb:2x-latest
  networks:
    - tarantooldb_network
  ports:
    - "3301:3301"
  environment:
    - TT_INSTANCE_NAME=router-msk
    - TT_CONFIG_ETCD_ENDPOINTS=http://etcd1:2379,http://etcd2:2379,http://etcd3:2379
    - TT_CONFIG_ETCD_PREFIX=/tdb
    - TT_CONFIG_ETCD_HTTP_REQUEST_TIMEOUT=3

Здесь:

  • image – название Docker-образа, используемого для создания контейнера;

  • networks– название подсети;

  • ports – используемые порты;

  • environment – переменные окружения для опций Tarantool:

    • TT_INSTANCE_NAME – имя экземпляра в кластере;

    • TT_CONFIG_ETCD_ENDPOINTS – адреса централизованного хранилища конфигурации;

    • TT_CONFIG_ETCD_PREFIX – адрес данных кластера Tarantool DB в централизованном хранилище конфигурации;

    • TT_CONFIG_ETCD_HTTP_REQUEST_TIMEOUT – таймаут запроса для получения конфигурации.

    Полный список опций доступен в описании Docker-образа Tarantool DB.

Контейнер init_host

В файле cluster/docker-compose.yml есть специальный контейнер init_host. С этого контейнера выполняются:

  1. Загрузка клиентского кода (миграций) в кластер и его применение: описание спейсов и функций.

  2. Добавление кластера в веб-интерфейс.

Остановка стенда

Остановить стенд можно так:

make stop
Found what you were looking for?
Feedback