🛠️ Pod исчез без stack trace, а контроллер создал новый

В describe старого Pod:

Status: Failed Reason: Evicted Message: The node was low on resource: ephemeral-storage

Это не обычный restart контейнера.

Kubelet завершил Pod, чтобы защитить узел от нехватки ресурса. Новый Pod, если его создал Deployment или StatefulSet, — это уже другой объект с другим UID.

Что проверить первым:

kubectl describe pod kubectl describe node

Ключевые признаки:

— Reason: Evicted; — Message; — Events; — nodeName; — DiskPressure=True.

DiskPressure — это не только свободные гигабайты. Узел может страдать от нехватки inode.

Проверяйте:

nodefs.available nodefs.inodesFree imagefs.available imagefs.inodesFree

В некоторых версиях и конфигурациях также может быть containerfs.

Что обычно расходует local ephemeral storage:

— writable layer контейнера; — контейнерные логи; — дисковый emptyDir; — временные файлы и кеши.

Образы могут давить на imagefs. emptyDir с medium: Memory — это память, не дисковое ephemeral storage.

Важно разделять два сценария:

DiskPressure на узле → kubelet выселяет Pod Pod превысил свой ephemeral-storage limit → kubelet тоже может выполнить eviction

Поэтому смотрите и Node, и Message конкретного Pod, и его requests/limits.

Requests и limits не заменяют:

— ротацию логов; — контроль emptyDir; — очистку кеша; — мониторинг inode; — управление образами; — резервирование ресурсов узла.

Типичная ошибка — искать crash, OOMKilled или проблему probes и не проверить Reason: Evicted.

Вывод:

Evicted → DiskPressure или limit → nodefs/imagefs/containerfs → байты или inode → logs / writable layer / emptyDir / images → безопасное изменение

Сохраните набор артефактов для случая, когда Pod исчезает без явного stack trace приложения.

🔹🔹🔹🔹

🛠️ Pod исчез без stack trace, а контроллер создал новый
В describe старого Pod:
Status: Failed
Reason: Evicted
Message: The node was low on resource: ephemeral-storage
Это не обычный restart контейнер... | Сетка — социальная сеть от hh.ru