Leo
Вначале поднимаешь новый, потом убиваешь старый
Kirill
Вначале поднимаешь новый, потом убиваешь старый
Текущий запрос всё равно отвалится
Валентин
Lucky SB
А зачем учить ретраям все мои приложения, если можно научить какое-то приложение-балансировщик и пускать все через него?
т.е. ты хочешь написать свой ингресс-контроллер, существующие ты использовать не хочешь. ну окай. а при чем тут извращения с сервисами kubernetes и coredns ?
Alexander
А ингресс разве не сделает ретрай для GET запроса?
Alexander
Since 1.9.13 NGINX will not retry non-idempotent requests (POST, LOCK, PATCH) in case of an error. The previous behavior can be restored using retry-non-idempotent=true in the configuration ConfigMap.
Alexander
Ну то есть можно и вообще все ретраить
Alexander
Тут просто вопрос философский. POST запрос может снимать деньги например и автоматичеки его повторив можно снять два раза
Lucky SB
которые не проверяют транзакции на дублирование
Alexander
Плохой пример. Но явно есть хорошие )
Alexander
Если у Валентина все готово к ретраям, то вот nginx ingress с этим ключиком поможет
Валентин
т.е. ты хочешь написать свой ингресс-контроллер, существующие ты использовать не хочешь. ну окай. а при чем тут извращения с сервисами kubernetes и coredns ?
Я не хочу писать свой ингресс-контроллер. Я вообще не понимаю, причем тут ингресс и почему за него зацепились. У меня есть 1 задача связанная с балансировкой, в рамках которой получился интересный случай (в целом кластере не осталось сервисов с clusterip окромя двух системных) и этот случай стало интересно добить на 100%. Просто интересно. А основная задача с балансировкой совсем о другом: хочется крутую балансировку, которая все умеет и учитывает. Опять же непонятно, причем тут ингресс - ингресс это большая и мощная хрень, а мне б для каждого приложения че-то свое запускать, что именно к этому приложению и будет балансировать. Неужели по ингресс-контроллеру поднимать на приложение?
Валентин
Т.к гонять весь трафик кластера через 1 общий ингресс ну еще более дурацкая схема
Anton
где-то можно посмотреть предыдущий generation объекта?
Anton
thanks cap
Anton
то есть через апи никак?
Валентин
а мужики то не знают... и все так делают
Т.е это реально нормальная практика и многие так делают? Однако...
Макс
А каждому приложению свой LB разве нормальная cхема?
Валентин
А каждому приложению свой LB разве нормальная cхема?
При таком подходе весь трафик кластера хотя бы не бегает через 1 сервер, так что да, это выглядит более нормальным.
Макс
Кажется я понял, то есть сечас у тебя весь трафик идет на какую-то одну ноду с ингрессом или типа того? а она уже раскидывает по остальным
Lucky SB
Т.е это реально нормальная практика и многие так делают? Однако...
иметь один ингресс контроллер на кластер - это нормально. сервисы работают на уровне NAT TCP UDP - им до твоих http ошибок нет никакого дела. ингресс-контроллеры как раз на уровне протокола http работают - там ты свои хотелки по ретраю и прочему и можешь реализовать. но опять же - ингресс-контроллеры обычно трафик отправляют или сразу в сервис, или берут у сервиса текущий список endpoint и ингресс-контроллеры не занимаются ерундой типа livnes-ready проб пода
Макс
Мы пока с ретраями не заморачивались, у нас на каждой ноде по ингрессу, перед кластером стоит внешний LB который перенаправляет трафик на эти ингрессы
Макс
излишне ))) достаточно двух подов на разных нодах. зачем на всех то ,
возможно, мы ранчер используем, этот конфиг по кол-ву дефолтный,
Макс
ты можешь балансировать ингрессы же тоже
Макс
а если трафик большой купи услугу балансировки у кого-нить
Валентин
а если трафик большой купи услугу балансировки у кого-нить
Если весь трафик в моем кластере загнать в 1 место он станет большим, но зачем мне самому сначала все гнать в 1 место, а потом еще и что-то покупать?
Валентин
Ох... я в принципе не понимаю в чем прикол сваливать все в кучу. В чем преимущества такого подхода
Макс
У тебя сейчас одна точка входа? твой ингресс?
Валентин
Почему до куба я мог спокойно поставить nginx, за ним несколько копий приложения, и все было прекрасно, а в кубе оказывается надо в 1 гигантский nginx или что-то аналогичное загнать весь трафик. Да у меня в проде тогда одних открытых коннектов к нему будет десятки тысяч!
Макс
поставь свой любимый nginx перед кластером
Макс
как отдельную ВМ
Валентин
поставь свой любимый nginx перед кластером
Господи, да зачем мне еще и перед кластером городить что-то, ребят, вы вообще о чем?! Речь началась с нормальной балансировки трафика к приложениям, внутри куба, а вы мне предлагаете какие-то внешние черте-что
George
какую задачу ты хочешь решить?
Lucky SB
Запусти несколько ингресс-контроллеров, в чем проблема то?
исчо один. это называется не несколько ингресс-контроллером - а один ингресс контроллер с фактором репликации N, где N>1
George
можно несколько ингрессов запустить, только смысл?
Lucky SB
когда запущено N подов одного ингресс-контроллера
Валентин
я хочу сказать, что ты не понимаешь как оно все устроено и работает. но горишь желанием все сломать из непонятно каких побуждений
Я деплою приложение в куб. Я даю туда трафик. Я обновляю приложение и вижу несколько обломанных коннектов во время деплоя. Я понимаю, что это потому, что правила iptables запаздывают. Я пробую вместо iptables использовать приложение-балансировщик, специально созданное для этого. Что тут не так?
George
когда запущено N подов одного ингресс-контроллера
могут быть разные кейсы. Я могу представить себе кейс мультитенантного кластера, в котором физически несколько ингрессов
Lucky SB
Трафик от приложения к приложению или от внешних клиентов? Если первое, то нужен сервис меш. Если второе, то нужен ингресс.
сервис меш - инструмент для богатых и умных. просто так его применять - проблем будет больше чем пользы
George
во-вторых, почему у тебя не rolling выкатка тогда?
Валентин
Lucky SB
могут быть разные кейсы. Я могу представить себе кейс мультитенантного кластера, в котором физически несколько ингрессов
я могу себе облако в штанах представить. но это ж не значит что всем надо несколько разных контроллеров запускать
George
Для меня существенная. Отсюда и все телодвижения
retry семантику твои приложения не умеют? если нет, то у тебя большие проблемы вне зависимости от файрволла и балансировки
Валентин
>вместо iptables использовать приложение-балансировщик вот эта часть, например
Ну эти приложения есть, есть давно и они много чего умеют. Почему вдруг iptables стал лучше них?
George
я могу себе облако в штанах представить. но это ж не значит что всем надо несколько разных контроллеров запускать
и что так грубо? вот реально задача ынтерпрайза - отдельные ингрессы для разных тенантов. Как будешь решать?
Валентин
retry семантику твои приложения не умеют? если нет, то у тебя большие проблемы вне зависимости от файрволла и балансировки
Нет, не умеют. И переписывать это очевидно бизнес не хочет, иначе б переписали и все
Vadim
Ну эти приложения есть, есть давно и они много чего умеют. Почему вдруг iptables стал лучше них?
предлагаю кернел заменить на специализированное приложение
mr.
Добрый день, коллеги. Имеется k8s deployment у которого настроен horizontal pod autoscaler, необходимо реализовать graceful shutdown. Для общего понимания скажу, что данный deployment представляет из себя приложение которое из очереди задачу и обрабатывает (таск раннер/воркер). Вся проблема в том, что задачи могут выполняться достаточно долго, например, час (импорт большего объема данный со сторонних ресурсов, наример). ПРЕДПОЛАГАЕМОЕ РЕШЕНИЕ: установить terminationGracePeriodSeconds в 10800 (3 часа), в приложение по сигналу SIGTERM остановить подписку на сообщения, доделать работу и выйти. ВОПРОС: Есть ли какие-либо подводные камни в указании большого значения terminationGracePeriodSeconds?
Lucky SB
Ну эти приложения есть, есть давно и они много чего умеют. Почему вдруг iptables стал лучше них?
iptables не стал лучше. тебе говорят что то что ты хочешь сделать называется ingress controller и iptables в данном случае никак не сможет тебе помочь
Vadim
причем идея здравая, но оторванность от приложения только всё сломает. А для общих случаев есть haproxy и рендер конфига
Валентин
т.е. ты говеное легаси засунул в кубер?
Все приложения что есть - в кубе еще до меня были. И тем не менее их писали как умели писать, а теперь вот надо еще новые писать и все те эксплуатировать
Валентин
iptables не стал лучше. тебе говорят что то что ты хочешь сделать называется ingress controller и iptables в данном случае никак не сможет тебе помочь
Окей, значит буду прикручивать ингресс. У меня до сих было четкое понимание, что ингресс для выхода трафика, а не чтоб внутри куба на него заворачивать взаимодействие между приложениями
Lucky SB
Окей, значит буду прикручивать ингресс. У меня до сих было четкое понимание, что ингресс для выхода трафика, а не чтоб внутри куба на него заворачивать взаимодействие между приложениями
ингресс для балансировки http. если твои сервисы не соблюдают принципы микросервисности, когда общение идет через одну точку входа в API и общаются между собой напрямую, и при этом не умеют ретрай и прочее. то можешь для только для них поднять отдельный дополнительный ингресс-контроллер, который в интернет трочать не будет
Slach
Всем привет, а вот если кто делает HA multi-master k8s кластеры, то как вы организовываете проксирование до apiserver??? может кто-то думал над идеей DaemonSet с networkHost: true в котором linkerd \ Envoy \ Traefik как то получают текущий список живых apiserver прямо из etcd или apiserver ? ну то есть чтобы была возможность зная хотя бы один ip получить все остальные?
George