Anton
и то и другое реализация ingress controller с nginx внутри
Volodymyr
берите от nginxinc
Volodymyr
там нет баги с upstream keepalive
Vlad
А ещё лучше не использовать nginx для балансировки: https://thehftguy.com/2016/10/03/haproxy-vs-nginx-why-you-should-never-use-nginx-for-load-balancing/
Sergei
кстати, какие еще норм ингрессы есть? :)
Anton
берите от nginxinc
я думаю смысл есть только с nginx+ его брать. это круто что k8s не игнорят эти ребята, очень хорошо что мы все в одной направлении идем.
только вот на дефолтном nginx там нечего ловить в плане метрик, как правильно заметил @vadikgo (чет я слепой стал)
Alexey
Alexey
А вот чувак протестировал в сравнении производительности nginx и хапрокси
https://www.youtube.com/watch?v=yQvcHy_tPjI
тут преимущество у "отечественного" производителя)
Anton
Lev
на видео показывают как от запросов падает приложение?
Alexey
нет, приложение падают принудительно и сколько пакетов теряется при переключении
Anton
это несколько топорно было бы не выяснять кто из подов прячется за сервисом, просто кидая на сервисный адрес
Nomadic
а ктото использует nginx-ingress в highload нагрузках для балансировки трафика между подами?
у нас сейчас в среднем 20000rps, сервисы пока на железе с отдельным nginx+ на входе, хотим это в кубер засунуть
Volodymyr
Nomadic
не, динамика больше
Nomadic
go-сервисы на десятке железных серверов
Volodymyr
норм.
Nomadic
что именно норм? :)
Volodymyr
highload
Mikhail [azalio]
у меня есть 12 инсталляций кубера, есть ли простой способ выполнить одну команду kubectl на всех?
Logan
ansible :)
Logan
боюсь это самый простой вариант. Ну или цикл на баше писать
Mikhail [azalio]
эх )
Volodymyr
Anton
что мешает самому темплейт поправить?
Volodymyr
Там просто темплейтом не отделаться, там ещё аннотацию нужно добавлять.. нет времёни
Anonymous
оффтоп: ну че там с истио, кто-нибудь уже рискнул рядом с продакшном положить?
bebebe
кто-нибудь имел дело с http://k8sport.org/ ?
bebebe
есть инвайты?
Салтыдык
инвайт можно получить заполнив форму на главной
bebebe
это понятно, я имел в виду, кто-нибудь в этой системе уже присутствует?
Anonymous
Что нужно сделать чтобы GCE Ingress создал frontend своему ЛБ?
Anonymous
Не совсем понятно зачем аннотации pre-shared-cert и global-static-ip-name, если их все равно приходится ручками выбирать?
Anonymous
Bonus question: зачем мне GCE Ingress если я могу создать все сущности которые он создает через терраформ
G72K
G72K
G72K
Khramov
Народ, а в kubespray можно сделать так, чтобы etcd запускался не в докере, а на хостах? А то я чет немогу найти такого
Alexey
Alexey
Igor
Алексей
Коллеги, есть какое либо вменяемое решение с memcache для кубика?
Logan
Zloy-Dobry
𝚔𝚟𝚊𝚙𝚜
Кто-нибудь в курсе, Kubernetes использует какой-нибудь softdog/watchdog для организации fencing?
G72K
𝚔𝚟𝚊𝚙𝚜
Ну не только, я имею ввиду какой-то механизм который обеспечивает гарантию того, что нода которая неисправна, действительно не исполняет никаких контейнеров прежде чем перезапустить их на другой ноде
Etki
я не уверен, что это физически возможно
𝚔𝚟𝚊𝚙𝚜
Возможно с помощью watchdog, в linux kernel есть ещё специальный модуль - softdog, который создаёт специальное устройство: /dev/watchdog в которое раз в какое-то время могут поступать данные, аля 'I am alive', если данные не поступают в течении минуты инициализируется hard reboot.
𝚔𝚟𝚊𝚙𝚜
Вопрос использует ли что-то подобное kubernetes
𝚔𝚟𝚊𝚙𝚜
Etki
𝚔𝚟𝚊𝚙𝚜
Нет, но мы знаем что если нода не сможет выполнить какую-то проверку и сообщить тем самым что она всё ещё жива, она ребутнется по таймауту
Etki
В теории нода может не знать, что она отрезана. Я не берусь сейчас анализировать, как оно будет с etcd и не знаю, как именно сообщают о своей жизнеспособности ноды внутри кластера, но разрыв сети не обязан быть симметричным с точки зрения ПО. Конкретно предложенный вариант может вызвать перезагрузку всего кластера при деградации сети или просто производительности etcd, так что я сильно не уверен, что такое есть.
𝚔𝚟𝚊𝚙𝚜
Да, и /dev/watchdog как я заметил kubernetes не создаёт, так что похоже конкретно этот метод не используется.
Интересно, каким образом тогда гарантируется единственность тех же statefull подов.
G72K
𝚔𝚟𝚊𝚙𝚜
я думал об этом, но как это будет происходить в случае shared fs, или того же glusterfs
𝚔𝚟𝚊𝚙𝚜
kubernetes как-то на уровне фс разрешит обращаться к хранилке только с конкреной ноды, которая запускает под? - если честно не совсем представляю...
𝚔𝚟𝚊𝚙𝚜
ну или тот же nfs
G72K
Если драйвер не обеспечивает fencing, то это не проблема Kubernetes )
𝚔𝚟𝚊𝚙𝚜
Про режимы монтирования видел, но можно ли режим ReadWriteOnce считать как fencing? - я думаю что нет, или как понять "поддерживает ли драйвер fencing"?
G72K
Ну это задача ФС гарантировать, что режим доступа к данным не нарушен
G72K
Точнее пока это все спихнуто на них.
𝚔𝚟𝚊𝚙𝚜
то есть если я выберу тот же nfs, оно мне ничего не гарантирует, верно?
𝚔𝚟𝚊𝚙𝚜
Почитал о StatefulSets, похоже что все отличие в том, что Kubernetes просто не перезапускает под на другой ноде в слуае отказа первой.
Kubernetes будет держать его в таком состоянии пока нода не вернется, или кто-то вручную не удалит умерший под
𝚔𝚟𝚊𝚙𝚜
вот и весь fencing :)
𝚔𝚟𝚊𝚙𝚜
я так понимаю, что можно замутить скрипт который будет мониторить на предмет умерших подов, потом фенсить ноды, и в случае успеха удалять умершие поды, что бы кубернетес перезапустил их на другой ноде
Mikhail
ну да, впринципе делаешь sidecar к своему сервису, который мониторит состояние твоих pod-ов и осуществляет нужную тебе логику, как например тут: https://github.com/cvallance/mongo-k8s-sidecar
Mikhail
если тебе надо много statefull сервисов держать и оркестрировать стоит подумать, а точно ли тебе k8s подходит... есть ли что-то похожее на dcos-commons для кубера? https://github.com/mesosphere/dcos-commons/