背景
想在pod中执行一条命令(eg. ip a),但是pod中没有ip命令,怎么办呢?
执行流程
先查看一下pod的信息
进到pod里面,执行一下 ip a,发现容器里面没有ip这个命令
但是我们就想执行这条命令怎么办呢?
先进到pod里面,执行lsns -t net,拿到这个容器所在的ns
然后到这个容器所在的主机,执行lsns ns的id,就可以拿到容器的pid
在主机上直接进到该ns中,这样就可以在主机上进到容器的ns中执行想要执行的命令了
nsenter -n -t 47108 ip addr
也可以这样子执行
大功告成~
lsns [参数]
常用参数:
-J 使用 JSON 输出格式
-l 使用列表格式的输出
-n 不打印标题
-r 使用原生输出格式
-u 不截断列中的文本
-t 名字空间类型(mnt, net, ipc, user, pid, uts, cgroup)