由于我的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/pgdata
chmod -R 0700 /data/harbor/database/pgdata
然后重启harbor数据库业务的POD
kubectl delete pod -n harbor harbor-harbor-database-0
重启以后该POD启动正常。
内容版权声明:除非注明,否则皆为本站原创文章。
转载注明出处:https://sulao.cn/post/1112
相关推荐
- k8s使用helm部署harbor镜像仓库并使用nodeport方式暴露
- k8s集群部署prometheus/node-exporter/dcgm-exporter
- k8s中calico匹配多种网络接口名字的方法
- ubuntu22.04使用containerd部署k8s集群
- k8s集群kube-proxy从iptables模式切换到ipvs模式
- k8s级联删除(删除deployment却删除不了rs和pod)异常问题的处理办法
- k8s中修改containerd存储目录并将数据迁移到新磁盘目录
- k8s网络cni插件calico的安装和网络模式切换
- k8s中pod使用RDMA网卡的方法(待验证)
- k8s集群中让POD使用固定IP的方法
评论列表