Andor
etcd это key-value хранилище
Andor
и почти ничего более
Huan
а зачем?
Главный архитектор решил. Плюс у нас есть связка haproxy+consul-template+nomad+consul. И в этом стеке есть беда. Когда сервис переезжает, консул темплейт пересобирает конфиг хапрокси и релоадит его. Но у незавершенных коннектов остается процесс старый, который ведет на несушествующий сервис и в итоге юзер получает 502
Andor
кажется проблема в haproxy, а не в вашем стеке
Dmytro
define переезжает
Dmytro
урл меняется?
Andor
видимо один из бекендов вываливается, пропадает из конфига, а текущие подключенные к haproxy клиенты, которые были отпроксированы на этот бекенд, получают 502
Dmytro
ааа ну в кубе такого не будет если сделать норм graceful shutdown у контейнера и проставить таймауты
Huan
etcd это key-value хранилище
Вот это и нужно
Huan
кажется проблема в haproxy, а не в вашем стеке
Да. Можно еще сделать прослойку в виде traefik, но этим стеком занимаюсь не я, хотят все переделать и выбрали кубик
Huan
урл меняется?
Урл не меняется, меняется бекенд
Huan
В кубике вроде как это решается, т.к. под может завалиться и перезапуститься на другой ноде, а сервис сам будет на том же ИПе
Huan
И нгинкс не будет релоадиться
Dmytro
конечно если контейнер умрет (например по памяти) то будет тоже но это уже нештатная ситуация
Andor
И нгинкс не будет релоадиться
динамические обновления апстримов в нжинкс-ингресс вроде недавно сделали совсем
Dmytro
ингресс смотрит на айпи сервиса которое не меняется
Dmytro
а вот сервис уже раскидывает на поды
Huan
И подскажите как запилить ингресс по вебсокету?
Dmytro
так а где там динамическое обновление апстримов в случае перезапуска пода на другой ноде?
Andor
а у тебя приложение в старом кластере не может разрегаться из консула раньше, чем помереть?
Huan
И тсп ингресс как настроить?
Huan
Dmytro
а зачем ингресс для тсп?
Dmytro
ингресс это L7
Dmytro
в случае тсп сразу на сервис направляй траффик
Huan
а зачем ингресс для тсп?
Я видел манифест для тсп
Huan
Я еще хочу почтарь в куб запихнуть
Huan
Нужный сервис для проекта
Andor
если ты видел манифест, то зачем спрашиваешь?
yolkov
https://github.com/kubernetes/ingress-nginx/tree/master/docs/user-guide
Huan
Я видел в кубе при напиле ингресса)
Dmytro
https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/exposing-tcp-udp-services.md
Dmytro
тут вроде всё просто как табуретка
Dmytro
но вот зачем?
Huan
apiVersion: v1 kind: ConfigMap metadata: name: tcp-configmap-example data: 9000: "default/example-go:8080"
Huan
Такое пробовал, но не заработало)
Andor
так себе отчёт о проблеме
Huan
но вот зачем?
На одном проекте внекубовый сервис должен ходить в куб. Только не спрашивай зачем, у программистов свои тараканы)))
Huan
Я б и на нодепорт сделал, но архитектор ставит задачи(
Andor
и задача звучит "сделай мне через ингресс"?
Andor
или "сделай мне доступ из внешнего сервиса в поды по tcp"?
Huan
Да, и говорит это возможно
Andor
"сделай мне через ингресс потому что это возможно"?
Andor
чота так себе
Huan
Да, кстати так и сказал
Andor
ну сделай без ингресса, но скажи ему что с ингрессом
yolkov
tcp и udp работает, разберись что не правильно делаешь
yolkov
таам в деплойменте надо указать этот конфиг мап
Dmytro
а объяснить архитектору что ингресс тут лишняя сущность и точка отказа - не вариант вообще?
yolkov
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
yolkov
ну пусть ходит через сервис, причем тут ингресс?
как из вне куба будешь ходить в сервис куба?
Andor
рулит-то пусть рулит
Andor
а донести до него что это бессмысленно - запрещено?
yolkov
все нормально говорит "архитектор"
yolkov
из вне куба не так много вариантов ходить в куб
Dmytro
это даже вредно, доп точка отказа, усложнение архитектуры на ровном месте и т.д.
Huan
Ну я так понимаю что игресс может все, что может нгинкс. А нгикс может проксировать тсп
Dmytro
как-то микроменеджментом попахивает - это у вас всегда так он делает или только в этом случае вдруг каприз приключился?
yolkov
еще раз. как вы ему посоветуете ходить из сервиса вне куба в куб по тсп?
Andor
да хоть NodePort
Andor
нет
Andor
потому что на уровне tcp нет понятия "домен"
yolkov
нод порт не очень штука, она делат тупую балансировку, и та же степень отказа ноды что и ингрес
Ivan
если протокол умеет в SNI, то можно
Dmytro
хмм в каком месте та же степень отказа?
Huan
А нгинкс умеет sni
yolkov
не будет ноды на которую проксируют не будет доступа на сервис
Ivan
https://nginx.org/en/docs/stream/ngx_stream_ssl_preread_module.html
Andor
http://nginx.org/en/docs/stream/ngx_stream_ssl_preread_module.html о, прикольно
Dmytro
так порт открывается на всех нодах