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

Кто-Нибудь делал один кластер на много команд. Эдакий soft multi

tenancy? Как вы боретесь, с тем что девы выставляют нереалистично низкие resources requests , забивают ноду подами и она под их весом схлопывается, особенно если не сразу, а когда нибудь ночью. Очевидный способ выделить свои ноды для каждой команды. Ещё какие-нибудь можно?

33 ответов

32 просмотра

https://kubernetes.io/docs/tasks/administer-cluster/manage-resources/quota-memory-cpu-namespace/

resourceQuota настроить

Mike-Wazowski Автор вопроса
kis
тогда реально так

Как так? Там ограничения на реквесты и лимиты, как это поможет томку, что команды ставят реквесты 100m и 100MiB , а сжирают 4 и 4GiB

Тоже такой бедой страдаю в данный момент. Ранчер, надо нарезать каждой команде кластер, да и нехай там делают что хотят.

Mike-Wazowski Автор вопроса
Vasily Bortnikov
Тоже такой бедой страдаю в данный момент. Ранчер, ...

Да тут на проект новый позвали. Было 60 кластеров, решили их как то аудитить, быстро задолбались, решили сделать мега кластер на всех. По мне так надо было сделать автоматическую нарезалку стандартных кластеров, но видимо решили что экспертизы не хватит и сделать один любимый кластер проще

Mike Wazowski
Да тут на проект новый позвали. Было 60 кластеров,...

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

limitrange настрой, там можно выставить минимальные значения для реквестов/лимитов. Куб им не даст выставить меньше. А также там дефолты можно настроить и максимально возможные значения

А вариант принудительно через LimitRange выставлять какие-то более адекватные дефолтные реквесты не рассматривается?

Mike Wazowski
Как так? Там ограничения на реквесты и лимиты, как...

limitrange также может выставлять дефолтные лимиты. Они просто физически из-за лимитов не смогут сожрать 4 ядра и 4GiB

Mike-Wazowski Автор вопроса
Dmitry Sergeev 🇺🇦
limitrange настрой, там можно выставить минимальны...

Это не поможет. Ведь реально много настоящих микроподов

Mike Wazowski
Это не поможет. Ведь реально много настоящих микро...

ну тогда cluster-autoscaler в помощь но ругать их придется всё равно

Mike Wazowski
Это не поможет. Ведь реально много настоящих микро...

ну проставь дефолты в 50m/50Mi как по реквестам так и по лимитам. Если они не проставят лимиты, то автоматом выставяться 50m/50Mi. Вот тебе и микропод у которого в реквестах 50m/50Mi и в лимитах тоже самое. Будет реально настоящий микропод

Mike-Wazowski Автор вопроса
Stefan
ну тогда cluster-autoscaler в помощь но ругать их ...

autoscaler же по реквестам работает, а по ним все влезает всюду

Mike Wazowski
autoscaler же по реквестам работает, а по ним все ...

Лимиты и реквесты выставляешь одинаковыми, пишешь адмишен хук, который проверяет это

Mike Wazowski
autoscaler же по реквестам работает, а по ним все ...

ну если у тебя aws vpc cni то там лимит на поды в рамках ноды под будет в пендинг статусе если не влезит а автоскейлер запровиженит тебе ноду

Mike-Wazowski Автор вопроса
Dmitry Sergeev 🇺🇦
ну проставь дефолты в 50m/50Mi как по реквестам та...

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

Mike Wazowski
Команда затем деплоит ява монстра без реквестом, е...

нет, будет так: команда деплоит ява монстра без реквестов. лимитрендж ставит ему реквесты и лимиты 50m/50Mi. И этот ява монтср ничего не сжирает и падает на этапе инициализации по OOM. Команда задумывается, и ставит правильные реквесты и лимиты

Mike-Wazowski Автор вопроса
Dmitry Sergeev 🇺🇦
нет, будет так: команда деплоит ява монстра без ре...

они бампят лимиты, но не реквесты, потому что CI тогда всегда зелёный и копипастят это из проекта в проект

Mike Wazowski
они бампят лимиты, но не реквесты, потому что CI т...

в лимитренж есть maxRatio (насколько лимиты могут превосходить реквесты). И они ничего не смогут бампить, им придется ставить нормальный лимит

Не знаю как в условиях нескольких команд, но у нас тоже недавно была проблема, что при рестарте кучи микросервисов и их скейлинге, падали ноды вместе с бд и прочими вещами. Решили с помощью НодАфинити, введя рассовую сегрегацию с белыми и чёрными нодами.

Кстати, а как именно схлопывается нода? Прожорливые поды с задранными лимитами потребляют весь CPU и нода уходит в NotReady?

психологические проблемы техническими средствами не решаются

Pavel Litvyak
Кстати, а как именно схлопывается нода? Прожорливы...

я видел только как прожорливые поды просто выселяются с ноды

Ilyas Arinov
я видел только как прожорливые поды просто выселяю...

Наблюдал на проде как бд с редисом выселились 👍

Pavel Litvyak
Кстати, а как именно схлопывается нода? Прожорливы...

пока не пойму как. Приходит оомкиллер. Обычно, он мочит fluentd от банзая Ладно, там все тормозит, кубелет не отдупляет. Но когда киллер полечил, почему нода не оживает - не пойму.

Vasily Bortnikov
пока не пойму как. Приходит оомкиллер. Обычно, он...

Ооооо, прям наш случай) Только флюентд у нас стоковый. А так один в один

Serhii Sergey
Ооооо, прям наш случай) Только флюентд у нас стоко...

Более того, один из подов вроде как guaranteed должен быть. Что-то я недогоняю в кубере.

Vasily Bortnikov
пока не пойму как. Приходит оомкиллер. Обычно, он...

У тебя fluentd использует pv? Если да - То провижионер какой-нибудь nfs?

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
Карта сайта