intDataBlog
← ЖурналМаршруты обучения ↗

Toolbox-контейнеры для Kubernetes и Docker: диагностика без мусора в образе

Production image должен быть маленьким и предсказуемым. Диагностические утилиты лучше подключать временно, когда они действительно нужны.

Toolbox-подход отделяет приложение от набора инструментов администратора. В обычном режиме сервис работает без curl, tcpdump и shell-обвязки, а в инциденте рядом запускается отдельный контейнер.

Что класть в toolbox

  • Сетевые утилиты: `curl`, `dig`, `nc`, `iproute2`.
  • Файловую диагностику: `ls`, `stat`, `find`, `du`.
  • Минимальный shell и клиент к нужному runtime.

Как не расширить blast radius

Toolbox не должен получать больше прав, чем нужно для диагностики. В Kubernetes лучше начинать с ephemeral container или отдельного pod в той же namespace, а привилегированный запуск оставлять последним шагом.

kubectl debug pod/app-0 -it --image=nicolaka/netshoot --target=app
docker run --rm -it --network container:app nicolaka/netshoot

Что фиксировать в отчете

В отчете важны команда запуска toolbox, время, namespace/container, собранные факты и что именно было исключено. Так диагностика становится повторяемой, а не набором случайных команд.