tenancy? Как вы боретесь, с тем что девы выставляют нереалистично низкие resources requests , забивают ноду подами и она под их весом схлопывается, особенно если не сразу, а когда нибудь ночью. Очевидный способ выделить свои ноды для каждой команды. Ещё какие-нибудь можно?
https://kubernetes.io/docs/tasks/administer-cluster/manage-resources/quota-memory-cpu-namespace/
resourceQuota настроить
тогда реально так
Как так? Там ограничения на реквесты и лимиты, как это поможет томку, что команды ставят реквесты 100m и 100MiB , а сжирают 4 и 4GiB
Тоже такой бедой страдаю в данный момент. Ранчер, надо нарезать каждой команде кластер, да и нехай там делают что хотят.
Да тут на проект новый позвали. Было 60 кластеров, решили их как то аудитить, быстро задолбались, решили сделать мега кластер на всех. По мне так надо было сделать автоматическую нарезалку стандартных кластеров, но видимо решили что экспертизы не хватит и сделать один любимый кластер проще
Сранчером кластера нарезаются легко. У меня вот тоже бардак с ресурсами, дев же, все нестабильно. Каждое утро вижу оом кильнутую ноду, кубклет мертв, перегружаю вручную
limitrange настрой, там можно выставить минимальные значения для реквестов/лимитов. Куб им не даст выставить меньше. А также там дефолты можно настроить и максимально возможные значения
А вариант принудительно через LimitRange выставлять какие-то более адекватные дефолтные реквесты не рассматривается?
limitrange также может выставлять дефолтные лимиты. Они просто физически из-за лимитов не смогут сожрать 4 ядра и 4GiB
Это не поможет. Ведь реально много настоящих микроподов
ну тогда cluster-autoscaler в помощь но ругать их придется всё равно
ну проставь дефолты в 50m/50Mi как по реквестам так и по лимитам. Если они не проставят лимиты, то автоматом выставяться 50m/50Mi. Вот тебе и микропод у которого в реквестах 50m/50Mi и в лимитах тоже самое. Будет реально настоящий микропод
autoscaler же по реквестам работает, а по ним все влезает всюду
Лимиты и реквесты выставляешь одинаковыми, пишешь адмишен хук, который проверяет это
ну если у тебя aws vpc cni то там лимит на поды в рамках ноды под будет в пендинг статусе если не влезит а автоскейлер запровиженит тебе ноду
Команда затем деплоит ява монстра без реквестом, ему проставляется минимальный реквест, он влезает на ноду и устраивает там дестрой.
нет, будет так: команда деплоит ява монстра без реквестов. лимитрендж ставит ему реквесты и лимиты 50m/50Mi. И этот ява монтср ничего не сжирает и падает на этапе инициализации по OOM. Команда задумывается, и ставит правильные реквесты и лимиты
они бампят лимиты, но не реквесты, потому что CI тогда всегда зелёный и копипастят это из проекта в проект
в лимитренж есть maxRatio (насколько лимиты могут превосходить реквесты). И они ничего не смогут бампить, им придется ставить нормальный лимит
Не знаю как в условиях нескольких команд, но у нас тоже недавно была проблема, что при рестарте кучи микросервисов и их скейлинге, падали ноды вместе с бд и прочими вещами. Решили с помощью НодАфинити, введя рассовую сегрегацию с белыми и чёрными нодами.
maxLimitRequestRatio
Кстати, а как именно схлопывается нода? Прожорливые поды с задранными лимитами потребляют весь CPU и нода уходит в NotReady?
психологические проблемы техническими средствами не решаются
я видел только как прожорливые поды просто выселяются с ноды
Наблюдал на проде как бд с редисом выселились 👍
пока не пойму как. Приходит оомкиллер. Обычно, он мочит fluentd от банзая Ладно, там все тормозит, кубелет не отдупляет. Но когда киллер полечил, почему нода не оживает - не пойму.
Ооооо, прям наш случай) Только флюентд у нас стоковый. А так один в один
Более того, один из подов вроде как guaranteed должен быть. Что-то я недогоняю в кубере.
У тебя fluentd использует pv? Если да - То провижионер какой-нибудь nfs?
Вроде нет. Не увидел pvc
Обсуждают сегодня