k8s中harbor-database-0日志报Permissions should be u=rwx (0700)的处理方法

由于我的harbor仓库和k8s所在的服务器经常要关机,今天开机以后k8s启动,k8s上的harbor仓库的harbor-harbor-database-0 POD直接error了,查看日志打印了以下信息:

Defaulted container "database" out of: database, data-migrator (init)
FATAL:  data directory "/var/lib/postgresql/data/pgdata" has group or world access
DETAIL:  Permissions should be u=rwx (0700).

看到打印提示权限问题,然后我直接赋权给目录0700权限

chmod -R 0700 /data/harbor/database/pgdata

然后删除harbor-harbor-database-0这个POD,重启以后发现还是同样报错,再次查看/data/harbor/database/pgdata目录权限

drwxrws--- 19 lxd    999 4096 Jul 29 01:32 pgdata/

这个目录有一个特殊的s权限,但是这个权限卡起来也是容器自行修改过的权限,再次删除POD依然起不来。

最后觉得实在麻烦,直接编辑这个sts资源,然后删除以下配置

kubectl edit sts -n harbor harbor-harbor-database#然后删除这段      securityContext:
        fsGroup: 999
        runAsUser: 999

然后重新赋权给pgdata目录

chmod -R 0700 /data/harbor/database/pgdata

再次删除harbor-harbor-database-0 POD后启动正常。

此方案只能作为临时方案,因为去掉了容器安全的上下文,导致容器权限范围变大,我本地是测试环境,所以这些可以暂时不用过于关注。

可以起来以后先备份pgdata数据,然后删除pv/pvc重新创建对应权限的存储卷目录权限,然后再删除重启harbor-harbor-database-0,操作如下:

重建pv/pvc之前,重新赋权该目录

chown -R 999:999 /data/harbor/database/pgdatachmod -R 0700 /data/harbor/database/pgdata

然后重启harbor数据库业务的POD

kubectl delete pod -n harbor harbor-harbor-database-0

重启以后该POD启动正常。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://sulao.cn/post/1112

评论列表

0%