Как бороться c memory leaks в pods на кластере Kubernetes?
Привет,
требуется для каждой ноды в кластере, чтобы 15% памяти всегда было доступно для kubectl и др сервисов. Кроме того, как лучше подойти к конфигурации pod, чтобы при memory leak в контейнере все равно не смог сьесть всю память? Или лучше работать на уровне Docker Containers?
В конфиге kubelet выставляете нужное кол-во оперативы для системных и обычных подов
k8s при создании cgroup пода выставляет memory.limit_in_bytes соответственно лимиту
В подах, где возможны утечки, выставляете resources.requests.memory равное лимиту
Первое резервирует ресурсы для системных и кластерных сервисов, второе будет дёргать OOM при достижении лимита, третье убирает возможность оверпровижена.