如何从执行容器的节点访问容器的目录?
我拥有主节点的 root 访问权限。现在我想查看pod/容器/etc
的目录。etcd
kubectl exec
没有帮助,因为它是一个无发行版图像,缺少常见的 shell 工具,如ls
和tar
。
我用containerd
答案1
我在本地设置中使用 containerd,并使用远程 etcd 服务器。但下面解释的想法可以用于本地 etcd。
- [可选步骤] ssh 到 etcd 节点。如果在主节点中使用本地 etcd,则忽略此步骤。
- 首先找到 etcd 容器的进程 ID
ps -aux | grep -i etcd
- 现在让我们到神奇的
/proc
目录中去寻找etcd DB location
。
sudo ls /proc/9591/root/var/lib/etcd
- 导航到 etcd 目录
sudo ls /proc/9591/root/etc/kubernetes
- 让我们检查一下 etcd 证书:
sudo ls /proc/9591/root/etc/kubernetes/pki/etcd/
答案2
您可以使用以下命令(操作时请小心):
nsenter -p -m -t <processid>
基本上跟踪您想要进入的容器内应用程序的 pid,并将其替换为其进程 id