Size: a a a

Kubernetes — русскоговорящее сообщество

2020 December 02

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
Eugene
Я не могу это использовать,т.к. нет поддержи PCRE, а только RE2
Как мне с корнем разрулить?

Вариант с /trade_ws я оставлю на случах, когда название роута поменять не смогу
path: /$
path: /.+$
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
Eugene
нет, не так
^/$ - service-1
/- service-2
/trade_ws - service2

Я уже попробовал разные варианты  с Exact|Path (без регулярок)
Он там такую херню лепит,что вообще ничего не работает
То что ты написал описывается простыми
- path: /
       pathType: Exact
       backend:
         serviceName: service-1
         servicePort: 80
     - path: /
       pathType: Prefix
       backend:
         serviceName: service-2
         servicePort: 80


В nginx в итоге будет
location / {
...
location = / {
...
источник

E

Eugene in Kubernetes — русскоговорящее сообщество
Dmitry Sergeev
То что ты написал описывается простыми
- path: /
       pathType: Exact
       backend:
         serviceName: service-1
         servicePort: 80
     - path: /
       pathType: Prefix
       backend:
         serviceName: service-2
         servicePort: 80


В nginx в итоге будет
location / {
...
location = / {
...
Делал я это
Дальше мне нужно регулярку использовать для 100500 роутов
Если ее не использовать, а пытаться через PREFIX,то запросы к этим роутам почему-то идут на service-2
источник

EA

Evgeniy Abramov in Kubernetes — русскоговорящее сообщество
Коллеги может кто помочь, я использую чарт вот этот https://github.com/lwolf/stolon-chart для stolon postgres. Все задеплоил, все работает, но не могу понять почему нет метрик Postgres в prometheus, может кто подсказать как их и где можно включить или нужно ставить экспортера?
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
Eugene
Делал я это
Дальше мне нужно регулярку использовать для 100500 роутов
Если ее не использовать, а пытаться через PREFIX,то запросы к этим роутам почему-то идут на service-2
я тебе же выше писал и цитировал доку, что если ты используешь регулярки, то nginx ingress полностью ВСЕ location будет подразумивать регярками и поставит перед ними ~*
Конкретно твоя задача, только что была описана так:
^/$ - service-1
/- service-2
/trade_ws - service2

ее решение:
- path: /
       pathType: Exact
       backend:
         serviceName: service-1
         servicePort: 80
     - path: /
       pathType: Prefix
       backend:
         serviceName: service-2
         servicePort: 80


Задачу с бОльшим количеством маршрутов, ты так и не описал внятно
источник

E

Eugene in Kubernetes — русскоговорящее сообщество
Dmitry Sergeev
я тебе же выше писал и цитировал доку, что если ты используешь регулярки, то nginx ingress полностью ВСЕ location будет подразумивать регярками и поставит перед ними ~*
Конкретно твоя задача, только что была описана так:
^/$ - service-1
/- service-2
/trade_ws - service2

ее решение:
- path: /
       pathType: Exact
       backend:
         serviceName: service-1
         servicePort: 80
     - path: /
       pathType: Prefix
       backend:
         serviceName: service-2
         servicePort: 80


Задачу с бОльшим количеством маршрутов, ты так и не описал внятно
Да, я с этим пришел в этот чат за помощью
источник

E

Eugene in Kubernetes — русскоговорящее сообщество
Dmitry Sergeev
я тебе же выше писал и цитировал доку, что если ты используешь регулярки, то nginx ingress полностью ВСЕ location будет подразумивать регярками и поставит перед ними ~*
Конкретно твоя задача, только что была описана так:
^/$ - service-1
/- service-2
/trade_ws - service2

ее решение:
- path: /
       pathType: Exact
       backend:
         serviceName: service-1
         servicePort: 80
     - path: /
       pathType: Prefix
       backend:
         serviceName: service-2
         servicePort: 80


Задачу с бОльшим количеством маршрутов, ты так и не описал внятно
Это первая часть задачи

^/$ - service-1
/- service-2
/trade_ws - service2

Она решается EXACT|PREFIX- легко
kubectl get ingress ingress-nginx-main -o yaml
.....
 
 name: ingress-nginx-main
spec:
 rules:
 - host: stage2.mydomain.com
   http:
     paths:
     - backend:
         serviceName: service-1
         servicePort: 80
       path: /
       pathType: Exact
     - backend:
         serviceName: service-2
         servicePort: 80
       path: /
       pathType: Prefix
     - backend:
         serviceName: service-2
         servicePort: 80
       path: /trade_ws
       pathType: Exact


Но когда мне нужно добавить к ней 3 локейшена для работы с роутами,которые должны идти на service-1, то тут EXACT|PREFIX для этих трех локейшенов с роутами ломает все
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
Eugene
Это первая часть задачи

^/$ - service-1
/- service-2
/trade_ws - service2

Она решается EXACT|PREFIX- легко
kubectl get ingress ingress-nginx-main -o yaml
.....
 
 name: ingress-nginx-main
spec:
 rules:
 - host: stage2.mydomain.com
   http:
     paths:
     - backend:
         serviceName: service-1
         servicePort: 80
       path: /
       pathType: Exact
     - backend:
         serviceName: service-2
         servicePort: 80
       path: /
       pathType: Prefix
     - backend:
         serviceName: service-2
         servicePort: 80
       path: /trade_ws
       pathType: Exact


Но когда мне нужно добавить к ней 3 локейшена для работы с роутами,которые должны идти на service-1, то тут EXACT|PREFIX для этих трех локейшенов с роутами ломает все
если ты в этих 3 доп локейшенах указал регялрки, то естественно оно будет ломать, так как у тебя ВСЕ роуты становятся регялрками. Я уже четвертый раз об этом повторяю =)
источник

E

Eugene in Kubernetes — русскоговорящее сообщество
Dmitry Sergeev
если ты в этих 3 доп локейшенах указал регялрки, то естественно оно будет ломать, так как у тебя ВСЕ роуты становятся регялрками. Я уже четвертый раз об этом повторяю =)
Нет, не указывал, конечно, поэтому и ломает, что не находит половину файлов
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
Eugene
Нет, не указывал, конечно, поэтому и ломает, что не находит половину файлов
Ты ЛИБО пишешь все роуты (ВСЕ РОУТЫ, ПОЛНОСТЬЮ ВСЕ РОУТЫ) регулярками, ЛИБО нет.
источник

E

Eugene in Kubernetes — русскоговорящее сообщество
Dmitry Sergeev
если ты в этих 3 доп локейшенах указал регялрки, то естественно оно будет ломать, так как у тебя ВСЕ роуты становятся регялрками. Я уже четвертый раз об этом повторяю =)
А с регулярками все находит. поэтому и отказался от EXACT|PREFIX, вернулся к дефольному
ImplementationSpecific
источник

E

Eugene in Kubernetes — русскоговорящее сообщество
Dmitry Sergeev
Ты ЛИБО пишешь все роуты (ВСЕ РОУТЫ, ПОЛНОСТЬЮ ВСЕ РОУТЫ) регулярками, ЛИБО нет.
Дима, я хочу регулярками т.к. EXACT|PREFIX у меня не заработал так,как я планировал/хотел, когда на него рассчитывал
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
Eugene
А с регулярками все находит. поэтому и отказался от EXACT|PREFIX, вернулся к дефольному
ImplementationSpecific
ну так опиши все регуляками, если вариантов роутов очень много. Твои роуты можно раскидать синтаксисом RE2 без проблем, увеличив количество location'ов
источник

E

Eugene in Kubernetes — русскоговорящее сообщество
Dmitry Sergeev
Ты ЛИБО пишешь все роуты (ВСЕ РОУТЫ, ПОЛНОСТЬЮ ВСЕ РОУТЫ) регулярками, ЛИБО нет.
Роут  с /trade_ws я в крайнем случае просто переименую,но хочу разобраться на его примере, когда прилетит похожий совпадающий роут
Вот с корнем главное решить
Попробую по твоему решению по корешку
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
Eugene
Роут  с /trade_ws я в крайнем случае просто переименую,но хочу разобраться на его примере, когда прилетит похожий совпадающий роут
Вот с корнем главное решить
Попробую по твоему решению по корешку
"^/.+" и "^/$"
источник

E

Eugene in Kubernetes — русскоговорящее сообщество
Dmitry Sergeev
"^/.+" и "^/$"
Сорри, не понимаю((
источник

E

Eugene in Kubernetes — русскоговорящее сообщество
Dmitry Sergeev
Тогда выдели еще один location
location ~* "^/trade_ws$"
location ~* "^/(ru|es|)/(orders|trade|login)"
location ~* "^/(orders|trade|login)/"
location ~* "^/(orders|trade|login)$"
Ты же так предложил попробовать
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
Eugene
Сорри, не понимаю((
Ну ты сказал что тебе надо аналог
location = / {
location / {
регулярками

Вот тебе аналог  "^/$"  и"^/.+"
источник

EA

Evgeniy Abramov in Kubernetes — русскоговорящее сообщество
Парни извините что перебиваю, может кто подсказать как правильно метрики в Prometheus для stolon-a включить?
https://github.com/wrouesnel/postgres_exporter вот это не сильно хочется ставить.
источник

E

Eugene in Kubernetes — русскоговорящее сообщество
Dmitry Sergeev
Ну ты сказал что тебе надо аналог
location = / {
location / {
регулярками

Вот тебе аналог  "^/$"  и"^/.+"
- path: /$  - service-1
- path: /.+$ - service -2

так пойдет в ресурсе ингресса?

Я рассчитваю,что это будет
location ~* "^/$"  - service-1
location ~* "^/.+$" - service-2
источник