4

我有一个用例,我需要 Kubernetes 下的 Docker 容器来访问 hostPath。我正在使用 minikube,容器能够访问 minikube VirtualBox VM 中的文件夹。但我不知道如何让它访问主机本身的文件夹。

我在主机上执行这些命令来创建 /opt/foo 以在 VM 中共享:

$ sudo touch /opt/foo/FOO
$ ls /opt/foo
FOO
$ minikube mount -v 5 /opt/foo:/opt/foo
Mounting /opt/foo into /opt/foo on the minikubeVM
This daemon process needs to stay alive for the mount to still be accessible...
ufs starting

在另一个窗口中,我查看了 minikube VM

$ minikube ssh -- sudo ls -la /opt/foo
total 0
drwxrwxr-x 2 root root 0 Jun  1 14:44 .
drwxr-xr-x 5 root root 0 Jun  1 14:44 ..

是否需要另一个步骤才能使该目录中的文件可访问?

仅供参考 - 用例是一个容器进程,它创建主机进程正在收集的文件。因此我不想使用 nfs 或 PersistentVolumes。主机是Centos7。minikube 版本:v0.19.0。

4

2 回答 2

3

问题是防火墙,在 Ubuntu 中这对我有用:

sudo ufw allow in on virbr1
sudo ufw reload

但是您需要通过ifconfig.

就我而言,我确实minikube ip意识到界面是virbr1

我找到了解决方案,因为过去我与 docker 的连接问题得到了解决sudo ufw allow in on docker0

于 2018-03-24T13:28:28.920 回答
2

只是为了概括 Leo 的伟大解决方案:

ip r g $(minikube ip)|awk '{print $3}'|head -n1|xargs sudo ufw allow in on
sudo ufw reload

这将获取 minikube ip,查找接口并将其添加到防火墙规则中。

希望对任何人都有帮助。并感谢狮子座。

于 2019-06-27T17:39:46.050 回答