Harbor with K8S 重启后不能正常启动

  1. 一、 写作背景
  2. 二、排查过程
  3. 三、harbor-database解决方法
  4. 四、
  5. 四、举一反三
  6. 五、 文章引用

一、 写作背景

K8S 基础系统搭建完毕后(包括 rook-ceph、dashboard、harbor、prometheus、ingress等),对kubeadm、kubelet等应用进行了升级,服务重启后发现 Harbor 不能正常启动,排查结果为 pod harbor-database-0 没有正常启动故有此解决方案。

本文以 dashboard 为管理端进行可视化管理,相应命令行操作会提及,但不会太详细。

二、排查过程

经对各 pod 的日志进行查看发现 harbor-database-0这个 pod 对pvc上已经存在的数据没有了读写权限

# kubectl logs -n harbor gxsk-harbor-database-0 database

FATAL: data directory "/var/lib/postgresql/data" has group or world access
DETAIL: Permissions should be u=rwx (0700).

三、harbor-database解决方法

网上介绍需要修改 pod 试了一下,直接修改 pod 的配置文件,容易出错,在这里使用修改 Stateful Sets 相关配置的方法修改 pod

# kubectl -n harbor  edit statefulsets.apps gxsk-harbor-database

# 大约在230行左右,修改 initContainers 的参数如下,其中 chmod -R 700 /var/lib/postgresql/data 是新增内容

    initContainers:
    - args:
      - -c
      - chown -R 999:999 /var/lib/postgresql/data && chmod -R 700 /var/lib/postgresql/data

statefulsets

修改后保存文件,系统会自动重新部署该服务,如果没有部署,则将其部署个数先改为0,然后再改为1,强制重新部署一下。

# 先改为0,删除已有但启动不成功的 pod
kubectl scale -n harbor statefulset gxsk-harbor-database --replicas=0

# 然后再改为1,添加一个 pod
kubectl scale -n harbor statefulset gxsk-harbor-database --replicas=1

# 静待成功部署

四、

Unable to attach or mount volumes: unmounted volumes=[job-logs], unattached volumes=[job-logs default-token-bpdnw jobservice-config]: timed out waiting for the condition

四、举一反三

其它业务也多为类似权限问题,均在相应位置给指定目录赋权即可解决。

五、 文章引用

九析带你轻松完爆 helm3 harbor


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 long@longger.xin

文章标题:Harbor with K8S 重启后不能正常启动

字数:463

本文作者:Longger

发布时间:2020-07-28, 15:32:57

最后更新:2024-11-01, 15:02:59

原始链接:https://www.longger.xin/article/40439.html

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

×

喜欢就点赞,疼爱就打赏

github