Huan
Andor
etcd это key-value хранилище
Andor
и почти ничего более
Huan
а зачем?
Главный архитектор решил. Плюс у нас есть связка haproxy+consul-template+nomad+consul. И в этом стеке есть беда. Когда сервис переезжает, консул темплейт пересобирает конфиг хапрокси и релоадит его. Но у незавершенных коннектов остается процесс старый, который ведет на несушествующий сервис и в итоге юзер получает 502
Andor
кажется проблема в haproxy, а не в вашем стеке
Dmytro
define переезжает
Dmytro
урл меняется?
Andor
видимо один из бекендов вываливается, пропадает из конфига, а текущие подключенные к haproxy клиенты, которые были отпроксированы на этот бекенд, получают 502
Dmytro
ааа ну в кубе такого не будет если сделать норм graceful shutdown у контейнера и проставить таймауты
Huan
Huan
В кубике вроде как это решается, т.к. под может завалиться и перезапуститься на другой ноде, а сервис сам будет на том же ИПе
Huan
И нгинкс не будет релоадиться
Dmytro
конечно если контейнер умрет (например по памяти) то будет тоже но это уже нештатная ситуация
Dmytro
Huan
Dmytro
ингресс смотрит на айпи сервиса которое не меняется
Dmytro
а вот сервис уже раскидывает на поды
Huan
Huan
И подскажите как запилить ингресс по вебсокету?
Dmytro
так а где там динамическое обновление апстримов в случае перезапуска пода на другой ноде?
Andor
а у тебя приложение в старом кластере не может разрегаться из консула раньше, чем помереть?
Huan
И тсп ингресс как настроить?
Huan
Dmytro
а зачем ингресс для тсп?
Dmytro
ингресс это L7
Dmytro
в случае тсп сразу на сервис направляй траффик
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
но вот зачем?
На одном проекте внекубовый сервис должен ходить в куб. Только не спрашивай зачем, у программистов свои тараканы)))
Dmytro
Dmytro
Huan
Я б и на нодепорт сделал, но архитектор ставит задачи(
Andor
и задача звучит "сделай мне через ингресс"?
Andor
или "сделай мне доступ из внешнего сервиса в поды по tcp"?
Huan
Да, и говорит это возможно
Huan
Andor
"сделай мне через ингресс потому что это возможно"?
Andor
чота так себе
Huan
Да, кстати так и сказал
Andor
ну сделай без ингресса, но скажи ему что с ингрессом
yolkov
tcp и udp работает, разберись что не правильно делаешь
Huan
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
Huan
Andor
рулит-то пусть рулит
Andor
а донести до него что это бессмысленно - запрещено?
yolkov
все нормально говорит "архитектор"
yolkov
из вне куба не так много вариантов ходить в куб
Dmytro
это даже вредно, доп точка отказа, усложнение архитектуры на ровном месте и т.д.
Huan
Ну я так понимаю что игресс может все, что может нгинкс. А нгикс может проксировать тсп
Dmytro
как-то микроменеджментом попахивает - это у вас всегда так он делает или только в этом случае вдруг каприз приключился?
yolkov
еще раз. как вы ему посоветуете ходить из сервиса вне куба в куб по тсп?
Andor
да хоть NodePort
Huan
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
так порт открывается на всех нодах