Установка 2ГИС Про
1. Перед установкой
-
Ознакомьтесь с основной информацией:
-
Выполните предварительные шаги:
-
Соберите необходимые данные, заданные или полученные на предыдущих шагах:
Объект Пример значения Как получить значение Эндпоинт зеркала реестра Docker docker.storage.example.local:5000
См. Получение артефактов установки Эндпоинт API сервиса ключей keys.example.local
См. Установка сервиса ключей Эндпоинт MapGL JS API mapgl.example.local
См. Установка API для работы с картами Эндпоинт Catalog API catalog.example.local
См. Установка API для работы с поиском Эндпоинт Isochrone API isochrone.example.local
См. Установка API для работы с навигацией API-ключи MAPGL_KEY
CATALOG_KEY
ISOCHRONE_KEY
См. Установка сервиса ключей -
Определите доменные имена для сервиса 2ГИС Про. Например:
- Доменное имя для API-бэкенда:
pro-api.example.local
- Доменное имя для фронтенда:
pro-ui.example.com
- Доменное имя для API-бэкенда:
2. Подготовьте инфраструктуру
Настройте PostgreSQL
Разместите кластер PostgreSQL с доменным именем pro-postgresql.storage.example.local
в приватной сети. Предполагается, что кластер работает на стандартном порту 5432
.
Настройте кластер PostgreSQL для использования в качестве хранилища:
-
Подключитесь к кластеру от имени суперпользователя (обычно это
postgres
). -
Создайте пользователя базы данных и установите пароль для него:
create user dbuser_pro password '';
-
Создайте базу данных, принадлежащую этому пользователю:
create database onpremise_pro owner dbuser_pro;
Настройте S3-хранилище
Разместите S3-совместимое хранилище (например, Ceph) с доменным именем pro-s3.storage.example.local
в приватной сети. Предполагается, что хранилище работает на стандартном порту 80
.
Настройте S3-совместимое хранилище:
-
Создайте пользователя, который будет использоваться для сервиса:
Access key
: ``Secret key
: ``
Запомните ключи доступа для этого пользователя.
-
Определите названия бакетов (buckets), которые будут использоваться для сервиса. Например:
- Бакет с ассетами, агрегатами и фильтрами:
assets
. - Бакет с подготовленными данными слоя:
layer_data
. - Бакет с ассетами, агрегатами и фильтрами, созданными пользователем:
user_assets
.
- Бакет с ассетами, агрегатами и фильтрами:
Настройте Elasticsearch
Разместите кластер Elasticsearch с доменным именем pro-elastic.storage.example.local
в приватной сети. Предполагается, что кластер работает на порту 9200
.
Настройте кластер:
-
Создайте пользователя, который будет использоваться для сервиса:
- Имя пользователя: ``
- Пароль: ``
Запомните реквизиты для этого пользователя.
3. Установите 2ГИС Про
Установите Pro API
Для установки Pro API используется Helm-чарт. Описание всех параметров представлено в values.yaml.
Чтобы установить Pro API:
-
Создайте конфигурационный файл
values-pro-api.yaml
:values-pro-api.yaml
dgctlDockerRegistry: '' s3: layerDataBucket: '' userAssetsDataBucket: '' api: serviceAccount: '' tempPath: /tmp allowAnyOrigin: false loggingFormat: simple postgresql: connectionString: '' connectionStringReadonly: '' password: '' key: url: '' token: '' elastic: host: '' credentials: '' redis: host: '' port: '' catalog: url: '' key: '' navi: url: '' key: '' search: url: '' appAssetImporterName: asset-importer appUserAssetImporterName: user-asset-importer assetImporter: repository: 2gis-on-premise/pro-importer tag: 1.0.23 schedule: 0 18 * * * backoffLimit: 2 successfulJobsHistoryLimit: 3 nodeSelector: {} maxParallelJobs: 4 enabled: true startOnDeploy: true resources: requests: cpu: 400m memory: 256M limits: cpu: 1 memory: 1024M
Где:
-
dgctlDockerRegistry
: эндпоинт вашего реестра Docker, в котором находятся образы сервисов On-Premise. Пример:HOST:PORT
. -
s3
: настройки хранилища S3.layerDataBucket
: имя бакета S3 с подготовленными данными слоя.userAssetsDataBucket
: имя бакета S3 с ассетами, агрегатами и фильтрами, созданными пользователем.
-
api
: переменные окружения.serviceAccount
: учетная запись службы Kubernetes.tempPath
: путь к директории, используемой для временных данных.allowAnyOrigin
: политика CORS — разрешить любому источнику выполнять запросы к сервису Pro API.loggingFormat
: формат ведения журнала логирования. Возможные значения:default
— компактный JSON,renderedCompactJson
— отображаемый JSON,simple
— простой текст.
-
postgresql
: настройки доступа к серверу PostgreSQL.connectionString
: строка с данными для подключения к БД PostgreSQL видаServer=SERVER_URL;Database=DB_NAME;UID=USER_NAME;
.connectionStringReadonly
: строка с данными для подключения к БД PostgreSQL, доступной только для чтения видаServer=SERVER_URL;Database=DB_NAME;UID=USER_NAME;
.password
: пароль для подключения к БД PostgreSQL.
-
key
: настройки доступа к сервису управления ключами.url
: URL-адрес сервисаkeys.api
для управления ключами. Пример:HTTP(S)://HOST
.token
: токен доступа дляkeys.api
.
-
elastic
: настройки ElasticSearch.host
: адрес хоста ElasticSearch. Пример:HTTP(S)://HOST:PORT
.credentials
: имя пользователя и пароль для подключения к ElasticSearch видаUSER_NAME:PASSWORD
.
-
redis
: настройки Redis.host
: адрес хоста Redis. Пример:HTTP(S)://HOST
.port
: номер порта.
-
catalog
: настройки доступа к Catalog API.url
: URL-адрес Catalog API. Пример:HTTP(S)://HOST
.key
: ключ доступа к Catalog API.
-
navi
: настройки доступа к Isochrone API.url
: URL-адрес Isochrone API. Пример:HTTP(S)://HOST
.key
: ключ доступа к Isochrone API.
-
search
: настройки доступа к Search API.url
: URL-адрес Search API. Пример:HTTP(S)://HOST
.
-
appAssetImporterName
: имя cron-задания для импорта данных. -
appUserAssetImporterName
: имя пользовательского cron-задания для импорта данных. -
assetImporter
: настройки cron-задания для импорта данных.repository
: адрес репозитория с Docker-образом.tag
: метка Docker-образа.schedule
: расписание выполнения задания в cron-формате. Например:*/10 * * * *
.backoffLimit
: количество повторных попыток, после которых задание будет считаться неуспешным.successfulJobsHistoryLimit
: ограничение на размер истории выполненных заданий.nodeSelector
: селектор узлов Kubernetes.maxParallelJobs
: количество заданий импорта, которые могут быть запущены одновременно.enabled
: включенAssetImporter
или нет.startOnDeploy
: импорт данных должен начинаться при установке или обновлении сервиса.
-
resources
: настройки вычислительных ресурсов для сервиса. Актуальная информация о рекомендуемых значениях настроек представлена в таблице с системными требованиями.
-
-
Разверните сервис с помощью Helm, используя подготовленный конфигурационный файл
values-pro-api.yaml
:helm upgrade --install --version=1.4.5 --atomic --values ./values-pro-api.yaml pro-api 2gis-on-premise/pro-api
Установите Pro UI
Для установки Pro UI используется Helm-чарт. Описание всех параметров представлено в values.yaml.
Чтобы установить Pro UI:
-
Создайте конфигурационный файл
values-pro-ui.yaml
:values-pro-ui.yaml
dgctlDockerRegistry: '' ui: appLocale: en_AE appInitialMapCenter: [37.64, 55.74] api: url: '' mapgl: host: '' key: '' resources: requests: cpu: 300m memory: 256Mi limits: cpu: 1 memory: 384Mi ingress: enabled: true hosts: - host: ''
Где:
-
dgctlDockerRegistry
: эндпоинт вашего реестра Docker, в котором находятся образы сервисов On-Premise. Пример:HOST:PORT
. -
ui.appLocale
: язык приложения. Возможные значения:en_AE
,ru_RU
. -
ui.appInitialMapCenter
: координаты карты по умолчанию. Состоят из двух чисел в массиве:[lng, lat]
. Например:[55.27, 25.2]
для Дубая,[37.64, 55.74]
для Москвы. -
ui.api.url
: базовый URL для Pro API со слешем в конце. Пример:HTTP(S)://HOST/
. -
ui.mapgl.host
: хост сервиса MapGL JS API без протокола и без слеша в конце. Пример:HOST
. -
ui.mapgl.key
: API ключ для сервиса MapGL JS API. -
ui.resources
: настройки вычислительных ресурсов для сервиса. Актуальная информация о рекомендуемых значениях настроек представлена в таблице с системными требованиями. -
ui.ingress
: конфигурация ресурса Ingress. Адаптируйте приведенную конфигурацию для соответствия используемому вами Ingress. URL, указанный в параметреingress.hosts.host
, должен быть доступен извне вашего кластера Kubernetes, чтобы пользователи из приватного сегмента сети могли получить доступ к ресурсам по этому URL.
-
-
Разверните сервис с помощью Helm, используя подготовленный конфигурационный файл
values-pro-ui.yaml
:helm upgrade --install --version=1.4.5 --atomic --values ./values-pro-ui.yaml pro-ui 2gis-on-premise/pro-ui
4. Проверьте работоспособность установленных сервисов
Выполните запрос с использованием cURL или аналогичного инструмента:
https://2GIS_API_HOST/building/items?bounds=POLYGON%20%28%2854.605596%2024.429549%2C%2054.539606%2024.429549%2C%2054.539606%2024.413378%2C%2054.605596%2024.413378%2C%2054.605596%2024.429549%29%29
Ответ должен иметь код состояния HTTP 200
и содержать список элементов в формате JSON.
Что дальше?
Узнайте, как обновить сервисы:
Установите другие продукты программного комплекса 2ГИС: