Конфигурация
В этом разделе описана настройка Тarantool Cluster Manager. Полный список параметров конфигурации TCM см. в справочнике параметров конфигурации TCM.
Конфигурация Тarantool Cluster Manager представляет собой набор параметров, определяющих различные аспекты работы TCM. Параметры сгруппированы по аспектам, на которые они влияют. Представлены следующие группы:
- HTTP.
- Журналирование.
- Хранилище конфигурации.
- Безопасность.
- Дополнения.
- Ограничения.
- Режимы работы TCM.
Группы параметров могут быть вложенными. Например, в
группе http есть группы tls и websession-cookie, определяющие
соответственно настройки TLS-шифрования и cookie.
Имена параметров представляют собой полные пути от группы верхнего уровня до конкретного параметра. Например:
http.host- параметрhost, заданный непосредственно в группеhttp.http.tls.enabled- параметрenabled, заданный во вложенной группеtlsвнутриhttp.
Передать параметры конфигурации TCM можно тремя способами:
- YAML-файл.
- Переменные окружения.
- Параметры командной строки исполняемого файла TCM.
Конфигурация TCM может храниться в YAML-файле. Его структура должна отражать иерархию параметров конфигурации.
Ниже приведен фрагмент файла конфигурации TCM:
# a fragment of a YAML configuration filecluster: # top-level groupconnection-rate-limit: 512tarantool-timeout: 10starantool-ping-timeout: 5shttp: # top-level groupnetwork: tcphost: 127.0.0.1port: 8080request-size: 1572864websocket: # nested groupread-buffer-size: 16384write-buffer-size: 16384keepalive-ping-interval: 20shandshake-timeout: 10sinit-timeout: 15s
Чтобы запустить TCM с конфигурацией из YAML-файла, передайте путь к
файлу конфигурации в параметре -c командной строки:
$ tcm -c=config.yml
TCM может получать значения параметров конфигурации из переменных
окружения. Имена переменных начинаются с TCM_. Далее следует полный
путь к параметру, преобразованный в верхний регистр. Все разделители
заменяются на подчеркивания (_). Примеры:
TCM_HTTP_HOST- переменная для параметраhttp.host.TCM_HTTP_WEBSESSION_COOKIE_NAME- переменная для параметраhttp.websession-cookie.name.
Ниже показан пример запуска TCM с параметрами конфигурации, переданными через переменные окружения:
$ export TCM_HTTP_HOST=0.0.0.0$ export TCM_HTTP_PORT=8888$ tcm
Исполняемый файл TCM имеет параметры командной строки, начинающиеся с
--, для каждого параметра конфигурации. Их имена отражают полный путь
к параметру, где уровни конфигурации разделены точками (.). Примеры:
--http.host- параметр дляhttp.host.--http.websession-cookie.name- параметр дляhttp.websession-cookie.name.
Ниже показан пример запуска TCM с параметрами конфигурации, переданными через командную строку:
$ tcm --storage.etcd.embed.enabled --addon.enabled --http.host=0.0.0.0 --http.port=8888
Параметры конфигурации TCM применяются из нескольких источников со следующим приоритетом, от высшего к низшему:
- Аргументы исполняемого файла
tcm. - Переменные окружения
TCM_*. - Конфигурация из YAML-файла.
Если один и тот же параметр задан в двух или более источниках, применяется значение с наивысшим приоритетом. Для параметров, не заданных ни в одном из источников, используются значения по умолчанию.
Различные способы конфигурации TCM можно комбинировать для эффективного управления несколькими установками TCM:
- Единый YAML-файл для всех установок может содержать общие части конфигурации. Например, единое хранилище конфигурации, используемое для всех установок, или настройки TLS.
- Переменные окружения для задания специфических параметров каждого сервера, таких как локальные директории и пути.
- Параметры командной строки для параметров, которые должны быть уникальными
для разных экземпляров TCM, запущенных на одном сервере. Например,
http.port.
Параметры конфигурации TCM имеют типы языка Go. Обратите внимание, что это отличается от параметров конфигурации Tarantool, которые имеют типы Lua.
Большинство параметров имеют базовые типы Go: int и другие числовые
типы, bool, string.
http:network: tcp # stringhost: 127.0.0.1 # stringport: 8080 # intrequest-size: 1572864 # int64
Параметры, принимающие несколько значений, являются массивами. В YAML они передаются как YAML-массивы: каждый элемент с новой строки, начиная с тире.
storage:provider: etcdetcd:endpoints: # array- https://192.168.0.1:2379 # item 1- https://192.168.0.2:2379 # item 2
Параметры, задающие время ожидания, TTL и другие значения длительности, имеют
тип Go time.Duration. Их значения
можно передавать в строках с форматом времени, например 4h30m25s.
cluster:tarantool-timeout: 10s # durationtarantool-ping-timeout: 5s # duration
Наконец, существуют параметры, значения которых являются константами, определенными в пакетах Go. Например, значения параметра ttp.websession-cookie.same-site - это константы типа Go http.SameSite. Точные значения, доступные для таких параметров, указаны в документации пакетов Go.
http:websession-cookie:same-site: SameSiteStrictMode
Создать шаблон YAML-конфигурации для TCM со всеми параметрами и их
значениями по умолчанию можно с помощью параметра generate-config
исполняемого файла tcm.
Чтобы записать конфигурацию TCM по умолчанию в файл tcm.example.yml,
выполните:
$ tcm generate-config > tcm.example.yml.
YAML-файлы конфигурации можно использовать для автоматического создания сущностей в TCM при первом запуске. Эти сущности определяются в секции tcm_configuration_reference_initial файла конфигурации.
Чтобы добавить кластеры в TCM при первом запуске, укажите их настройки в секции конфигурации initial-settings.clusters.
Раздел initial-settings.clusters представляет собой массив, элементы
которого описывают отдельные кластеры, например:
initial-settings:clusters:- name: Cluster 1description: First cluster# cluster settings- name: Cluster 2description: Second cluster# cluster settings
В этой конфигурации можно указать все настройки кластера, которые задаются при подключении кластеров через веб-интерфейс TCM. Включая:
- имя кластера
- описание
- дополнительные URL
- подключение к хранилищу конфигурации
- подключение к экземплярам Tarantool
- и другие настройки.
Полный список параметров конфигурации кластера см. в справочнике initial-settings.clusters. Например, так можно добавить кластер, использующий хранилище конфигурации etcd:
initial-settings:clusters:- name: My clusterdescription: Cluster descriptionurls:- label: Testurl: http://example.comstorage-connection:provider: etcdetcd-connection:endpoints:- http://127.0.0.1:2379username: ""password: ""prefix: /cluster1tarantool-connection:username: guestpassword: ""
По умолчанию в TCM содержится кластер с именем Default cluster и
идентификатором 00000000-0000-0000-0000-000000000000. Этот
идентификатор можно использовать для изменения настроек кластера по
умолчанию при первом запуске TCM. Например, переименовать его и добавить
настройки подключения:
initial-settings:clusters:- id: 00000000-0000-0000-0000-000000000000name: My clusterstorage-connection:provider: etcdetcd-connection:endpoints:- http://127.0.0.1:2379username: etcd-userpassword: secretprefix: /cluster1tarantool-connection:username: guestpassword: ""