172 похожих чатов

Доброго времени суток, подскажите пожалуйста, какой механизм отвечает за drain

& delete nodes in notready state(если такой есть), cas?(aws eks)

17 ответов

30 просмотров

есть несколько параллельных механизмов которые не связаны друг с другом, ну точнее связь довольно тонкая. есть контроллеры со стороны облака, к которым ты не имеешь никакого доступа, например котноллер который managed группами управляет а есть например cluster-autoscaler, к которому ты имеешь доступ оба эти механизма могут дрейнить ноды и удалять их

luhaia- Автор вопроса
Dmitry Sergeev 🇺🇦
есть несколько параллельных механизмов которые не ...

Спасибо, у меня ситуация следующая: cas+bottlerocket, настроен memory eviction через userdata, но под memory node pressure kubelet не евиктит никого, в след зачем нода понятное дело notready, но в таком статусе она может висеть минут 30, ясное дело что в это время все поды на ней «зависли», куда копать что бы ускорить процесс удаления именно notready нод? Или костылять условным кроном?

luhaia
Спасибо, у меня ситуация следующая: cas+bottlerock...

насколько я помню cluster autoscaler не будет удалять зависшую ноду скорее всего. Он удаляет при процессе даунскейла или когда апскейл произошел неудачно, ожидается таймаут и нода удаляется

luhaia
Спасибо, у меня ситуация следующая: cas+bottlerock...

в любой ситуации если кублет отьехал то каюк, на кублет резервацию настройте

luhaia- Автор вопроса
Igor Ignatev
в любой ситуации если кублет отьехал то каюк, на к...

Есть, но все равно вылазит. Кажется что кубелет просто не евиктит когда нужно, но логи кубелета не собираем, и посмотреть как результат тоже, спасибо

в теории 30 минут могут взяться отсюда: 1) первые минут 5-6 (такой дефолт) куб понимает что нода всё, и перевозит от туда поды 2) затем поды по сути будут в статусе terminating на этой ноде 3) cluster-autoscaler возможно осознает что поды помечены на удаление и теперь не учитывает их при подсчетах заполнености ноды, когда считает unneded ноды. Теперь включается таймер --scale-down-unneeded-time (равный 10 минутам по дефолту)) 4) таймер прошел, теперь эта нода считается unneded. Но так как она notready, включается таймер --scale-down-unready-time (20 минут по дефолту) 5) теперь все таймеры отработали и ноду можно уадяять что и происходит получается 5-6 + 10 + 20 = 35-36 минут, плюс погрешность, так и выходит примерно

luhaia- Автор вопроса
Dmitry Sergeev 🇺🇦
в теории 30 минут могут взяться отсюда: 1) первые...

Проблема в том, что он никто никуда из не везет, и такое чувство, что из хелси ендпоинтов эти роды не убирает (это теория требующая подтверждения) и как следствие если на этой ноле был core-dns, то всемреквесты к нему фейлятся)

luhaia
Проблема в том, что он никто никуда из не везет, и...

ну если нода notReady и если это не statefulset и если там поды какого-нибудь deployment'а то новые реплики будут созданы на других рабочих нодах. Я под перевозом это и имел в виду

luhaia- Автор вопроса

Так в том то и дело, что этого не происходит пока года в кластере, новые полы создаются исключительно после удаления нот реди ноды

luhaia
Так в том то и дело, что этого не происходит пока ...

ну это требует доказательств. Потому что поведение там другое задокументировано + я давно эксплуатирую k8s и да, он делает как я описал (я про первый этап) разумеется у вас могут происходить какие-то проблемы, из-за которых например pod не смог создастя на другой ноде, или другие вещи. Но тем не менее на общую логику это не влияет, то. есть можно говорить что он как минимум стремиться так сделать, но естественно что-то может пойти не так в вашем окружении Замечу что речь не идёт о подах statefulset'а и daemonset'а, их реплики нигде не будут запускаться

luhaia- Автор вопроса
Dmitry Sergeev 🇺🇦
ну это требует доказательств. Потому что поведение...

Да, я понимаю и сам этого ожидал, в целом есть несколько непонятных проблем которые требуется воспроизвести и покопать в спокойных условиях. Спасибо. Если есть под рукой линк на флоу контроллер менеджера по поводу нотреди нод, то поделись, пожалуйста.

luhaia
Да, я понимаю и сам этого ожидал, в целом есть нес...

под рукой нет. Но это легко протестить и посмотреть на практике достаточно остановить сервис kubelet, и наблюдать за службой и увидеть что от туда исчезнет endpoint, после того когда нода перешла в статус notReady

Dmitry Sergeev 🇺🇦
в теории 30 минут могут взяться отсюда: 1) первые...

А точно разные таймеры включаются друг за другом (unneeded и notready)? Я не знаю сам, не смотрел настолько подробно, но у меня время убийства ноды было порядка получаса. Меня устраивало более-менее. Осталось только стсы убрать.

Kirill Garbar
А точно разные таймеры включаются друг за другом (...

это просто предположения, детально не проверял

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта