第一种方法:使用临时容器
1. kubectl debug -it myweb --image=busybox:1.28 --target=myweb(目标容器)
2.
3.低版本的k8s需要开启 临时容器(EphemeralContainers ) 特性门控
(1)修改master
/etc/kubernetes/manifests/kube-apiserver.yaml
/etc/kubernetes/manifests/kube-controller-manager.yaml
/etc/kubernetes/manifests/kube-scheduler.yaml
这三个配置文件中相应位置添加
--feature-gates=EphemeralContainers=true
(2)修改所有kubelet
/var/lib/kubelet/kubeadm-flags.env
添加
--feature-gates=EphemeralContainers=true
(3)重启kubelet
systemctl daemon-reload && systemctl restart kubelet
第二种方法:使用nsenter
1.通过-o wide查看在pod的对应节点上,在节点上安装nsenter
2.centos安装nsenter
yum install util-linux
3.通过kubectl describe pod 得到Container ID
4.得到进程id
docker inspect 48443db969a704dbc1630f3abbb1b0489471317bfdc1cf91430dfb1eb8d4bed2 | grep -i pid
5.执行命令
nsenter -n --target 15957 进入网络命名空间
logout退出