代码之家  ›  专栏  ›  技术社区  ›  Yanick Salzmann

openshift postgres持久卷权限

  •  0
  • Yanick Salzmann  · 技术社区  · 6 年前

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

    - mountPath: /var/lib/pgsql/data/userdata
      name: db-storage-volume
    

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

    我现在面临的问题是initdb脚本想要更改该数据文件夹的权限,但是它不能,并且目录被分配给一个非常奇怪的用户/组,作为 ls -la /var/lib/pgsql/data 指示(包括失败的命令输出):

    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 回复  |  直到 6 年前
        1
  •  2
  •   Yanick Salzmann    6 年前

    • 将装载更改为父文件夹 /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 文件夹由正确的用户拥有。