Harbor部署

    仓库设置

    部署Harbor

    1. --set expose.ingress.hosts.core=registry.example.choerodon.io \
    2. --set externalURL=https://registry.example.choerodon.io \
    3. --set persistence.persistentVolumeClaim.registry.storageClass=nfs-provisioner \
    4. --set persistence.persistentVolumeClaim.jobservice.storageClass=nfs-provisioner \
    5. --set persistence.persistentVolumeClaim.database.storageClass=nfs-provisioner \
    6. --set chartmuseum.enabled=false \
    7. --set clair.enabled=false \
    8. --set notary.enabled=false \
    9. --set harborAdminPassword=Harbor12345 \
    10. --version 1.1.3 \
    11. --namespace c7n-system
    • 更多参数及含义请参考
    • 访问设置的域名出现以下界面即部署成功

    证书配置

    • 删除自签名证书secret
    • 创建域名证书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. ......
    2. # - name: ca-download
    3. # mountPath: /etc/core/ca/ca.crt
    4. # subPath: ca.crt
    5. ......
    6. volumes:
    7. # secret:
    8. # secretName: "harbor-harbor-ingress"
    9. # items:
    10. # - key: ca.crt
    11. # path: ca.crt
    12. ......

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

    没有公网域名是无法申请证书的,故只能配置本地Docker信任Harbor自签名证书,此方法需将会使用到该Harbor的主机都进行自签名证书信任配置。
    • 访问 Harbor ,进入 library 项目,点击 注册证书 下载ca证书
      • 将得到的ca.crt证书文件拷贝至其他会使用到该Harbor的主机上