Установка прокси для API пробок
Важное примечание:
Все пароли и ключи в этом разделе приведены в иллюстративных целях.
При реальной установке рекомендуется использовать более сложные и надёжные пароли.
1. Перед установкой
-
По возможности познакомьтесь с:
-
Убедитесь, что выполнены необходимые предварительные шаги:
-
Соберите необходимые данные, заданные или полученные на предыдущих шагах:
Объект Пример значения Как получить значение Endpoint зеркала реестра Docker docker.storage.example.local:5000
См. Получение артефактов установки Секрет Kubernetes для доступа к зеркалу реестра Docker onpremise-registry-creds
См. Получение артефактов установки -
Убедитесь, что удовлетворены требования к ресурсам, приведенные в Helm-чарте. Подробнее о том, как это сделать, смотрите в документе Системные требования.
Примечание
Содержание Helm-чарта, описанное в данном разделе, актуально для последней версии On-Premise (см. Релизы). Чтобы изучить параметры для более ранних версий, откройте values.yaml в GitHub и введите номер нужной версии комплекса (например, 1.18.0) в переключателе тегов слева.
2. Установите прокси для API пробок
-
Создайте конфигурационный файл для Helm. Подробное описание доступных параметров см. здесь.
Пример файла уже заполнен всеми необходимыми данными, собранными на предыдущих этапах.
values-traffic-proxy.yaml
dgctlDockerRegistry: docker.storage.example.local:5000
imagePullSecrets: [onpremise-registry-creds]
replicaCount: 1
proxy:
host: https://traffic-jams.2gis.com
worker:
processes: 2
connections: 1024
log:
customFormats: []
# - name: small
# escape: json
# format: |
# '{"time_local":"$time_local",'
# '"remote_addr":"$remote_addr",'
# '"request":"$request",'
# '"status":"$status",'
# '"host":"$host"}'
errorLog:
level: error
accessLog: '/dev/null'
# accessLog: '/dev/stdout main'
keepaliveTimeout: 65
locations: []
# - path: /test/
# definition: |
# default_type text/html;
# return 200 "<!DOCTYPE html><h2>test page</h2>\n";
httpServers:
{}
# examplecfg: |
# server {
# listen 0.0.0.0:8080;
# location / {
# default_type text/html;
# return 200 "<!DOCTYPE html><h2>test page</h2>\n";
# }
# }
resources:
requests:
cpu: 10m
memory: 32Mi
limits:
cpu: 500m
memory: 256Mi
ingress:
enabled: true
className: nginx
hosts:
- host: traffic-proxy.example.com
paths:
- path: /
pathType: Prefix
tls: []
#- hosts:
# - traffic-proxy-api.example.com
# secretName: secret.tlsГде:
dgctlDockerRegistry
: endpoint вашего реестра Docker, в котором находятся образы сервисов программного комплекса 2ГИС.imagePullSecrets
: Kubernetes Secrets для доступа к реестру Docker, в котором находятся образы сервисов программного комплекса 2ГИС.replicaCount
: число реплик сервиса NGINX.proxy
: настройки прокси-сервера.host
: FQDN публичного сервера обновлений для пробок 2ГИС. Список доступных серверов приведен в разделе Архитектура.worker
: настройки рабочих процессов.processes
: количество рабочих процессов.connections
: количество соединений на одном рабочем процессе.
log
: настройки логирования.customFormats
: список форматов записей логов для использования в конфигурации NGINX.errorLog.level
: уровень логирования ошибок. Допустимые значения:debug
,info
,notice
,warn
,error
,crit
,alert
,emerg
.accessLog
: логирование доступа.
keepaliveTimeout
: таймаут keep-alive соединения.locations
: дополнительные блокиlocation
, которые будут включены в конфигурацию NGINX.httpServers
: дополнительные блокиserver
, которые будут включены в конфигурацию NGINX.
resources
: настройки вычислительных ресурсов для сервиса. Чтобы узнать рекомендуемые значения ресурсов, см. Вычислительные ресурсы.ingress
: конфигурация ресурса Ingress. Адаптируйте приведенную конфигурацию для соответствия используемому вами Ingress. Обратите внимание, что путь для хоста должен указывать на/
.
-
Установите сервис с помощью Helm, используя подготовленный конфигурационный файл
values-traffic-proxy.yaml
:helm upgrade --install --atomic --wait-for-jobs --values ./values-traffic-proxy.yaml traffic-proxy 2gis-on-premise/traffic-proxy
3. Проверьте работоспособность установленного сервиса
1. Проверьте работу прокси для API пробок
В браузере перейдите по адресу, который указан в параметре ingress.hosts[0].host
конфигурационного файла для установки прокси для API пробок, и укажите путь /traffic/moses/speeds5.json
. Например, traffic-proxy-api.example.com/traffic/moses/speeds5.json
.
Либо выполните GET-запрос к аналогичному адресу:
curl -X GET https://traffic-proxy-api.example.com/traffic/moses/speeds5.json
В ответе вы должны получить 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-объект с полем
пробки
и временем последнего получения данных.
-
Что дальше?
-
Узнайте, как обновить прокси для API пробок.
-
Установите другие продукты программного комплекса 2ГИС:
-
Изучите рекомендации по обслуживанию системы: