Pavel
да, на уровне аппа понятно как решать, но аппом мы не управляем :(
Sergey
а допустим у меня директ респонс
Sergey
)
Sergey
методы балансировки
Sergey
один из них директ-респонс
Sergey
хотя, честно сказать, как его реализовать в кубере я не представляю себе
bebebe
возможно по этому и не улавливаю
Etki
да в любом случае балансировщиком не все решается, если условный SQL пркосировать, то от падения посередине транзакции ничего не спасет, все равно придется повторять запрос с самого начала
Sergey
bebebe
видимо в ваших и их тестах преследовались разные задачи
bebebe
впрочем, задайте вопрос автору
Sergey
ну то так мысли в слух были, я уже ко всему этому философски отношусь
Etki
bebebe
есть ойти-архитекты, ойти-девелоперы, ойти-qa, ойти-деплоймент-инженеры, ойти-девопсы и прочее
пора уже вводить ойти-философы
Sergey
Почему?
-с колличество конкурентных запросов в секунду, если их больше 1 на ядро, то начинается уже влияние друг на друга, но и тут есть нюансы
Sergey
плюс я в том видео не увидел на каких конфигах работает нгинкс и хапрокси, нгринкс по дефолту чекает порт бэкенда, жив он или нет, а вот хапрокси я тупо не помню, чекаит ли он что-то по дефолту)
Etki
Ну так это же не параллельная обработка
Etki
Там нет треда, который что-то считает до того момента, пока запрос не вернулся назад
bebebe
Etki
там в описании конфиги
Pavel
там в видосике
Pavel
frontend http
bind *:80
mode http
default_backend web-backend
backend web-backend
balance roundrobin
mode http
server web1 22.22.22.2:3000 check
server web2 22.22.22.3:3000 check
server web3 22.22.22.5:3000 check
Sergey
да вижу в описании
Sergey
спасибо
Pavel
яндекс танк иожет 100к в секунду )
Pavel
заявлено
Sergey
да слышал, опять же на какой машине
Sergey
)
Pavel
обычный десктоп
Sergey
вот у меня в инфре есть машины под сотню ядер и пол тера памяти
Sergey
на ней 100к - это вообще неочем
Sergey
)
Pavel
у меня, я бомбитл, раскручивал до 10к
Sergey
сетевка норм у тебя была?
Pavel
обычный гигабит
Pavel
https://github.com/yandex/yandex-tank
Pavel
ну я апачом не пользовалься, а танк порекомендую
Sergey
у нас ребята свои модули нгинкса им тестили
Sergey
как раз на той тачке что я написал выше)
Sergey
да и опять же к тому видео, таймауты, на сколько я помню в хапрокси их дофига, и какие там по дефолту есть с каким временем
Sergey
у нгинкса вроде по дефолту чекается каждые 5 секунд порт бэкенда
Sergei
Serega
wrk еще крутой тул. ab это детский сад.
Serega
wrk по перфомансу на уровне нжинкс
Volodymyr
привет! никто не натыкался на best practices по http health checks?
Etki
там нет такого пространства для свободной мысли, чтобы были какие-то лучшие практики и плохие практики
Etki
возвращать большое тело ответа нет смысла разве что. плюс использовать коды 20х/503. но это вроде и так само по себе понятно.
Maksim
Maksim
Всё равно Куебр тело не читает как я понял
Volodymyr
Etki
нет, это всё не имеет отношения к здоровью сервиса
Etki
точнее, это все не имеет отношения к здоровью конкретного процесса и к необходимости его перезапускать
Maksim
Maksim
У кубера две проверки
Maksim
1. Проверка жизни самого контейнера,
Maksim
2. Проверка, а может ли он обрабатывать траффик
Maksim
при фейле на первой, конейтер перезапускается
Maksim
при фейле на второй под выводится из сервиса.
Vitalii
если заморочиться, можно в своём приложении хэндлер написать, который проверяет нужные вещи: например что кэши некие прогреты для readinessProbe
bebebe
этого не следует делать
Vitalii
хозяин барин:)
Vitalii
у нас например в readiness проверяется, что приложение подключилось ко всем нужным бд и встало в кластер своих товарищей
Oleksandr
+
Maksim
bebebe
Почему?
у меня есть глубокая уверенность в том, что если приложение запущенное в поде каким-либо образом контактирует с k8s api и проверяет стейты - это означает что где-то на этапе проектирования была допущена ошибка
Maksim
почему же?
Oleksandr
потому что приложение должно работать на абстрактном окружении и не знать о его особенностях
bebebe
это должен разруливать сам k8s
Oleksandr
и тем более туда не лазить
bebebe
я не против такой практики - но на мой взгляд это явный признак того, что-то где-то в начале не доглядели, или где-то сам k8s не очень
Maksim
k8s может разрулить то лько то что ниходит в нём
Maksim
и досточно кластеризрованно
Maksim
а если у тебя есть коннект к внешней БД?
Maksim
как k8s это разрлуит?
Maksim
вариант. у тебя приложение допусти 8 подов