Выбор ответа Senior Отладка в кластере обновлено
Отладка distroless-контейнера
Вопрос
Образ приложения distroless, в нём нет shell, kubectl exec -it pod -- sh падает. Как посмотреть сеть и процессы контейнера?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: kubectl debug -it <pod --image=nicolaka/netshoot --target=<container. Эфемерные контейнеры добавляются в работающий под без перезапуска, делят с ним сетевой namespace, а с --target и пространство процессов целевого контейнера.
Варианты ответа
- Пересобрать образ с bash и задеплоить в прод, затем вернуть distroless-версию
kubectl debug -it <pod> --image=nicolaka/netshoot --target=<container>правильный ответ- Подключиться к поду по SSH: kubelet поднимает sshd в каждом поде на порту 2222
- Отладить невозможно: distroless-контейнер не допускает никакого доступа извне
Разбор
Эфемерные контейнеры добавляются в работающий под без перезапуска, делят с ним сетевой namespace, а с --target и пространство процессов целевого контейнера. Пересборка меняет условия и долго, SSH в под не предусмотрен. Ещё есть kubectl debug --copy-to для копии пода с другой командой и kubectl debug node/... для узла.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.