Установка прокси для API пробок
Важное примечание:
Все пароли и ключи в этом разделе приведены в иллюстративных целях.
При реальной установке рекомендуется использовать более сложные и надёжные пароли.
1. Перед установкой
-
По возможности познакомьтесь с:
-
Убедитесь, что выполнены необходимые предварительные шаги:
-
Соберите необходимые данные, заданные или полученные на предыдущих шагах:
Объект Пример значения Как получить значение Endpoint зеркала реестра Docker docker.storage.example.local:5000См. Получение артефактов установки Секрет Kubernetes для доступа к зеркалу реестра Docker onpremise-registry-credsСм. Получение артефактов установки Ключ лицензии на программный комплекс 2ГИС DEMO-KEY-DGCTL-AAAAAA-BBBBBBСм. Получение лицензии на программный комплекс 2ГИС -
Убедитесь, что удовлетворены требования к ресурсам, приведённые в Helm-чарте. Подробнее о том, как это сделать, смотрите в документе Системные требования.
Примечание
Содержание Helm-чарта, описанное в данном разделе, актуально для последней версии API-платформы (см. Релизы API-платформы). Чтобы изучить параметры для более ранних версий, откройте values.yaml в GitHub и в списке тегов слева выберите тег
Platform-<версия>.
2. Установите прокси для API пробок
Для использования сервисами навигации
-
Создайте конфигурационный файл для Helm. Подробное описание доступных параметров см. здесь.
Пример файла уже заполнен всеми необходимыми данными, собранными на предыдущих этапах.
values-traffic-proxy-navi.yamldgctlDockerRegistry: 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. Обратите внимание, что путь для хоста должен указывать на/.
-
Установите сервис с помощью 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
Для использования сервисами карт
-
Создайте конфигурационный файл для Helm. Подробное описание доступных параметров см. здесь.
Пример файла уже заполнен всеми необходимыми данными, собранными на предыдущих этапах.
values-traffic-proxy-map.yamldgctlDockerRegistry: 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. Обратите внимание, что путь для хоста должен указывать на/.
-
Установите сервис с помощью 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 получает данные пробок через прокси:
-
Выполните любой из подготовительных шагов:
- Убедитесь, что в конфигурационном файле для установки сервиса Navi-Back задан параметр
ingress.enabled: "true". В следующих шагах используйте адрес, который указан в параметреingress.hosts[0].hostконфигурационного файла Navi-Back (например,https://navi-back-ingress.example.com). - Пробросьте HTTP-порт контейнера Navi-Back на уровень хост-сети для обращения к сервисным endpoint-ам. В следующих шагах используйте IP-адрес и порт хоста.
- Убедитесь, что в конфигурационном файле для установки сервиса Navi-Back задан параметр
-
Проверьте время последнего получения данных о пробках одним из способов:
-
Получите значения метрик 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 получает данные о пробках через прокси:
-
Выполните любой из подготовительных шагов:
- Убедитесь, что в конфигурационном файле для установки сервиса 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-адрес и порт хоста.
- Убедитесь, что в конфигурационном файле для установки сервиса MapGL JS API задан параметр
-
Нажмите на иконку пробок в верхнем правом углу карты. На карте отобразятся пробки, а на кнопке будет указан текущий уровень пробок и соответствующий цвет.
Что дальше?
-
Узнайте, как обновить прокси для API пробок.
-
Установите другие продукты программного комплекса 2ГИС:
-
Изучите рекомендации по обслуживанию системы.