helm部署harbor

注意: 测试不成功,并且文档比较乱

github: https://github.com/goharbor

此处利用helm进行部署

# helm repo add harbor https://helm.goharbor.io

git  clone https://github.com/goharbor/harbor-helm.git
# 切换到包分支
git checkout chart-repository
# 找到自己想要的版本,并且进行解压

解压之后,记得创建pv和修改pvcvim values.yaml,使用"storageclass"

前提使用storageclass,出门左拐找文档

# 注释掉pvc名称existingClaim
#sed -i 's@existingClaim:@#existingClaim:@g' values.yaml
# 设置storageclass的默认
kubectl patch storageclass managed-nfs-storage -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
# 不设置默认,获取storageclass
kubectl get storageclass
# 并且修改values.yaml

使用静态pvc 创建静态pvc对应的nfs目录,配置好values.yaml下的existingClaim配置文件

mkdir -p /data/harbor/chartmuseum
mkdir -p /data/harbor/registry
mkdir -p /data/harbor/jobservice
mkdir -p /data/harbor/database
mkdir -p /data/harbor/redis
cat >> /etc/exports << EOF
/data/harbor/chartmuseum  10.10.10.0/24(rw,sync,no_root_squash)
/data/harbor/database     10.10.10.0/24(rw,sync,no_root_squash)
/data/harbor/jobsservice  10.10.10.0/24(rw,sync,no_root_squash)
/data/harbor/redis        10.10.10.0/24(rw,sync,no_root_squash)
/data/harbor/register     10.10.10.0/24(rw,sync,no_root_squash)
EOF

需要手动创建pvc

persistence:
  persistentVolumeClaim:
    registry:
      existingClaim: "harbor-chartmuseum"
# 剩下的配置想都是一样的。

helm 默认使用的是 ingress ,如果不使用,或者使用 nodeport 的方式,请在一开始修改 expose

ingress文档

kubectl create ns harbor
#helm2
helm install --name=harbor  .
#helm3
helm install harbor -n harbor .

删除

#helm2
helm delete --purge harbor
#helm3
helm uninstall -n harbor harbor
kubectl delete pvc data-harbor-harbor-redis-0
kubectl delete pvc harbor-harbor-chartmuseum
kubectl delete pvc harbor-harbor-jobservice
kubectl delete pvc harbor-harbor-registry
kubectl delete pvc database-data-harbor-harbor-database-0

helm harbor 1.4.1版本之前有权限问题

注意: 1.4.2下面的init容器还需要重新修改一下 daemon.json,和证书的下载需要匹配一下,其余的跟compose使用类似

以下的value.yaml的配置文件,由于文档转换问题,就用...代替了

redis数据目录,/var/lib/redis,需要设置redis的用户及用户组权限

      initContainers:
      - name: "change-permission-of-directory"
        image: ...
        imagePullPolicy: ...
        command: ["/bin/sh"]
        args: ["-c", "chown -R 999:999 /var/lib/redis"]
        volumeMounts:
        - name: data
          mountPath: /var/lib/redis
          subPath:

踩坑二:registry组件的镜像存储目录权限导致镜像推送失败

registry的镜像存储目录,需要设置registry用户的用户及用户组,不然镜像推送失败

      initContainers:
      - name: "change-permission-of-directory"
        image: ...
        imagePullPolicy: ...
        command: ["/bin/sh"]
        args: ["-c", "chown -R 10000:10000 $rootdirectory"]
        volumeMounts:
        - name: registry-data
          mountPath: ...
          subPath: ...

踩坑三:chartmuseum存储目录权限,导致chart推送失败

      initContainers:
      - name: "change-permission-of-directory"
        image: ...
        imagePullPolicy: ...
        command: ["/bin/sh"]
        args: ["-c", "chown -R 10000:10000 /chart_storage"]
        volumeMounts:
        - name: chartmuseum-data
          mountPath: /chart_storage
          subPath: ...

踩坑四: 域名配置问题

域名一旦配置了,k8s内网访问,而宿主机访问不了。所以应该做一下规划,并且做hosts解析

Copyright © hankbook.cn 2020 all right reserved,powered by Gitbook该文件修订时间: 2022-08-08 10:48:14

results matching ""

    No results matching ""