Kubernetes NFS 卷挂载组读取不起作用

Kubernetes NFS 卷挂载组读取不起作用

我遇到一个问题,我无法读取具有 0660 权限的文件,这表明组成员身份无法按预期工作。

使用 0664 列出和读取文件可以正常工作。

在 NFS 主机上,这些文件由 kubernetes pod 上的“www-data:www-data”拥有,它们由同一个用户和组拥有。

我没什么主意了。

Kubernetes pod

$ id
uid=1000(node) gid=1000(node) groups=33(www-data),1000(node)
$ ls -l
-rw-rw----    1 www-data      www-data         226598 Jan  8 20:54 file.jpg
$ mount
nfs-server-hostname:/mnt/files on /var/files type nfs4 (ro,relatime,vers=4.0,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.166.0.32,local_lock=none,addr=10.166.0.5)

NFS 主机

$ ls -l
-rw-rw---- 1 www-data www-data 226598 Jan  8 21:54 file.jpg

这是我的设置。

集群详细信息

在 GKE 上运行的 Autopilot 集群

部署详细信息

我有一个包含以下指令的部署:

规格

volumeMounts:
- name: nfs-files
  mountPath: /var/files

  volumes:
- name: nfs-files
  nfs:
    server: nfs-server-hostname
    path: /mnt/files
    readOnly: true

NFS 主机导出

/mnt/files *.hostname(rw,sync,no_subtree_check)

答案1

这与 Kubernetes 与 NFS 之间的交互有关,特别是在使用fsGroup securityContext。从 NFS 挂载的卷读取存在困难,而且 fsGroup 安全概念似乎不适用于NFS 挂载

如果你为 pod 配置设置了适当的权限securityContext,则可以确保卷以适当的权限安装。请参阅此文档如何为 Pod 或容器配置安全上下文

相关内容