admin 发表于 2021-2-7 22:21:59

容器里什么工具怎么办?巧用ipc,net,pid共用来解决问题

1)首先找到一个什么工具都有的基础镜像如busybox。
2)找到一个有istio-proxy容器的worker节点并登陆。本例是worker1。
3)通过docker ps | grep istio找到容器的uuid并且记录下来,本例是7c4b1e90fd09
4)结合pause容器的工作原理,即与目标容器共享命名空间,也就是通过“ipc、net、pid”这三个参数来共享资源,以此注入排查工具。【这里istio-proxy就是Istio自己的Pause容器】
5)结合4来实战,通过docker run来起一个busybox容器,并且将ipc、net、pid的容器id设置为istio-proxy的容器ID。举例如下:
k8s@worker1:~> sudo docker run -it --rm --net=container:7c4b1e90fd09 --pid=container:7c4b1e90fd09 --ipc=container:7c4b1e90fd09 busybo
然后就已经登录到了istio-proxy这个容器,并且可以直接使用busybox容器的所有工具了。
/home # ps -elf
PID   USER   TIME   COMMAND
122 root       0:00 /bin/sh
130 root       0:00 ps -elf
可以看到istio-proxy使用的就是envoy这个边车来做的。

页: [1]
查看完整版本: 容器里什么工具怎么办?巧用ipc,net,pid共用来解决问题