Установка прокси для API пробок
Важное примечание:
Все пароли и ключи в этом разделе приведены в иллюстративных целях.
При реальной установке рекомендуется использовать более сложные и надёжные пароли.
1. Перед установкой
-
По возможности познакомьтесь с:
-
Убедитесь, что выполнены необходимые предварительные шаги:
-
Соберите необходимые данные, заданные или полученные на предыдущих шагах:
Объект Пример значения Как получить значение Endpoint зеркала реестра Docker docker.storage.example.local:5000См. Получение артефактов установки Секрет Kubernetes для доступа к зеркалу реестра Docker onpremise-registry-credsСм. Получение артефактов установки -
Убедитесь, что удовлетворены требования к ресурсам, приведенные в Helm-чарте. Подробнее о том, как это сделать, смотрите в документе Системные требования.
Примечание
Содержание Helm-чарта, описанное в данном разделе, актуально для последней версии API-платформы (см. Релизы API-платформы). Чтобы изучить параметры для более ранних версий, откройте values.yaml в GitHub и в списке тегов слева выберите тег
Platform-<версия>.
2. Установите прокси для API пробок
-
Создайте конфигурационный файл для Helm. Подробное описание доступных параметров см. здесь.
Пример файла уже заполнен всеми необходимыми данными, собранными на предыдущих этапах.
values-traffic-proxy.yamldgctlDockerRegistry: 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: доменное имя, IP-адрес или URL публичного сервера обновлений для пробок 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ГИС:
-
Изучите рекомендации по обслуживанию системы: