Настройка многоузлового кластера
Используйте эту инструкцию, если требуется распределить роли Клавдия между несколькими Linux-серверами. После настройки узлы используют общую базу данных, видят одни источники и правила хранения, а экземпляры Solr входят в один поисковый кластер.
Перед началом
- Выберите {{ССЫЛКА:install.choose-topology|схему установки}} и рассчитайте {{ССЫЛКА:install.sizing|ресурсы}}.
- Установите {{ССЫЛКА:install.aio|первый узел}} или подготовьте внешние PostgreSQL и Solr.
- Подготовьте доступ новых узлов к общей PostgreSQL, узлам хранения и службе поиска. См. {{ССЫЛКА:reference.network-ports|Порты и сетевые соединения}}.
- Сохраните действующий секрет кластера: он должен совпадать на всех узлах.
Распределите роли
Роли выбираются при установке. Один узел может выполнять несколько ролей; веб-интерфейс включён на каждом узле обязательно.
| Роль | Значение для KLVD_ROLES |
Где размещать |
|---|---|---|
| Хранилище | storage |
на серверах с дисками архива или доступом к S3 |
| Импорт | importer |
на серверах с доступом к почтовым источникам |
| Индексация | indexer |
на серверах с ресурсами для извлечения текста и Solr |
| SMTP | smtp |
на серверах, принимающих поток почты |
| IMAP | imap |
на серверах, предоставляющих пользователям доступ к архиву |
Например, для узла хранения и импорта:
KLVD_ROLES=storage,importer
KLVD_ROLES ограничивает доступные роли конкретного узла. После установки их включение и размещение слушателей настраиваются в [Кластер] → [Узлы кластера]. См. {{ССЫЛКА:maintenance.cluster-config|Изменение ролей и конфигурации узла}}.
Подключите узлы к общей базе
- Добавьте каждый новый сервер по инструкции {{ССЫЛКА:install.join-node|Добавление Linux-узла в существующий кластер}}.
- Укажите ту же PostgreSQL: адрес, порт, имя базы и учётную запись.
- Укажите действующий секрет кластера.
- Выберите роли и вариант подключения к Solr.
- После запуска убедитесь, что новый узел появился в [Кластер] → [Узлы кластера].
Для всех узлов используется одна база. Отдельная база на новом сервере создаст другую установку, а не расширит существующий кластер.
Подключите хранилище и поиск
Узел с ролью [Хранилище] регистрирует свой адрес в общей базе. Создайте для него {{ССЫЛКА:install.storage-create|хранилище}}, включите его в {{ССЫЛКА:install.storage-group|группу}} и проверьте правила хранения. Один узел может входить в несколько локальных и S3-групп.
Для штатного SolrCloud на каждом узле индексирования используется отдельный контейнер Solr. Первый координатор запускает ZooKeeper; остальные экземпляры подключаются к ZooKeeper координатора. На узлах без локального Solr эти контейнеры не требуются. Порядок добавления: {{ССЫЛКА:reference.solr-instances|Добавление и состояние экземпляров SolrSolr}}.
Адреса хранилища и Solr определяются при регистрации. Проверьте, что опубликованные адреса доступны с других серверов: localhost подходит только для обращения с того же хоста. При необходимости задайте внешний адрес через параметры из {{ССЫЛКА:reference.env|справочника переменных окружения}}.
В штатной схеме ZooKeeper работает на одном координаторе. Дополнительные узлы Solr создают реплики индекса, но не обеспечивают отказоустойчивость ZooKeeper. Учтите это при проектировании; см. {{ССЫЛКА:reference.solrcloud|SolrCloud: архитектура}}.
Разделяйте общие и локальные настройки
| Где менять | Что настраивается |
|---|---|
.env, Docker Compose и секреты конкретного сервера |
доступные роли, адреса, порты, подключение к PostgreSQL, локальные контейнеры и тома |
| Веб-интерфейс любого узла | источники, расписания, правила хранения, группы хранилищ, пользователи, права, LDAP/AD и общие настройки поиска |
| Карточка конкретного узла в веб-интерфейсе | включённые роли, вес, лимиты и размещение слушателей этого узла |
Общие настройки сохраняются в PostgreSQL и доступны всему кластеру. Параметры карточки узла применяются к выбранному узлу.
Выберите точку входа
| Схема | Что требуется |
|---|---|
| Один сервер | все нужные роли и локальные компоненты на одном сервере |
| Два сервера | общая PostgreSQL; при двух индексаторах — координатор и присоединённый экземпляр Solr |
| Три и более серверов | та же схема подключения; распределение ролей и реплик по ресурсам и требованиям доступности |
Если веб-интерфейс, SMTP или IMAP работают на нескольких узлах, настройте {{ССЫЛКА:install.integration-haproxy|единую точку входа через HAProxyHAProxy}}. Балансировщик не заменяет избыточность хранилища, резервирование базы или реплики поиска.
Проверьте результат
- В [Кластер] → [Узлы кластера] все добавленные узлы доступны, роли соответствуют плану.
- На {{ССЫЛКА:maintenance.dashboard|панели состояния}} PostgreSQL, хранилище и поиск проходят проверку.
- В [Инстансы SolrCloud] экземпляры доступны, реплики находятся в состоянии
active. - Импортируйте тестовое письмо и найдите его через веб-интерфейс другого узла.
- Если используется SMTP или IMAP, проверьте подключение через выбранную точку входа.
{{СКРИНШОТ}}
Если узел не подключился
Проверьте адрес общей базы, учётные данные, секрет кластера и доступность портов. Если узел появился, но хранилище или поиск недоступны, проверьте опубликованные адреса этих служб и правила межсетевого экрана. Начните с {{ССЫЛКА:maintenance.cluster-status|проверки состояния узлов}}.
Связанные материалы
{{ССЫЛКА:reference.roles|Роли узлов: справочник}}{{ССЫЛКА:maintenance.update-multinode|Обновление многоузлового кластера DockerComposeCompose}}
Навигация по книге
- Следующая статья: {{ССЫЛКА:install.env-map|Пер
вый вход и семенные окружения узла: картапнароля администратораек}}