TDB Documentation portal logo
Помощь
Обновлена 30 июня 2026 г. в 07:00

Запуск кластера без централизованной конфигурации

В этом руководстве показано, как развернуть кластер Tarantool DB без централизованной конфигурации с помощью Docker Compose. Если использовать этот способ, веб-интерфейс Tarantool Cluster Manager будет недоступен.

Содержание:

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

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

  • установленные Docker-образы Tarantool DB, Prometheus и Grafana;

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

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

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

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

cd ./docs/docs/ru/assets/examples/up_without_etcd/

Запустите стенд:

docker compose up -d

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

  • кластера Tarantool DB (2 роутера, 2 набора реплик по 3 хранилища);
  • средств мониторинга (Prometheus, Grafana).

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

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

  • config.yml — конфигурация и топология кластера;
  • docker-compose.yml — описание узлов стенда;
  • grafana — директория, содержащая настройки для ведения мониторинга;
  • prometheus — директория, содержащая настройки Prometheus для сбора и передачи метрик в Grafana.

Миграции

Создать необходимые объекты (спейсы и индексы) в этом примере можно двумя способами:

В этом примере для создания объектов используется tt CLI:

  1. Подключитесь к узлу storage-1-msk — лидеру набора реплик storage-1:

    tt connect admin:secret-cluster-cookie@0.0.0.0:3303
  2. Выполните на узле storage-1-msk следующий код:

    function migrate()    local sharding_space = box.schema.space.create('_ddl_sharding_key', {        format = {            {name = 'space_name', type = 'string', is_nullable = false},            {name = 'sharding_key', type = 'array', is_nullable = false},        },        if_not_exists = true,    })    sharding_space:create_index('space_name', {        type = 'TREE',        unique = true,        parts = {{'space_name', 'string', is_nullable = false}},        if_not_exists = true,    })    local s = box.schema.space.create('space_for_crud', {        if_not_exists = true,        format = {            { name = 'id', type = 'integer' },            { name = 'bucket_id', type = 'unsigned' },            { name = 'data', type = 'any' },        },    })    s:create_index('pk', { parts = {'id'}, if_not_exists = true})    s:create_index('bucket_id', { parts = {'bucket_id'}, unique = false, if_not_exists = true})    box.space._ddl_sharding_key:replace{s.name, {'id'}}endmigrate()

    Этот код создаст спейс space_for_crud, с которым можно взаимодействовать через модуль crud.

  3. Выйдите из консоли:

    \quit
  4. Теперь подключитесь к узлу storage-2-msk — лидеру набора реплик storage-2:

    tt connect admin:secret-cluster-cookie@0.0.0.0:3306
  5. Выполните код миграций из п.2 на узле storage-2-msk, а затем выйдите из консоли.

  6. Подключитесь к роутеру router-msk-1:

    tt connect admin:secret-cluster-cookie@0.0.0.0:3301
  7. Добавьте запись в спейс:

    crud.replace('space_for_crud', {1, nil, 'Data'})
  8. Теперь выполните чтение из спейса:

    crud.get('space_for_crud', {1})

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

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

docker compose down