Запуск кластера через 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
Команда последовательно выполняет следующие шаги:
Запускает централизованное хранилище конфигурации – кластер etcd;
Загружает конфигурацию кластера в централизованное хранилище;
Запускает кластер Tarantool DB;
Загружает миграции в кластер и выполняет их.
Запущенный стенд состоит из:
кластера Tarantool DB:
2 роутера;
2 набора реплик по 3 хранилища;
1 Tarantool Cluster Manager (TCM);
кластера 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
.
С этого контейнера выполняются:
Загрузка клиентского кода (миграций) в кластер и его применение: описание спейсов и функций.
Добавление кластера в веб-интерфейс.