2ГИС Про | On-Premise | 2GIS Documentation
On-Premise

Установка 2ГИС Про

  1. Ознакомьтесь с основной информацией:

  2. Выполните предварительные шаги:

    1. Подготовка к установке
    2. Получение артефактов установки
    3. Установка сервиса ключей
    4. Установка прокси для API пробок
    5. Установка API для работы с картами
    6. Установка API для работы с поиском
    7. Установка API для работы с навигацией
  3. Соберите необходимые данные, заданные или полученные на предыдущих шагах:

    Объект Пример значения Как получить значение
    Эндпоинт зеркала реестра Docker docker.storage.example.local:5000 См. Получение артефактов установки
    Эндпоинт API сервиса ключей keys.example.local См. Установка сервиса ключей
    Эндпоинт MapGL JS API mapgl.example.local См. Установка API для работы с картами
    Эндпоинт Catalog APIs catalog.example.local См. Установка API для работы с поиском
    Эндпоинт Isochrone API isochrone.example.local См. Установка API для работы с навигацией
    API-ключи MAPGL_KEY
    CATALOG_KEY
    ISOCHRONE_KEY
    См. Установка сервиса ключей
  4. Убедитесь, что удовлетворены требования к ресурсам, приведенные в Helm-чартах:

    Подробнее о том, как это сделать, смотрите в документе Системные требования.

  5. Определите доменные имена для сервиса 2ГИС Про. Например:

    • Доменное имя для API-бэкенда: pro-api.example.local
    • Доменное имя для фронтенда: pro-ui.example.com

Разместите кластер PostgreSQL с доменным именем pro-postgresql.storage.example.local в приватной сети. Предполагается, что кластер работает на стандартном порту 5432.

Настройте кластер PostgreSQL для использования в качестве хранилища:

  1. Подключитесь к кластеру от имени суперпользователя (обычно это postgres).

  2. Создайте пользователя базы данных и установите пароль для него:

    create user dbuser_pro password '';
    
  3. Создайте базу данных, принадлежащую этому пользователю:

    create database onpremise_pro owner dbuser_pro;
    

Разместите S3-совместимое хранилище (например, Ceph) с доменным именем pro-s3.storage.example.local в приватной сети. Предполагается, что хранилище работает на стандартном порту 80.

Настройте S3-совместимое хранилище:

  1. Создайте пользователя, который будет использоваться для сервиса:

    • Access key: ``
    • Secret key: ``

    Запомните ключи доступа для этого пользователя.

  2. Определите названия бакетов (buckets), которые будут использоваться для сервиса. Например:

    • Бакет с ассетами, агрегатами и фильтрами: assets.
    • Бакет с подготовленными данными слоя: layer_data.
    • Бакет с ассетами, агрегатами и фильтрами, созданными пользователем: user_assets.

Разместите кластер Elasticsearch с доменным именем pro-elastic.storage.example.local в приватной сети. Предполагается, что кластер работает на порту 9200.

Настройте кластер:

  1. Создайте пользователя, который будет использоваться для сервиса:

    • Имя пользователя: ``
    • Пароль: ``

    Запомните реквизиты для этого пользователя.

Для установки Pro API используется Helm-чарт. Описание всех параметров представлено в values.yaml.

Чтобы установить Pro API:

  1. Создайте конфигурационный файл 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 APIs.

    • navi: настройки доступа к 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: настройки вычислительных ресурсов для сервиса. Актуальная информация о рекомендуемых значениях настроек представлена в таблице с системными требованиями.

  2. Разверните сервис с помощью Helm, используя подготовленный конфигурационный файл values-pro-api.yaml:

    helm upgrade --install --version=1.10.0 --atomic --values ./values-pro-api.yaml pro-api 2gis-on-premise/pro-api
    

Для установки Pro UI используется Helm-чарт. Описание всех параметров представлено в values.yaml.

Чтобы установить Pro UI:

  1. Создайте конфигурационный файл 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.

  2. Разверните сервис с помощью Helm, используя подготовленный конфигурационный файл values-pro-ui.yaml:

    helm upgrade --install --version=1.10.0 --atomic --values ./values-pro-ui.yaml pro-ui 2gis-on-premise/pro-ui
    

Выполните запрос с использованием 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ГИС: