👁 В Kubernetes часто бывает ситуация: Pod работает, но внутри что-то не так с сетью или DNS, а в образе нет ни curl, ни dig, ни даже bash. Пересобирать образ или деплоить debug-версию — долго и неудобно. Для таких случаев есть ephemeral containers, которые позволяют «подселиться» в Pod на лету.
📝 Подключение debug-контейнера к уже запущенному Pod
Можно добавить временный контейнер с нужными инструментами прямо в существующий Pod, не перезапуская его. Здесь netshoot — это образ с сетевыми утилитами, а --target указывает контейнер, к namespace которого ты подключаешься.
kubectl debug -it my-pod --image=nicolaka/netshoot --target=my-container
📝 Проверка сети и DNS прямо внутри Pod
После подключения можно использовать привычные инструменты для диагностики. Ты работаешь в том же network namespace, что и основной контейнер, поэтому видишь реальную картину, а не поведение с хоста.
curl http://service:8080 dig google.com ss -tulnp
📝 Анализ iptables и маршрутизации внутри Pod
Если проблема глубже (например, сетевые политики или странная маршрутизация), можно посмотреть таблицы и маршруты. Это помогает быстро понять, где ломается сеть — внутри Pod, на уровне CNI или из-за NetworkPolicy.
iptables -L -n ip route
❗️ Ephemeral containers — один из самых недооценённых инструментов в Kubernetes. Вместо пересборки образов и догадок ты получаешь полноценный доступ к живому Pod’у и можешь дебажить его прямо в проде.
tags: #k8s #полезно



