Kubernetes
October 13, 2022

Ошибка Memory cgroup out of memory: Killed process на нодах кластера

Обозначает нехватку памяти на воркер нодах кластера. Из-за чего ООМ Killer убивает процессы кластера. Ошибка может приводить к нестабильности работы сервисов в кластере.

Диагностируется по выхлопу консоли.

yc compute instance get-serial-port-output fhmaj414jqe1m5o80s18

В записях после загрузки процессов ВМ будет что-то вроде этого:

[1610583.008428] Memory cgroup out of memory: Killed process 1033043 (filebeat) total-vm:2235744kB, anon-rss:183412kB, file-rss:8448kB, shmem-rss:0kB, UID:0 pgtables:840kB oom_score_adj:995

Лечение.

1. Лечится добавлением дополнительных нод в кластер. Если клиент не ограничен в средствах и это прод. И переместить часть подов с этой ноды на вновь созданную.
2. Или расселением подов с проблемной ноды, чтобы уменьшить на неё нагрузку. Но следует при этом помнить что это может привести к росту нагрузки на другие ноды кластера.
3. Поскейлить ноды кластера вертикально. Увеличив ему количество ядер и памяти.

Расселить поды можно с помощью их удаления. После удаления подов шедуллер может запланировать их запуск на другой ноде. Или можно явно подсветить шедуллеру на какой ноде запустить под с помощью nodeSelector.