我正在使用azure文件作为kubernetes的卷,但是我遇到了问题。
我可以设置整个共享的权限,但不能更改特定文件/目录的权限。
如果我为整个共享设置默认权限(例如644(rw / r / r)),并尝试更改特定文件(例如Chmod 0644文件)的权限,则chmod不会生效,它始终是默认权限。
即使我没有提到默认权限,也需要0777,但我无法更改共享内文件/目录的权限。
我进行了一些研究,发现尚未实现此功能,来源是2016年,我希望现在启用此功能?
否则还有其他解决方案可以提出吗?
问候,
非常感谢@ Charles Xu的建议,它非常有用。我用了你的介词,但让我解释一下我的用例:
必须更改私钥的权限,否则SSH无法使用。
-rw-r--r-- 1个userx用户x 182 Oct 8 15:13配置
-rw-r--r- 1个userx用户x 1675年10月8日15:13 id_rsa
-rw-r--r-- 1个userx用户x 409十月8 15:13 id_rsa.pub
首先,将整个Azure文件共享作为持久卷安装在Pod上时,您只能控制整个Azure文件共享的权限。它不支持更改共享内部特殊文件的权限。
我建议您可以将文件过滤到不同的目录中,并且同一目录中的文件具有相同的权限。然后,您可以将Azure文件共享的目录作为不同的持久卷安装到Pod,并根据需要设置具有不同权限的持久卷。
例如,您需要一个目录为0644的目录及其中的文件为0664的目录。然后,您可以像这样创建一个持久卷:
apiVersion: v1
kind: PersistentVolume
metadata:
name: azurefile
spec:
capacity:
storage: 5Gi
accessModes:
- ReadWriteMany
storageClassName: azurefile
azureFile:
secretName: azure-secret
shareName: aksshare/subfolder1
readOnly: false
mountOptions:
- dir_mode=0644
- file_mode=0664
- uid=1000
- gid=1000
- mfsymlinks
- nobrl
并创建一个PersistentVolumeClaim,它将使用您在上面创建的PersistentVolume:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: azurefile
spec:
accessModes:
- ReadWriteMany
storageClassName: azurefile
resources:
requests:
storage: 5Gi
最后,使用具有volumes
的PersistentVolumeClaim创建容器,如下所示:
...
volumes:
- name: azure
persistentVolumeClaim:
claimName: azurefile
没问题时,您会看到类似您在下面设置的内容: