Перейти к основному содержимому

Установка прокси для API пробок

Важное примечание:

Все пароли и ключи в этом разделе приведены в иллюстративных целях.

При реальной установке рекомендуется использовать более сложные и надёжные пароли.

1. Перед установкой

  1. По возможности познакомьтесь с:

  2. Убедитесь, что выполнены необходимые предварительные шаги:

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

    ОбъектПример значенияКак получить значение
    Endpoint зеркала реестра Dockerdocker.storage.example.local:5000См. Получение артефактов установки
    Секрет Kubernetes для доступа к зеркалу реестра Dockeronpremise-registry-credsСм. Получение артефактов установки
    Ключ лицензии на программный комплекс 2ГИСDEMO-KEY-DGCTL-AAAAAA-BBBBBBСм. Получение лицензии на программный комплекс 2ГИС
  4. Убедитесь, что удовлетворены требования к ресурсам, приведённые в Helm-чарте. Подробнее о том, как это сделать, смотрите в документе Системные требования.

    Примечание

    Содержание Helm-чарта, описанное в данном разделе, актуально для последней версии API-платформы (см. Релизы API-платформы). Чтобы изучить параметры для более ранних версий, откройте values.yaml в GitHub и в списке тегов слева выберите тег Platform-<версия>.

2. Установите прокси для API пробок

Для использования сервисами навигации

  1. Создайте конфигурационный файл для Helm. Подробное описание доступных параметров см. здесь.

    Пример файла уже заполнен всеми необходимыми данными, собранными на предыдущих этапах.

    values-traffic-proxy-navi.yaml
    dgctlDockerRegistry: docker.storage.example.local:5000

    imagePullSecrets: [onpremise-registry-creds]

    replicaCount: 1

    proxy:
    host: https://datagateway.api.2gis.com
    locationDG: true
    licenseKey: DEMO-KEY-DGCTL-AAAAAA-BBBBBB

    ingress:
    enabled: true
    className: nginx
    hosts:
    - host: traffic-proxy-navi.example.com
    paths:
    - path: /
    pathType: Prefix
    tls: []
    #- hosts:
    # - traffic-proxy-navi.example.com
    # secretName: secret.tls

    Где:

    • dgctlDockerRegistry: endpoint вашего реестра Docker, в котором находятся образы сервисов программного комплекса 2ГИС.
    • imagePullSecrets: Kubernetes Secrets для доступа к реестру Docker, в котором находятся образы сервисов программного комплекса 2ГИС.
    • replicaCount: число реплик сервиса NGINX.
    • proxy: настройки прокси-сервера.
      • host: доменное имя, IP-адрес или URL публичного сервера обновлений для пробок 2ГИС. Список доступных серверов приведен в разделе Архитектура.
      • locationDG: включает дополнительные контексты для работы с datagateway.api.2gis.com.
      • licenseKey: ключ лицензии на программный комплекс 2ГИС. Требуется, если locationDG имеет значение true.
    • ingress: конфигурация ресурса Ingress. Адаптируйте приведённую конфигурацию для соответствия используемому вами Ingress. Обратите внимание, что путь для хоста должен указывать на /.
  2. Установите сервис с помощью Helm, используя подготовленный конфигурационный файл values-traffic-proxy-navi.yaml:

    helm upgrade --install --atomic --wait-for-jobs --values ./values-traffic-proxy-navi.yaml traffic-proxy-navi 2gis-on-premise/traffic-proxy

Для использования сервисами карт

  1. Создайте конфигурационный файл для Helm. Подробное описание доступных параметров см. здесь.

    Пример файла уже заполнен всеми необходимыми данными, собранными на предыдущих этапах.

    values-traffic-proxy-map.yaml
    dgctlDockerRegistry: docker.storage.example.local:5000

    imagePullSecrets: [onpremise-registry-creds]

    replicaCount: 1

    proxy:
    host: https://jam.api.2gis.com
    locationDG: false

    ingress:
    enabled: true
    className: nginx
    hosts:
    - host: traffic-proxy-map.example.com
    paths:
    - path: /
    pathType: Prefix
    tls: []
    #- hosts:
    # - traffic-proxy-map.example.com
    # secretName: secret.tls

    Где:

    • dgctlDockerRegistry: endpoint вашего реестра Docker, в котором находятся образы сервисов программного комплекса 2ГИС.
    • imagePullSecrets: Kubernetes Secrets для доступа к реестру Docker, в котором находятся образы сервисов программного комплекса 2ГИС.
    • replicaCount: число реплик сервиса NGINX.
    • proxy: настройки прокси-сервера.
      • host: доменное имя, IP-адрес или URL публичного сервера обновлений для пробок 2ГИС. Список доступных серверов приведен в разделе Архитектура.
      • locationDG: включает дополнительные контексты для работы с datagateway.api.2gis.com.
      • licenseKey: ключ лицензии на программный комплекс 2ГИС. Требуется, если locationDG имеет значение true.
    • ingress: конфигурация ресурса Ingress. Адаптируйте приведённую конфигурацию для соответствия используемому вами Ingress. Обратите внимание, что путь для хоста должен указывать на /.
  2. Установите сервис с помощью Helm, используя подготовленный конфигурационный файл values-traffic-proxy-map.yaml:

    helm upgrade --install --atomic --wait-for-jobs --values ./values-traffic-proxy-map.yaml traffic-proxy-map 2gis-on-premise/traffic-proxy

3. Проверьте работоспособность установленного сервиса

Для использования сервисами навигации

1. Проверьте работу прокси для API пробок

Выполните следующие запросы к адресу, указанному в параметре ingress.hosts[0].host конфигурационного файла для установки прокси API пробок для сервисов навигации:

curl -X GET https://traffic-proxy-navi.example.com/eca/traffic/moses/speeds5.json
curl -X GET https://traffic-proxy-navi.example.com/forecast/index.json
curl -X GET https://traffic-proxy-navi.example.com/long-forecast/index.json
curl -X GET https://traffic-proxy-navi.example.com/eta/eta-predictions/index.json
curl -X GET https://traffic-proxy-navi.example.com/navi-castle/restrictions_index.json.zip --output restrictions_index.json.zip
curl -X GET https://traffic-proxy-navi.example.com/navi-castle/restricted_transport.json.zip --output restricted_transport.json.zip

В ответе вы должны получить JSON-объекты и валидные архивы.

2. Проверьте получение данных пробок сервисом навигации

Чтобы проверить, что сервис Navi-Back получает данные пробок через прокси:

  1. Выполните любой из подготовительных шагов:

    • Убедитесь, что в конфигурационном файле для установки сервиса Navi-Back задан параметр ingress.enabled: "true". В следующих шагах используйте адрес, который указан в параметре ingress.hosts[0].host конфигурационного файла Navi-Back (например, https://navi-back-ingress.example.com).
    • Пробросьте HTTP-порт контейнера Navi-Back на уровень хост-сети для обращения к сервисным endpoint-ам. В следующих шагах используйте IP-адрес и порт хоста.
  2. Проверьте время последнего получения данных о пробках одним из способов:

    • Получите значения метрик Navi-Back в формате Prometheus через endpoint /metrics. Добавьте к адресу из подготовительного шага путь /metrics и отправьте GET-запрос. Пример:

      curl -X GET https://navi-back-ingress.example.com/metrics

      Ответ должен содержать метрики mosesd_jams (временную метку последнего получения данных пробок в формате UNIX timestamp) и mosesd_jams_delay (время, прошедшее с последнего момента получения данных). Если эти метрики отсутствуют, сервис не смог получить данные о пробках через прокси.

    • В браузере перейдите по адресу из подготовительного шага и добавьте к нему путь /city. Например, navi-back-ingress.example.com/city?type=json.

      Вы должны получить HTML-страницу со столбцом пробки и временем последнего получения данных.

    • Отправьте GET-запрос по адресу из подготовительного шага и добавьте к нему путь /city. Например:

      curl -X GET https://navi-back-ingress.example.com/city?type=json

      В ответе вы должны получить JSON-объект с полем пробки и временем последнего получения данных.

Для использования сервисами карт

1. Проверьте работу прокси для API пробок

Выполните один из шагов:

  • В браузере перейдите по адресу, который указан в параметре ingress.hosts[0].host конфигурационного файла для установки прокси API пробок для сервисов карт, и укажите путь /meta?reg=65536,108&time&score. Например, traffic-proxy-map.example.com/meta?reg=65536,108&time&score.

  • Выполните GET-запрос к аналогичному адресу:

    curl -X GET https://traffic-proxy-map.example.com/meta?reg=65536,108&time&score

    Запрос должен выполниться успешно и вернуть результат в виде списка.

2. Проверьте получение данных пробок сервисом MapGL JS API

Чтобы проверить, что сервис MapGL JS API получает данные о пробках через прокси:

  1. Выполните любой из подготовительных шагов:

    • Убедитесь, что в конфигурационном файле для установки сервиса MapGL JS API задан параметр ingress.enabled: "true". В следующих шагах используйте адрес, который указан в параметре ingress.hosts[0].host конфигурационного файла MapGL JS API (например, https://mapgl-js-api.example.com).
    • Пробросьте HTTP-порт контейнера MapGL JS API на уровень хост-сети для обращения к сервисным endpoint-ам. В следующих шагах используйте IP-адрес и порт хоста.
  2. Нажмите на иконку пробок в верхнем правом углу карты. На карте отобразятся пробки, а на кнопке будет указан текущий уровень пробок и соответствующий цвет.

Что дальше?