问题:无法写入容器内的目录.
我正在使用hostPath存储来满足持久存储要求.我没有使用PV anc PVC来使用hospath,而不是使用它的卷插件.例如
{
"apiVersion": "v1",
"id": "local-nginx",
"kind": "Pod",
"metadata": {
"name": "local-nginx"
},
"spec": {
"containers": [
{
"name": "local-nginx",
"image": "fedora/nginx",
"volumeMounts": [
{
"mountPath": "/usr/share/nginx/html/test",
"name": "localvol"
}
]
}
],
"volumes": [
{
"name": "localvol",
"hostPath": {
"path": "/logs/nginx-logs"
}
}
]
}
}
注意:nginx pod仅适用于exmaple.
主机上的我的目录被创建为“drwxr-xr-x.2 root root 6 Apr 23 18:42 / logs / nginx-logs”
并且相同的权限反映在pod内,但是因为它是755,其他用户,即pod内的用户不能在已安装的dir内写入/创建文件.
问题:
>有没有办法避免上面指出的问题?
>在Hostpath存储的情况下,有没有办法指定目录权限?
>我是否可以在以下定义中设置任何字段以提供所需的权限?
"volumes":{
"name": "vol",
"hostPath": {
"path": "/any/path/it/will/be/replaced"}}
最佳答案 我认为您遇到的问题与用户或组无关(您的pod定义没有RunAsUser规范,因此默认情况下它以root身份运行),而是与SELinux策略相关.为了使用rw权限将主机目录挂载到pod,它应具有以下标签:svirt_sandbox_file_t.您可以使用以下命令检查当前的SElinux标签:ls -laZ< your host directory>并使用chcon -Rt svirt_sandbox_file_t 进行更改.