我有一个用例,我需要在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 ..
是否需要另一个步骤才能使该目录中的文件可访问?
FYI - 用例是一个容器进程,用于创建主机进程正在收集的文件。因此我不想使用nfs或PersistentVolumes。主持人是Centos7。 minikube版本:v0.19.0。
答案 0 :(得分:2)
问题是防火墙,在Ubuntu这对我有用:
sudo ufw allow in on virbr1
sudo ufw reload
但您需要通过ifconfig
找出正确的界面名称。
在我的情况下,我做minikube ip
以实现界面virbr1
我找到了解决方案,因为过去我遇到了与sudo ufw allow in on docker0
解决的docker连接问题
答案 1 :(得分:0)
只是概括了Leo的出色解决方案:
ip r g $(minikube ip)|awk '{print $3}'|head -n1|xargs sudo ufw allow in on
sudo ufw reload
这将获取minikube ip,查找接口并将其添加到防火墙规则中。
希望对任何人都有帮助。谢谢狮子座。