Kubernetes pod无法挂载NFS目录,权限被拒绝

wlwcrazw  于 2023-04-05  发布在  Kubernetes
关注(0)|答案(1)|浏览(448)

在Hyper-v下,我创建了两个Ubuntu虚拟机。第一个为/srv/nfs创建了一个nfs服务器。/etc/exports /srv/nfs *(rw,sync,no_root_squash)第二个可以轻松地以root或任何用户的身份使用此命令挂载nfs文件系统-t nfs192.168.1.40:/srv/nfs,这样nfs服务器和客户端在虚拟机之间工作得很好。我在windows docker下启动了一个alpine Kubernetes pod,我可以在1 ms内从pod ping 192.168.1.40,但是上面的nfs mount命令总是说... mount:/mnt/nfs:permission denied. pod /mnt/nfs目录是存在的,我做了一个chmod 777 /mnt/nfs在这个工作了几天,但我困惑.
我相信默认情况下pod有完整的出口权限,ping工作正常。这里失败的原因是什么?pod是root,所以如果root为VM工作,为什么它不能作为root为pod工作?K8s中的什么组件限制了这一点?

xeufq47z

xeufq47z1#

我可以通过在NFS服务器上的/etc/exports中的以下行中添加“insecure”,从WSL 2和K8s pod在VM上挂载NFS服务器。

/srv/nfs        *(rw,sync,no_subtree_check,insecure)

我相信另一个VM能够挂载它,因为它使用的客户端端口低于1024。我相信WSL 2和Windows Docker/K8s使用的客户端端口高于1024,默认情况下,NFS服务器将拒绝如果不允许不安全。
此外,*(...)允许任何客户端IP地址连接,但您可能希望将 * 替换为客户端的IP地址,以限制谁可以连接到NFS服务器。

相关问题