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
там нет баги с upstream keepalive
это не бага ж =)) прост есть сложности с ws & keepalive
Anton
А ещё лучше не использовать nginx для балансировки: https://thehftguy.com/2016/10/03/haproxy-vs-nginx-why-you-should-never-use-nginx-for-load-balancing/
видели vts exporter для prometheus для метрик из nginx-ingress? я думал будет бомбическое сравнение по методам балансировки, прилипанию по куке, обработка кук и тд. а тут фигня
Anton
берите от nginxinc
я думаю смысл есть только с nginx+ его брать. это круто что k8s не игнорят эти ребята, очень хорошо что мы все в одной направлении идем. только вот на дефолтном nginx там нечего ловить в плане метрик, как правильно заметил @vadikgo (чет я слепой стал)
Alexey
А ещё лучше не использовать nginx для балансировки: https://thehftguy.com/2016/10/03/haproxy-vs-nginx-why-you-should-never-use-nginx-for-load-balancing/
для ingressa не имеет значения, там в качестве апстрима только 1 сервис кубернетеса, который на самом деле просто iptables правило, которое рандомом распределяет пакеты м/у другими подами. Да и сама статья плохая, которую в 3 слова можно было сказать.
Alexey
А вот чувак протестировал в сравнении производительности nginx и хапрокси https://www.youtube.com/watch?v=yQvcHy_tPjI тут преимущество у "отечественного" производителя)
Lev
на видео показывают как от запросов падает приложение?
Alexey
нет, приложение падают принудительно и сколько пакетов теряется при переключении
Alexey
у которого именно ингресса так? в nginx-ingress адреса подов попадают в upstreams и балансировка по адресам подов происходит
хм, я использую ха, и всё таки похоже балансировка между подами) почему-то был уверен, что к сервису привязан, т.к. конфигурация ингресов указывает на сервиснэйм
Anton
это несколько топорно было бы не выяснять кто из подов прячется за сервисом, просто кидая на сервисный адрес
Nomadic
а ктото использует nginx-ingress в highload нагрузках для балансировки трафика между подами? у нас сейчас в среднем 20000rps, сервисы пока на железе с отдельным nginx+ на входе, хотим это в кубер засунуть
Volodymyr
это не бага ж =)) прост есть сложности с ws & keepalive
ну как же ш не бага, если та еще бага: https://github.com/kubernetes/ingress-nginx/issues/986
Nomadic
не, динамика больше
Nomadic
go-сервисы на десятке железных серверов
Volodymyr
норм.
Nomadic
что именно норм? :)
Volodymyr
highload
Mikhail [azalio]
у меня есть 12 инсталляций кубера, есть ли простой способ выполнить одну команду kubectl на всех?
Logan
ansible :)
Logan
боюсь это самый простой вариант. Ну или цикл на баше писать
Mikhail [azalio]
эх )
Anton
ну как же ш не бага, если та еще бага: https://github.com/kubernetes/ingress-nginx/issues/986
недофикс есть https://github.com/kubernetes/ingress-nginx/pull/1628 но он только хуже делает имхо =) нужно лучше продумать условие в шаблоне, чтобы кипэлайв и с вебсокетами работал
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
а кто нить сравнивал https://github.com/nginxinc/kubernetes-ingress и https://github.com/kubernetes/ingress-nginx pros\cons?
Опенсорсный делают нелюди, на переменах, между перекурами
Khramov
Народ, а в kubespray можно сделать так, чтобы etcd запускался не в докере, а на хостах? А то я чет немогу найти такого
Khramov
etcd_deployment_type: host в group_vars/k8s-cluster.yml
Спасибо, вроде разобрался, хотя все равно не работает, потому-что в roles/etcd/tasks нет файла нужного :) Еще 1 вопрос тогда, если можно. Можно ли как-то включить kube-proxy через ipvs, а не iptables?
Алексей
Коллеги, есть какое либо вменяемое решение с memcache для кубика?
Logan
Коллеги, есть какое либо вменяемое решение с memcache для кубика?
В смысле? Контейнер поднимается за 5 минут
Zloy-Dobry
В смысле? Контейнер поднимается за 5 минут
Думаю что меньше, чем пять минут.
Алексей
В смысле? Контейнер поднимается за 5 минут
В смысле кластеризованное. С автопривязкой сервиса к текущему мастеру.
𝚔𝚟𝚊𝚙𝚜
Кто-нибудь в курсе, Kubernetes использует какой-нибудь softdog/watchdog для организации fencing?
𝚔𝚟𝚊𝚙𝚜
Ну не только, я имею ввиду какой-то механизм который обеспечивает гарантию того, что нода которая неисправна, действительно не исполняет никаких контейнеров прежде чем перезапустить их на другой ноде
Etki
я не уверен, что это физически возможно
G72K
я не уверен, что это физически возможно
У кластеров часто бывает отдельный механиз, например доступ к питанию, оно дергает рубильник, что б гарантировать что нода точно здохла
𝚔𝚟𝚊𝚙𝚜
Возможно с помощью watchdog, в linux kernel есть ещё специальный модуль - softdog, который создаёт специальное устройство: /dev/watchdog в которое раз в какое-то время могут поступать данные, аля 'I am alive', если данные не поступают в течении минуты инициализируется hard reboot.
𝚔𝚟𝚊𝚙𝚜
Вопрос использует ли что-то подобное kubernetes
Etki
У кластеров часто бывает отдельный механиз, например доступ к питанию, оно дергает рубильник, что б гарантировать что нода точно здохла
Здесь про другое. Но даже в этом случае при проблемах в сети управляющий узел имеет некислый шанс вместе со связью с нодой потерять и связь с рубильником. А если нода сама занимается своим управлением, то тут отдельный вопрос относительно того, будет ли она замечать, что плохо себя ведет.
𝚔𝚟𝚊𝚙𝚜
Нет, но мы знаем что если нода не сможет выполнить какую-то проверку и сообщить тем самым что она всё ещё жива, она ребутнется по таймауту
Etki
В теории нода может не знать, что она отрезана. Я не берусь сейчас анализировать, как оно будет с etcd и не знаю, как именно сообщают о своей жизнеспособности ноды внутри кластера, но разрыв сети не обязан быть симметричным с точки зрения ПО. Конкретно предложенный вариант может вызвать перезагрузку всего кластера при деградации сети или просто производительности etcd, так что я сильно не уверен, что такое есть.
𝚔𝚟𝚊𝚙𝚜
Да, и /dev/watchdog как я заметил kubernetes не создаёт, так что похоже конкретно этот метод не используется. Интересно, каким образом тогда гарантируется единственность тех же statefull подов.
𝚔𝚟𝚊𝚙𝚜
я думал об этом, но как это будет происходить в случае shared fs, или того же glusterfs
𝚔𝚟𝚊𝚙𝚜
kubernetes как-то на уровне фс разрешит обращаться к хранилке только с конкреной ноды, которая запускает под? - если честно не совсем представляю...
𝚔𝚟𝚊𝚙𝚜
ну или тот же nfs
G72K
kubernetes как-то на уровне фс разрешит обращаться к хранилке только с конкреной ноды, которая запускает под? - если честно не совсем представляю...
Это дело драйверов обеспечить доступ. Каждый вольюм имеет режим монтирования https://kubernetes.io/docs/concepts/storage/persistent-volumes/#access-modes
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/