Настройка и подключение внешних ключевых сервисов
В IVA One используются следующие сторонние сервисы:
-
СУБД, поддерживающая диалект PostgreSQL — для хранения истории сообщений пользователей и служебной информации
-
S3 — объектное хранилище, используемое для хранения файлов из чатов, а также конфигурационных файлов сервисов и служебной информации
-
OpenSearch — для поиска информации по содержимому чатов
Данные сервисы включены в состав дистрибутива IVA One и могут быть развернуты в среде Kubernetes.
| При использовании встроенных сервисов данные сервисы настраиваются автоматически при развертывании IVA One |
Наиболее важными сервисами для функционирования IVA One являются СУБД PostgreSQL и хранилище S3. От доступности и надежности данных сервисов напрямую зависит работоспособность всей системы IVA One.
|
Для обеспечения надежности в высоконагруженных и продуктивных средах, а также при проведении пилотных демонстраций рекомендуется использовать внешние отказоустойчивые сервисы СУБД и S3. Для работы сервисов требуется их предварительная настройка и интеграция с IVA One |
Сервис OpenSearch также рекомендуется использовать как внешний. При использовании неотказоустойчивой конфигурации OpenSearch следует учесть, что для восстановления работы сервиса в случае сбоя потребуется некоторое время, необходимое для создания новых поисковых индексов.
СУБД PostgreSQL
IVA One поддерживает использование внешней корпоративной системы управления базами данных (СУБД) для хранения пользовательских и системных данных. В качестве внешней СУБД может выступать любая система управления базами данных, совместимая с PostgreSQL (версия 15 и выше).
При настройке взаимодействия IVA One с внешней СУБД необходимо учитывать ограничение СУБД на максимальное количество подключений. По умолчанию для PostgreSQL этот параметр равен 100. Для стабильной работы IVA One необходимо увеличить значение параметра максимального количества подключений к СУБД минимум до 256 для каждого узла (ноды) кластера IVA One.
Пример расчета ограничения СУБД на максимальное количество подключений: 256 × Количество рабочих узлов (нод) кластера IVA One
Права суперпользователя СУБД необходимы для первоначальной настройки и последующего проведения операций по обновлению базы данных IVA One.
Для штатной работы с базами данных IVA One необходимо создать специального служебного пользователя, обладающего правами владельца для следующих баз данных:
-
iva_id
-
iva_one_profiles
-
iva_one_chats
-
iva_one_calls
-
iva_link_notifications
-
iva_diskstorage
-
iva_federation_gateway
-
iva_one_address_book
-
iva_presence
Начальная настройка
Для настройки СУБД необходимо выполнить следующие действия:
-
подключиться к СУБД PostgreSQL с правами суперпользователя
-
выполнить команду создания служебного пользователя IVA One
CREATE USER <IVA_ONE_USER> WITH PASSWORD '<IVA_ONE_USER_PASSWORD>';где:
-
<IVA_ONE_USER> — имя служебного пользователя IVA One в СУБД PostgreSQL
-
<IVA_ONE_USER_PASSWORD> — пароль служебного пользователя IVA One в СУБД PostgreSQL
-
-
выполнить команду создания нескольких баз данных
CREATE DATABASE iva_id OWNER <IVA_ONE_USER>; CREATE DATABASE iva_one_profiles OWNER <IVA_ONE_USER>; CREATE DATABASE iva_one_chats OWNER <IVA_ONE_USER>; CREATE DATABASE iva_one_calls OWNER <IVA_ONE_USER>; CREATE DATABASE iva_link_notifications OWNER <IVA_ONE_USER>; CREATE DATABASE iva_diskstorage OWNER <IVA_ONE_USER>; CREATE DATABASE iva_federation_gateway OWNER <IVA_ONE_USER>; CREATE DATABASE iva_one_address_book OWNER <IVA_ONE_USER>; CREATE DATABASE iva_presence OWNER <IVA_ONE_USER>;где <IVA_ONE_USER> — имя служебного пользователя IVA One в СУБД PostgreSQL
Интеграция с IVA One
Для интеграции СУБД PostgreSQL с IVA One необходимо выполнить следующие действия:
-
в инфраструктуре Kubernetes создать секрет для подключения к СУБД с помощью команды:
sudo kubectl delete secret iva-one-postgresql-secret -n iva-one --ignore-not-found sudo kubectl create secret generic iva-one-postgresql-secret -n iva-one \ --from-literal=username='<IVA_ONE_USER>' \ --from-literal=password='<IVA_ONE_USER_PASSWORD>'где:
-
iva-one-postgresql-secret — имя секрета для хранения логина / пароля учетной записи служебного пользователя IVA One
Название секрета не изменять! -
<IVA_ONE_USER> — имя служебного пользователя IVA One в СУБД PostgreSQL
-
<IVA_ONE_USER_PASSWORD> — пароль служебного пользователя IVA One в СУБД PostgreSQL
-
iva-one — пространство имен (namespace) Kubernetes, в котором развернута IVA One, если оно отличается от имени по умолчанию (default)
-
-
открыть файл конфигурации IVA One values.yaml любым редактором (например, nano), выполнив команду:
sudo nano /opt/iva/values.yaml -
в файле конфигурации values.yaml указать параметры подключения к СУБД:
global: postgres: embedded: false host: "db.iva.ru" port: "5432" secret: iva-one-postgresql-secretгде:
-
embedded — параметр, определяющий необходимость использования встроенного в IVA One сервиса PostgreSQL; должно быть установлено значение
false -
host — FQDN или IP-адрес СУБД PostgreSQL (например,
"db.iva.ru") -
port — порт СУБД PostgreSQL (например,
"5432") -
secret — имя секрета, созданного на предыдущем шаге (постоянное неизменяемое значение)
-
-
применить обновленную конфигурацию файла values.yaml, выполнив команду:
sudo helm upgrade iva-one /opt/iva/iva-one -f /opt/iva/values.yaml -n iva-oneгде iva-one — пространство имен (namespace) Kubernetes, в котором развернута IVA One, если оно отличается от имени по умолчанию (default)
S3-хранилище
| Может использоваться любое S3-совместимое хранилище |
В дистрибутив IVA One входит S3-хранилище MinIO.
Интеграция с IVA One
Для интеграции S3-хранилища с IVA One необходимо выполнить следующие действия:
-
в инфраструктуре Kubernetes создать секрет для подключения к S3-хранилищу с помощью команды:
sudo kubectl delete secret iva-one-s3-secret -n iva-one --ignore-not-found sudo kubectl create secret generic iva-one-s3-secret -n iva-one \ --from-literal=access-key='<S3_ACCESS_KEY>' \ --from-literal=secret-key='<S3_SECRET_KEY>'где:
-
iva-one-s3-secret — имя секрета для хранения ключей S3-хранилища
Название секрета не изменять! -
<S3_ACCESS_KEY> — имя ключа доступа S3-хранилища
-
<S3_SECRET_KEY> — секрет ключа доступа S3-хранилища
-
iva-one — пространство имен (namespace) Kubernetes, в котором развернута IVA One, если оно отличается от имени по умолчанию (default)
-
-
открыть файл конфигурации IVA One values.yaml любым редактором (например, nano), выполнив команду:
sudo nano /opt/iva/values.yaml -
в файле конфигурации values.yaml указать параметры подключения к S3-хранилищу:
global: s3: embedded: false url: "https://s3.iva.ru:9000" secret: iva-one-s3-secret bucket: "ivaone"где:
-
embedded — параметр, определяющий необходимость использования встроенного в IVA One S3-хранилища; должно быть установлено значение
false -
url — URL, FQDN или IP-адрес и порт для подключения к S3-хранилищу (например,
"https://s3.iva.ru:9000") -
secret — имя секрета, созданного на предыдущем шаге (постоянное неизменяемое значение)
-
bucket — название раздела (bucket) S3-хранилища для IVA One (например,
"ivaone")
-
-
применить обновленную конфигурацию файла values.yaml, выполнив команду:
sudo helm upgrade iva-one /opt/iva/iva-one -f /opt/iva/values.yaml -n iva-oneгде iva-one — пространство имен (namespace) Kubernetes, в котором развернута IVA One, если оно отличается от имени по умолчанию (default)
OpenSearch
Для интеграции OpenSearch с IVA One необходимо выполнить следующие действия:
-
в инфраструктуре Kubernetes создать секрет для подключения к OpenSearch с помощью команды:
sudo kubectl delete secret iva-one-opensearch-secret -n iva-one --ignore-not-found sudo kubectl create secret generic iva-one-opensearch-secret -n iva-one \ --from-literal=username='<YOUR_OPENSEARCH_USERNAME>' \ --from-literal=password='<YOUR_OPENSEARCH_PASSWORD>'где:
-
iva-one-opensearch-secret — имя секрета для хранения данных подключения к OpenSearch
Название секрета не изменять! -
<YOUR_OPENSEARCH_USERNAME> — имя служебного пользователя OpenSearch
-
<YOUR_OPENSEARCH_PASSWORD> — пароль служебного пользователя OpenSearch
-
iva-one — пространство имен (namespace) Kubernetes, в котором развернута IVA One, если оно отличается от имени по умолчанию (default)
-
-
открыть файл конфигурации IVA One values.yaml любым редактором (например, nano), выполнив команду:
sudo nano /opt/iva/values.yaml -
в файле конфигурации values.yaml указать параметры подключения к OpenSearch:
global: opensearch: embedded: false url: "<URL_OPENSEARCH>" prefix: "ivaone_" secret: iva-one-opensearch-secret existingSecret: trueгде:
-
embedded — параметр, определяющий необходимость использования встроенного в IVA One сервиса OpenSearch; должно быть установлено значение
false -
<URL_OPENSEARCH> — URL, FQDN или IP-адрес и порт для подключения к OpenSearch (например,
http://opensearch.iva.ru:9200) -
secret — имя секрета, созданного на предыдущем шаге (постоянное значение, не изменяется)
-
prefix — префикс, который будет добавляться к названиям индексов в OpenSearch (постоянное неизменяемое значение)
-
existingSecret — маркер, подтверждающий существование секрета. При значении
trueиспользуется ранее созданный секрет, указанный вsecret
-
-
применить обновленную конфигурацию файла values.yaml, выполнив команду:
sudo helm upgrade iva-one /opt/iva/iva-one -f /opt/iva/values.yaml -n iva-oneгде iva-one — пространство имен (namespace) Kubernetes, в котором развернута IVA One, если оно отличается от имени по умолчанию (default)

