Запуск кластера без централизованной конфигурации | Tdb
Руководство администратора Развертывание Запуск кластера без централизованной конфигурации

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

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

Примечание

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

Содержание:

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

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

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

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

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

    Примечание

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

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

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

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

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

cd ./doc/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'}}
    end
    
    migrate()
    

    Этот код создаст спейс 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
Нашли ответ на свой вопрос?
Обратная связь