为了将 GCP 文件安装到 GKE Pod,下面是 PV 对象清单片段。这里 Pod securityContext 的 fsGroup 设置并未向已安装的 Filestore 所需的组授予所有权。
nfs:
server: my.filestore.com
path: /data
这是 Pod 中使用的 securityContext,其中引用了上述 PV/PVC
spec:
securityContext:
runAsGroup: 101
runAsUser: 101
fsGroup: 101 #mygrp
fsGroupChangePolicy: "OnRootMismatch"
这是具有上述清单的挂载目录的权限,请参阅组。
drwxrwsr-x 9 root root 4096 Aug 10 10:26 data
搜索互联网后,我找到了以下解决方案,但在这里我被迫使用 IP 而不是 GKE 中文件存储的 PV 对象中的 GCP 文件存储的 DNS 名称。以下是我的 pv 的 CSI 部分片段。
csi:
driver: filestore.csi.storage.gke.io
volumeHandle: my-pv-volume-handle
volumeAttributes:
ip: 1.2.3.4
volume: /data
这是具有上述清单的挂载目录的权限,请参阅组。
drwxrwsr-x 9 root mygrp 4096 Aug 10 10:26 data
我想两者兼得,即。使用 DNS 名称并为已安装的文件夹获取正确的组。
因此,两种挂载共享 Filestore 到 GKE 的方法的区别在于,一种使用直接 nfs,第二种使用 csi 驱动程序。
我们推荐 CSI 驱动程序,因为它能够实现您为 pod 设置的 securityContext,但它不支持 FQDN。在 IP 地址上。我建议在这里打开一个错误https://github.com/kubernetes-sigs/gcp-filestore-csi-driver/issues并询问原因以及他们是否计划实施它!