Harbor部署

预备知识

如果你不知道Harbor是做什么的,那么请参考下面链接(包括但不限于)进行学习:

仓库设置

添加choerodon chart仓库并同步

  1. helm repo add c7n https://openchart.choerodon.com.cn/choerodon/c7n/
  2. helm repo update

部署Harbor

  • 若需了解项目详情及各项参数含义,请移步 Harbor Chart
  • 编写参数配置文件 harbor.yaml

    1. expose:
    2. ingress:
    3. hosts:
    4. core: registry.example.choerodon.io
    5. externalURL: https://registry.example.choerodon.io
    6. persistence:
    7. persistentVolumeClaim:
    8. registry:
    9. storageClass: nfs-provisioner
    10. jobservice:
    11. storageClass: nfs-provisioner
    12. database:
    13. storageClass: nfs-provisioner
    14. redis:
    15. storageClass: nfs-provisioner
    16. trivy:
    17. storageClass: nfs-provisioner
    18. chartmuseum:
    19. enabled: false
    20. clair:
    21. enabled: false
    22. notary:
    23. enabled: false
    24. harborAdminPassword: Harbor12345
  • 执行安装

    1. helm upgrade --install harbor c7n/harbor \
    2. -f harbor.yaml \
    3. --create-namespace \
    4. --version 1.5.4 \
    5. --namespace c7n-system

验证部署

Harbor启动速度较慢请等待所有Pod都为Running后进行界面查看。

  • 访问设置的域名出现以下界面即部署成功

    Harbor部署 - 图1

证书配置

有公网域名

请到域名服务商处获取对应域名nginx类型证书后执行以下操作:

  • 删除自签名证书secret

    1. kubectl delete secret -n c7n-system harbor-harbor-ingress
  • 创建域名证书secret,请注意替换命令中${KEY_FILE}${CERT_FILE}为文件访问路径

    1. kubectl create secret tls harbor-harbor-ingress -n c7n-system --key ${KEY_FILE} --cert ${CERT_FILE}
  • 编辑 harbor-core 的 deployment 对象

    1. kubectl edit deployment -n c7n-system harbor-harbor-core
  • 删除下面注释的内容

    1. ......
    2. volumeMounts:
    3. # - mountPath: /etc/core/ca
    4. # name: ca-download
    5. ......
    6. volumes:
    7. # - name: ca-download
    8. # secret:
    9. # defaultMode: 420
    10. # secretName: harbor-harbor-ingress
    11. ......

没有公网域名时使用自签名证书

没有公网域名是无法申请证书的,故只能配置本地容器运行时信任Harbor自签名证书,此方法需将会使用到该Harbor的主机都进行自签名证书信任配置。

  • 访问 Harbor ,进入 配置管理 -> 系统设置 -> 镜像库根证书,点击 下载 下载ca证书,并重命名为 registry.example.choerodon.io.crt

    Harbor部署 - 图2

  • 分发 registry.example.choerodon.io.crt 证书文件

    • 将得到的 registry.example.choerodon.io.crt 证书文件拷贝至其他会使用到该 Harbor 的主机上

    • 配置信任harbor证书

      • Ubuntu:

        1. cp registry.example.choerodon.io.crt /usr/local/share/ca-certificates/registry.example.choerodon.io.crt
        2. update-ca-certificates
      • CentOS:

        1. cp registry.example.choerodon.io.crt /etc/pki/ca-trust/source/anchors/yourdomain.com.crt
        2. update-ca-trust