Настройка и подключение внешних сервисов
В IVA One используются следующие сторонние сервисы:
-
СУБД, поддерживающая диалект PostgreSQL — для хранения истории сообщений пользователей и служебной информации
-
S3 — объектное хранилище, используемое для хранения файлов из чатов, также конфигурационных файлов сервисов и служебной информации
-
OpenSearch — для поиска информации по содержимому чатов
Данные сервисы включены в состав дистрибутива IVA One и могут быть развернуты в среде Kubernetes.
| При использовании встроенных сервисов данные сервисы настраиваются автоматически при развертывании IVA One |
Наиболее важными сервисами для функционирования IVA One являются СУБД PostgreSQL и хранилище S3. От доступности и надежности данных сервисов напрямую зависит работоспособность всей системы IVA One.
|
Для обеспечения надежности в высоконагруженных и продуктивных средах, а также при проведении пилотных демонстраций рекомендуется использовать внешние отказоустойчивые сервисы СУБД и S3. Для работы сервисов требуется их предварительная настройка и интеграция с IVA One |
При использовании неотказоустойчивой конфигурации OpenSearch следует учесть, что для восстановления работы сервиса в случае сбоя потребуется некоторое время, необходимое для создания новых поисковых индексов.
СУБД PostgreSQL
IVA One работает с СУБД, поддерживающих диалект PostgreSQL (версия 14 и выше).
Права суперпользователя СУБД необходимы для первоначальной настройки и последующего проведения операций по обновлению базы данных IVA One.
Для штатной работы с базами данных IVA One необходимо создать специального служебного пользователя, обладающего правами владельца для следующих баз данных:
-
iva_id
-
iva_diskstorage
-
iva_link_notifications
-
iva_one_profiles
-
iva_one_chats
-
iva_one_calls
Начальная настройка
Для настройки СУБД необходимо выполнить следующие действия:
-
подключиться к СУБД 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_diskstorage OWNER <IVA_ONE_USER>; CREATE DATABASE iva_link_notifications 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>;где <IVA_ONE_USER> — имя служебного пользователя IVA One в СУБД PostgreSQL
Интеграция с IVA One
Для интеграции СУБД PostgreSQL с IVA One необходимо выполнить следующие действия:
-
в инфраструктуре Kubernetes создать секрет для подключения к СУБД с помощью команды:
sudo kubectl delete secret iva-one-postgresql-secret -n <IVA_NAMESPACE> --ignore-not-found sudo kubectl create secret generic iva-one-postgresql-secret -n <IVA_NAMESPACE> \ --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_NAMESPACE> — имя целевого пространства (namespace) IVA One в Kubernetes, если оно отличается от имени по умолчанию (default)
-
-
открыть файл конфигурации IVA One values.yaml любым редактором (например nano), выполнив команду:
sudo nano /opt/iva/values.yaml -
в файле конфигурации values.yaml указать параметры подключения к СУБД:
presets: postgres: embedded: &postgres_embedded false host: &postgres_host "db.iva.ru" port: &postgres_port "5432" secret: &postgres_secret iva-one-postgresql-secretгде
-
embedded: &postgres_embedded — параметр, определяющий необходимость использования Postgre встроенного в IVA One, должно быть установлено значение
false -
host: &postgres_host — FQDN или IP-адрес СУБД PostgreSQL (например,
"db.iva.ru") -
port: &postgres_port — порт СУБД PosgreSQL (например,
"5432") -
secret: &postgres_secret — имя секрета, созданного на предыдущем шаге (постоянное неизменяемое значение)
-
-
применить обновленную конфигурацию файла values.yaml, выполнив команду:
sudo helm upgrade iva-one /opt/iva/iva-one -f /opt/iva/values.yaml -n <IVA_NAMESPACE>где <IVA_NAMESPACE> — имя целевого пространства (namespace) IVA One в Kubernetes, если оно отличается от имени по умолчанию (default)
S3-хранилище
| Может использоваться любое S3-совместное хранилище |
В дистрибутив IVA One входит S3-хранилище Minio.
Интеграция с IVA One
Для интеграции S3-хранилища с IVA One необходимо выполнить следующие действия:
-
в инфраструктуре Kubernetes создать секрет для подключения к S3-хранилищу с помощью команды:
sudo kubectl delete secret iva-one-s3-secret -n IVA_NAMESPACE --ignore-not-found sudo kubectl create secret generic iva-one-s3-secret -n IVA_NAMESPACE \ --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_NAMESPACE> — имя целевого пространства (namespace) IVA One в Kubernetes, если оно отличается от имени по умолчанию (default)
-
-
открыть файл конфигурации IVA One values.yaml любым редактором (например nano), выполнив команду:
sudo nano /opt/iva/values.yaml -
в файле конфигурации values.yaml указать параметры подключения к S3-хранилищу:
presets: s3: embedded: &s3_embedded false url: &s3_url "https://s3.iva.ru:9000" secret: &s3_secret iva-one-s3-secret bucket: &s3_bucket "ivaone"где
-
embedded: &s3_embedded — параметр, определяющий необходимость использования S3-хранилища встроенного в IVA One, должно быть установлено значение
false -
url: &s3_url — URL, FQDN или IP-адрес и порт для подключения к S3-хранилищу (например,
"https://s3.iva.ru:9000") -
secret: &s3_secret — имя секрета, созданного на предыдущем шаге (постоянное неизменяемое значение)
-
bucket: &s3_bucket — название раздела (bucket) S3-хранилища для IVA One (например,
"ivaone")
-
-
применить обновленную конфигурацию файла values.yaml, выполнив команду:
sudo helm upgrade iva-one /opt/iva/iva-one -f /opt/iva/values.yaml -n <IVA_NAMESPACE>где <IVA_NAMESPACE> — имя целевого пространства (namespace) IVA One в Kubernetes, если оно отличается от имени по умолчанию (default)
OpenSearch
Для интеграции OpenSearch с IVA One необходимо выполнить следующие действия:
-
в инфраструктуре Kubernetes создать секрет для подключения к OpenSeacrh с помощью команды:
sudo kubectl delete secret iva-one-opensearch-secret -n <IVA_NAMESPACE> --ignore-not-found sudo kubectl create secret generic iva-one-opensearch-secret -n <IVA_NAMESPACE> \ --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_NAMESPACE> — имя целевого пространства (namespace) IVA One в Kubernetes, если оно отличается от имени по умолчанию (default)
-
-
открыть файл конфигурации IVA One values.yaml любым редактором (например nano), выполнив команду:
sudo nano /opt/iva/values.yaml -
в файле конфигурации values.yaml указать параметры подключения к OpenSearch:
presets: opensearch: embedded: &opensearch_embedded false url: &opensearch_url "http://opensearch.iva.ru:9200" secret: &opensearch_secret iva-one-opensearch-secret prefix: &opensearch_prefix "ivaone_"где
-
embedded: &opensearch_embedded — параметр, определяющий необходимость использования OpenSearch встроенного в IVA One, должно быть установлено значение
false -
url: &opensearch_url — URL, FQDN или IP-адрес и порт для подключения к OpenSearch (например,
"http://opensearch.iva.ru:9200") -
secret: &opensearch_secret — имя секрета, созданного на предыдущем шаге (постоянное значение, не изменяется)
-
prefix: &opensearch_prefix — префикс, который будет добавляться к названиям индексов в OpenSearch (постоянное неизменяемое значение)
-
-
применить обновленную конфигурацию файла values.yaml, выполнив команду:
sudo helm upgrade iva-one /opt/iva/iva-one -f /opt/iva/values.yaml -n <IVA_NAMESPACE>где <IVA_NAMESPACE> — имя целевого пространства (namespace) IVA One в Kubernetes, если оно отличается от имени по умолчанию (default)

