Локальная конфигурация кластера и экземпляра | Tdb

Версия:

latest
Руководство администратора Локальная конфигурация кластера и экземпляра

Локальная конфигурация кластера и экземпляра

Конфигурация кластера в Tarantool задает общие параметры кластера, одинаковые для всех узлов кластера, и клиентский код миграций. Копия такой конфигурации хранится на каждом экземпляре, входящем в состав кластера, а сам кластер автоматически синхронизирует эти копии. Конфигурация кластера определяет топологию кластера, восстановление после сбоев (failover), параметры vshard, настройки аутентификации, управление списками контроля доступа (ACL), а также настройки, устанавливаемые пользователем. Конфигурация кластера не содержит параметры для конкретного экземпляра, например, порты, рабочие каталоги и настройки памяти.

Содержание:

Представление кластерной конфигурации

Представить кластерную конфигурацию можно двумя способами:

  • Единый YAML-файл – заданные секции конфигурации собраны в одном файле config.yml. Секции конфигурации представлены в виде соответствующего блока внутри файла. Это представление конфигурации компактно, его удобно использовать для хранения и передачи данных.

  • Несколько YAML-файлов – каждая секция конфигурации находится в отдельном файле. Этот подход позволяет гибко управлять конфигурацией и редактировать отдельные ее части.

Конфигурация в едином YAML-файле

Пример единого файла конфигурации config.yml:

# config.yml
---
auth: { ... }
crud: { ... }
metrics: { ... }
migrations: { ... }
topology: { ... }
schema: { ... }
user_custom_config: { ... }
vshard_groups: { ... }
...

Конфигурация в нескольких YAML-файлах

В файловой системе структура конфигурации кластера имеет вид древовидной структуры. Директория config содержит основные секции конфигурации. По умолчанию в директории определены три секции конфигурации: auth.yml, topology.yml и vshard_groups.yml.

config/
├── auth.yml
├── topology.yml
└── vshard_groups.yml

По мере добавления пользовательских секций конфигурации схема увеличивается:

config/
├── auth.yml
├── crud.yml
├── metrics.yml
├── migrations.yml
├── schema.yml
├── user_custom_config.yml
└── vshard_groups.yml

Настройка параметров роли

В конфигурации кластера можно хранить данные и параметры для конкретной роли. Конфигурация кластера поддерживает формат YAML, а также обычные текстовые разделы. Чтобы упорядочить разделы, можно использовать вложенные каталоги:

# config.yml
---
migrations/source/001_init.lua: { ... }
...

Пример структуры с вложенным каталогом:

admin-config-view.png

Гибкость конфигурации кластера позволяет изменять систему под различные потребности, в том числе под требования конкретных ролей.

Есть несколько способов обновить конфигурацию кластера:

  • Lua API – обеспечивает программную гибкость и позволяет автоматизировать процесс;

  • HTTP API – позволяет удобно работать с кластером с помощью стандартных HTTP-запросов;

  • веб-интерфейс Tarantool DB.

Обновление конфигурации через веб-интерфейс

Чтобы обновить конфигурацию через веб-интерфейс, выполните следующие шаги:

  1. В веб-интерфейсе перейдите на вкладку Configuration files.

  2. При необходимости скачайте текущую версию конфигурационного файла, нажав на кнопку Download.

  3. Внесите необходимые изменения в конфигурационный файл. Добавлять, изменять и удалять можно любые разделы, кроме системных (например, topology, vshard, vshard_groups).

  4. Нажмите кнопку Upload configuration, чтобы применить обновленный файл конфигурации. Кластер проверяет изменения, отклоняя неприемлемые, а затем распространяет новую конфигурацию по всем узлам кластера. Если файл обновлен успешно, появится соответствующее сообщение в нижней части экрана. Если при попытке применить новые настройки возникла проблема, появится сообщение об ошибке.

Обновление конфигурации через HTTP API

Чтобы объединить несколько конфигураций в единый файл, можно использовать HTTP API. HTTP API работает только с одним файлом конфигурации старого образца.

В примере ниже создан файл конфигурации config.yml:

cat > config.yml << CONFIG
---
custom_section: { }
...
  CONFIG

Загрузить новую конфигурацию в кластер можно следующей командой:

curl -v "localhost:8081/admin/config" -X PUT --data-binary @config.yml

Скачать текущую конфигурацию из кластера можно так:

curl -v "localhost:8081/admin/config" -o config.yml

Скачать можно только разделы, связанные с ролями. Скачать или загрузить системные разделы (например, topology, auth, users_acl) не получится.

Если включена авторизация, используйте параметр --user с учетными данными пользователя: --user username:password. Этот параметр обеспечивает безопасное взаимодействие с API, требующим аутентификации.

Пример работы с кластерной конфигурацией

В примере добавлена роль crud, которая позволяет выполнять на кластере CRUD-операции (создание, чтение, обновление, удаление) через IPROTO API. Настроить эту роль можно тремя способами:

  • через Lua API;

  • через CLI – с помощью прямого подключения к экземплярам роутеров и настройки нужных параметров crud;

  • с помощью кластерной конфигурации.

В примере ниже роль crud настроена с помощью кластерной конфигурации.

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

Есть два способа добавить конфигурацию в запущенный кластер:

  • через веб-интерфейс Tarantool DB;

  • через файл config.yml.

Веб-интерфейс

  1. В веб-интерфейсе Tarantool DB перейдите на вкладку Code.

  2. Создайте файл crud.yml. В нем будут храниться настройки роли crud.

  3. Укажите в файле конфигурацию ниже:

    ---
    stats: true
    ...
    

    Здесь:

    • stats – включение сбора метрик CRUD.

  4. Нажмите кнопку Apply.

crud-config-2.png

Через веб-интерфейс можно менять состояние работы статистики и другие параметры в реальном времени без перезапуска кластера или экземпляров. Для этого поменяйте значение параметра и нажмите кнопку Apply.

Файл config.yaml

  1. Перейдите в директорию bootstrap. В ней хранится файл config.yaml.

  2. В config.yaml добавьте секцию crud со следующими настройками:

    crud:
      stats: true
    
  3. Структура файла теперь выглядит так:

    crud-config-1.png

  4. Примените новую конфигурацию.

Нашли ответ на свой вопрос?
Обратная связь