openshift postgres持久卷权限

时间:2018-08-30 13:12:23

标签: postgresql openshift

我目前使用openshift部署的postgres映像通常运行良好。但是,我需要永久存储数据库数据(当然),为此,我创建了一个永久卷声明,并将其安装到postgres数据目录中,如下所示:

- name: db-storage-volume
  persistentVolumeClaim:
    claimName: db-storage

ls -la /var/lib/pgsql/data

我现在面临的问题是initdb脚本想要更改该数据文件夹的权限,但是它不能,并且该目录已分配给一个非常奇怪的用户/组,如total 12 drwxrwxr-x. 3 postgres root 21 Aug 30 13:06 . drwxrwx---. 3 postgres root 17 Apr 5 09:55 .. drwxrwxrwx. 2 nobody nobody 12288 Jun 26 11:11 userdata chmod: changing permissions of '/var/lib/pgsql/data/userdata': Permission denied 的输出所示(包括失败的命令输出):

{{1}}

我该如何处理?我的意思是,权限足以读取/写入,但是initdb(以及基本映像的初始化功能)确实想要更改该文件夹的权限。

1 个答案:

答案 0 :(得分:0)

就像我发送问题一样,我有一个主意,事实证明它是有效的:

  • 将安装更改为父文件夹/var/lib/pgsql/data/
  • 修改我的输入脚本,使其在首次运行时包含一个mkdir /var/lib/pgsql/data/userdata(又名该文件夹尚不存在)

现在是:

total 16
drwxrwxrwx. 3 nobody     nobody 12288 Aug 30 13:19 .
drwxrwx---. 3 postgres   root      17 Apr  5 09:55 ..
drwxr-xr-x. 2 1001320000 nobody  4096 Aug 30 13:19 userdata

哪个工作。请注意,该文件夹本身仍由nobody:nobody拥有,为777,但是创建的userdata文件夹由正确的用户拥有。