我正在将 NFS(在 Azure 虚拟机上)安装到 k8s(AKS)中。我的应用程序正在使用 Apache(www-data 用户)运行。现在由于某种原因,我最终无法理解我的应用程序错误,即权限被拒绝错误,即它无法写入已安装的 NFS 卷。这显然是权限问题,而且我把一切都搞砸了。
由 Apache 运行的应用程序:uid=33(www-data) gid=33(www-data) groups=33(www-data)
从 NFS 目录及其所有子目录导出(递归):我已将它们 chown 为www-data:www-data
。
当我在容器中输入 id 时,我是 root:uid=0(root) gid=0(root) groups=0(root),1000
当我在已安装卷中的容器中触摸新文件时,它具有权限:uid=65534(nobody) gid=65534(nogroup) groups=65534(nogroup)
。这有点令人惊讶。
当我在 NFS 服务器中输入 id 时:uid=1000(azureuser) gid=1000(azureuser) groups=1000(azureuser)
如果我在 NFS 服务器中触摸新文件,它具有:uid=1000(azureuser) gid=1000(azureuser) groups=1000(azureuser)
。因此,我假设这与部署 k8s 配置中的此声明有关:
securityContext:
fsGroup: 1000
/etc/exports
我配置的 NFS 中的文件如下:
/export 10.240.0.0/16(rw,async,insecure,fsid=0,crossmnt,no_subtree_check)
我现在很困惑什么是什么,你能帮我解决这个问题并澄清什么是什么吗?
顺便说一下,NFS 和 AKS 之间的连接已经建立(我可以在已安装卷的容器中创建一个文件,它将在 NFS 服务器中可见,相反也可以)。