Подготовка окружения#
Настройка окружения#
Минимальные требования#
Перед установкой Platform V Vector DB (далее - Vector DB) убедитесь, что система соответствует минимальным аппаратным требованиям:
ОС: Linux (x86_64, ARM64) / macOS (x86_64, M1/M2) / Windows (WSL2);
память: ≥ 2 GB RAM (рекомендуется 4+ GB для production);
диск: SSD/NVMe (HDD не рекомендуется из-за низкой скорости поиска).
Убедитесь, что имеется учетная запись пользователя с sudo правами.
Хранилище#
Для постоянного хранилища Platform V Vector DB (далее - Vector DB) требуется блочный доступ к устройствам хранения с файловой системой, совместимой с POSIX. Системы сетевого доступа, такие как iSCSI, предоставляющие блочный доступ, также приемлемы. Vector DB не будет работать с сетевыми файловыми системами (NFS), или с системами объектного хранилища (S3).
Сеть#
Каждому экземпляру Vector DB требуются три открытых порта:
6333- для HTTP API, конечных точек мониторинга состояния и метрик;6334- для API gRPC;6335- для распределенного развертывания.
Все экземпляры Vector DB в кластере должны иметь возможность:
общаться друг с другом по указанным портам;
разрешать входящие соединения на порты
6333и6334от клиентов, использующих Vector DB.
Безопасность#
Стандартная конфигурация Vector DB может оказаться недостаточно безопасной для каждой ситуации. Дополнительную информацию см. в документации по безопасности.
Выпуск и подготовка сертификатов#
При работе с SecMan необходимо:
Получить данные для доступа в SecMan (
role_idиsecret_id).Сохранить
role_idиsecret_idв конфигурационном файле сервера в засекреченном виде в файле форматаconfig.yaml, одновременно настроив остальные параметры для работы с SecMan:#Secman client_encryption_options: enabled: true ssl_context_factory: class_name: com.sbt.cassandra.secman.SecmanSslContextFactory parameters: secman.endpoint: <адрес сервера SecMan> secman.namespace: <namespace для Vector DB в SecMan> secman.role_id: <зашифрованное значение role_id> secman.secret_id: <зашифрованное значение secret_id> secman.fetch.role: <имя роли для доступа к PKI> secman.fetch.mount.path: <путь до PKI движка> secman.fetch.cn: <none> secman.fetch.refresh.before.sec: <интервал времени перед моментом устаревания текущего сертификата, в течении которого производятся попытки обновления сертификата. В секундах> truststore: /path/to/truststore.jks truststore_password: <password>
Для засекречивания можно воспользоваться утилитой из поставки — vdb-encrypt-secret.
Для работы через cqlshrc:
Получите или сгенерируйте pem-сертификат.
Измените конфигурационный файл
cqlshrc, например:
[connection]
hostname = { IP_ADDRESS }
port = { PORT }
[ssl]
certfile = /path/to/pem/cert.pem
Пример создания pem-сертификата:
Получите токен от SecMan:
$ curl --insecure \ --request POST \ --header 'X-Vault-Namespace: { VAULT_NAME }' \ --data '{"role_id": "{ ROLE_ID }", "secret_id": "{ SECRET_ID}"}' "{ SECMAN_ADDRESS}"Значение токена будет в поле client_token.
Сгенерируйте сертификат:
$ curl --insecure \ -k \ --header 'X-Vault-Namespace: { VAULT_NAME }' \ --header "X-Vault-Token: {Значение токена}" \ --data '{"common_name": "{COMMON_NAME}", "alt_names": "{ALT_NAME}", "format": "pem"}' \ "{ SECMAN_ADDRESS}"
Клиентские библиотеки#
Помимо самого сервиса, Vector DB предлагает разнообразные клиентские библиотеки для различных языков программирования.
Репозиторий клиента |
Установка |
Версия |
|---|---|---|
|
||
|
||
|
||
|
||
|
||
Скачайте и установите соответствующую библиотеку для работы.