
Huan
21.06.2018
22:17:01
Например в нативных приложениях. У нас есть костыль от ркн, когда лочат наши домены, у нас открывается новое зеркало, это все передается на безобидную страницу в виде хеша, а нативки туда лезут за адресом
И не только это, у нас часто появляются сервисы, потом удаляются
И это все очень геморно руками менеджить

Dmytro
21.06.2018
22:18:49
ну тут я бы посоветовал сделать микросервис который будет выгребать ингресы и в нужном вам виде в json тдавать

Google

Dmytro
21.06.2018
22:19:30
потому что на то что вам надо врядли коробочное решение найдётся

Andor
21.06.2018
22:19:49
Huan я правильно понял, что хотите поменять номад на кубер?

Huan
21.06.2018
22:20:17

Andor
21.06.2018
22:20:35
а зачем?

Huan
21.06.2018
22:21:57

Andor
21.06.2018
22:22:42
etcd это key-value хранилище
и почти ничего более

Huan
21.06.2018
22:27:14
а зачем?
Главный архитектор решил. Плюс у нас есть связка haproxy+consul-template+nomad+consul. И в этом стеке есть беда. Когда сервис переезжает, консул темплейт пересобирает конфиг хапрокси и релоадит его. Но у незавершенных коннектов остается процесс старый, который ведет на несушествующий сервис и в итоге юзер получает 502

Andor
21.06.2018
22:28:16
кажется проблема в haproxy, а не в вашем стеке

Dmytro
21.06.2018
22:28:25
define переезжает
урл меняется?

Andor
21.06.2018
22:33:29
видимо один из бекендов вываливается, пропадает из конфига, а текущие подключенные к haproxy клиенты, которые были отпроксированы на этот бекенд, получают 502

Dmytro
21.06.2018
22:36:53
ааа ну в кубе такого не будет если сделать норм graceful shutdown у контейнера и проставить таймауты

Google

Huan
21.06.2018
22:37:32
В кубике вроде как это решается, т.к. под может завалиться и перезапуститься на другой ноде, а сервис сам будет на том же ИПе
И нгинкс не будет релоадиться

Dmytro
21.06.2018
22:37:45
конечно если контейнер умрет (например по памяти) то будет тоже но это уже нештатная ситуация

Huan
21.06.2018
22:38:40

Andor
21.06.2018
22:38:43

Dmytro
21.06.2018
22:38:47
ингресс смотрит на айпи сервиса которое не меняется
а вот сервис уже раскидывает на поды

Huan
21.06.2018
22:39:15
И подскажите как запилить ингресс по вебсокету?

Dmytro
21.06.2018
22:39:53
так а где там динамическое обновление апстримов в случае перезапуска пода на другой ноде?

Andor
21.06.2018
22:39:54
а у тебя приложение в старом кластере не может разрегаться из консула раньше, чем помереть?

Huan
21.06.2018
22:40:04
И тсп ингресс как настроить?

Dmytro
21.06.2018
22:41:02
а зачем ингресс для тсп?
ингресс это L7
в случае тсп сразу на сервис направляй траффик

Google

Huan
21.06.2018
22:41:41
Я еще хочу почтарь в куб запихнуть
Нужный сервис для проекта

Andor
21.06.2018
22:43:15
если ты видел манифест, то зачем спрашиваешь?

yolkov
21.06.2018
22:43:26
https://github.com/kubernetes/ingress-nginx/tree/master/docs/user-guide

Huan
21.06.2018
22:43:53
Я видел в кубе при напиле ингресса)

Dmytro
21.06.2018
22:44:46
https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/exposing-tcp-udp-services.md
тут вроде всё просто как табуретка
но вот зачем?

Huan
21.06.2018
22:45:28
apiVersion: v1
kind: ConfigMap
metadata:
name: tcp-configmap-example
data:
9000: "default/example-go:8080"
Такое пробовал, но не заработало)

Andor
21.06.2018
22:47:03
так себе отчёт о проблеме

Huan
21.06.2018
22:47:23
но вот зачем?
На одном проекте внекубовый сервис должен ходить в куб. Только не спрашивай зачем, у программистов свои тараканы)))

Dmytro
21.06.2018
22:48:13

Huan
21.06.2018
22:48:52
Я б и на нодепорт сделал, но архитектор ставит задачи(

Andor
21.06.2018
22:49:19
и задача звучит "сделай мне через ингресс"?
или "сделай мне доступ из внешнего сервиса в поды по tcp"?

Huan
21.06.2018
22:49:37
Да, и говорит это возможно

Andor
21.06.2018
22:50:14
"сделай мне через ингресс потому что это возможно"?

Google

Andor
21.06.2018
22:50:18
чота так себе

Huan
21.06.2018
22:50:41
Да, кстати так и сказал

Andor
21.06.2018
22:51:07
ну сделай без ингресса, но скажи ему что с ингрессом

yolkov
21.06.2018
22:51:27
tcp и udp работает, разберись что не правильно делаешь

Huan
21.06.2018
22:52:13

yolkov
21.06.2018
22:53:42
таам в деплойменте надо указать этот конфиг мап

Dmytro
21.06.2018
22:54:14
а объяснить архитектору что ингресс тут лишняя сущность и точка отказа - не вариант вообще?

yolkov
21.06.2018
22:54:43
ngress controller uses the flags --tcp-services-configmap and --udp-services-configmap to point to an existing config map where the key is the external port to use and the value indicates the service to expose

Huan
21.06.2018
22:57:01

Andor
21.06.2018
22:57:17
рулит-то пусть рулит
а донести до него что это бессмысленно - запрещено?

yolkov
21.06.2018
22:57:59
все нормально говорит "архитектор"
из вне куба не так много вариантов ходить в куб

Dmytro
21.06.2018
22:58:34
это даже вредно, доп точка отказа, усложнение архитектуры на ровном месте и т.д.

Huan
21.06.2018
23:00:15
Ну я так понимаю что игресс может все, что может нгинкс. А нгикс может проксировать тсп

Dmytro
21.06.2018
23:00:20
как-то микроменеджментом попахивает - это у вас всегда так он делает или только в этом случае вдруг каприз приключился?

yolkov
21.06.2018
23:01:18
еще раз. как вы ему посоветуете ходить из сервиса вне куба в куб по тсп?

Andor
21.06.2018
23:01:34
да хоть NodePort

Huan
21.06.2018
23:02:00

Google

Andor
21.06.2018
23:02:11
нет
потому что на уровне tcp нет понятия "домен"

yolkov
21.06.2018
23:02:24
нод порт не очень штука, она делат тупую балансировку, и та же степень отказа ноды что и ингрес

Deep Sea
21.06.2018
23:02:30
если протокол умеет в SNI, то можно

Dmytro
21.06.2018
23:02:55
хмм в каком месте та же степень отказа?

Huan
21.06.2018
23:03:14
А нгинкс умеет sni

yolkov
21.06.2018
23:03:31
не будет ноды на которую проксируют не будет доступа на сервис

Deep Sea
21.06.2018
23:03:57
https://nginx.org/en/docs/stream/ngx_stream_ssl_preread_module.html

Andor
21.06.2018
23:04:03
http://nginx.org/en/docs/stream/ngx_stream_ssl_preread_module.html о, прикольно

Dmytro
21.06.2018
23:04:17
так порт открывается на всех нодах

Huan
21.06.2018
23:04:45
Завтра проверю
Спасибо

yolkov
21.06.2018
23:05:01
ну значит ему нужне на сервисе балансер который будет ходить на несколько нод, точно так же можно ходить на несколько ингрессов с тсп портами

Dmytro
21.06.2018
23:06:12

Deep Sea
21.06.2018
23:06:37

Dmytro
21.06.2018
23:06:37
зачем этим должен заниматься сам микросервис?
хмм а этот модуль для TCP SSL и раскидывания по хосту (в тсп пакете) на разные апстримы?

yolkov
21.06.2018
23:08:03
в некоторых случаях нодеопорт вообще вредная штука, пример и з жизни: флюенту можно указать несколько точек отправки, так вот если указать в качестве точек нодепорты разных хостов то при "плохо работающем" поде, флюент выбросит все хосты, т.к. нодепорт будет проксировать раундробином на сломаный под и все хосты выведутся

Dmytro
21.06.2018
23:08:07
что-то я ничего не понимаю если честно

Deep Sea
21.06.2018
23:08:19

Dmytro
21.06.2018
23:17:53
ага, погуглил - оказывается они tcp ssl termination только в плюс версии сделали https://docs.nginx.com/nginx/admin-guide/security-controls/terminating-ssl-tcp/