Harbor是一个开源的企业级Docker镜像存储和管理工具。Harbor提供了安全的访问控制、镜像复制和扩展性等功能,使得团队内部可以方便地共享和管理Docker镜像。
以下是Harbor的一些主要特点:
本次安装使用到腾讯云KTE、COS、PostgreSQL RDS、CFS和云原生网关等云组件,redis采用有状态K8s应用方式部署。在安装前需要购买并配置好对应的组件。
在控制机上配置好helm,并添加Harbor仓库源
helm repo add bitnami https://charts.bitnami.com/bitnami
下载helm安装包到本地用于检查分析配置项
helm pull bitnami/harbor --version:21.4.0
按照下面的格式填入正确的参数后,即可在控制机上安装
helm install harbor /opt/harbor-21.4.0.tgz -n ns-harbor \
--set global.storageClass=sc-harbor \
--set internalTLS.enabled=false \
--set exposureType=ingress \
--set ingress.core.hostname=harbor.test.com \
--set ingress.core.ingressClassName=kong \
--set ingress.core.controller=ingress-controllers.konghq.com/kong \
--set ingress.notary.hostname=notary.test.com \
--set ingress.notary.ingressClassName=kong \
--set ingress.notary.controller=ingress-controllers.konghq.com/kong \
--set externalURL=https://harbor.test.com \
--set persistence.imageChartStorage.type=s3 \
--set persistence.imageChartStorage.s3.accesskey=*** \
--set persistence.imageChartStorage.s3.secretkey=*** \
--set persistence.imageChartStorage.s3.region=ap-guangzhou \
--set persistence.imageChartStorage.s3.bucket=桶名 \
--set persistence.imageChartStorage.s3.regionendpoint=cos.ap-guangzhou.myqcloud.com \
--set persistence.imageChartStorage.s3.secure=true \
--set adminPassword="***" \
--set postgresql.enabled=false \
--set externalDatabase.host="***" \
--set externalDatabase.user="rdsadmin" \
--set externalDatabase.password="***" \
--set externalDatabase.coreDatabase="registry" \
--set externalDatabase.notaryServerDatabase="notary_server" \
--set externalDatabase.notaryServerUsername="rdsadmin" \
--set externalDatabase.notaryServerPassword="***" \
--set externalDatabase.notarySignerDatabase="notary_signer" \
--set externalDatabase.notarySignerUsername="rdsadmin" \
--set externalDatabase.notarySignerPassword="***"
等待几分钟后安装完成,通过harbor.test.com访问配置好的Harbor,正常登录首页如下:
由于COS对Harbor的支持不是很友好,上面的安装配置完成后,上传镜像时仍然会报错(原因:list强一致问题,即put 文件后直接list不一定能list到文件),需要腾讯云提工单(提供客户账号appid、可用区、桶名称信息),要求COS运维下发强一致的配置,会保障能list出来。
另外,从2024年1月份开始腾讯云因为域名合格问题进行了一些限制,必须联系腾讯云客户将使用的桶开白名单才行,否则会报错,提示:bucket you are attempting to access must be addressed using COS virtual-styled domain.
如果想要通过公网能够访问Harobr,可以在云原生API网关的实例信息详情页面,添加“公网负载均衡”即可。
如果镜像保存到CFS文件存储里面,那就将persistence.imageChartStorage.type修改为filesystem并去掉s3相关的配置即可,镜像会保存在前面定义的SC文件存储里面,参考命令如下:
helm install harbor /opt/harbor-21.4.0.tgz -n ns-harbor \
--set global.storageClass=sc-harbor \
--set internalTLS.enabled=false \
--set exposureType=ingress \
--set ingress.core.hostname=harbor.test.com \
--set ingress.core.ingressClassName=kong \
--set ingress.core.controller=ingress-controllers.konghq.com/kong \
--set ingress.notary.hostname=notary.test.com \
--set ingress.notary.ingressClassName=kong \
--set ingress.notary.controller=ingress-controllers.konghq.com/kong \
--set externalURL=https://harbor.test.com \
--set persistence.imageChartStorage.type=filesystem \
--set adminPassword="***" \
--set postgresql.enabled=false \
--set externalDatabase.host="***" \
--set externalDatabase.user="rdsadmin" \
--set externalDatabase.password="***" \
--set externalDatabase.coreDatabase="registry" \
--set externalDatabase.notaryServerDatabase="notary_server" \
--set externalDatabase.notaryServerUsername="rdsadmin" \
--set externalDatabase.notaryServerPassword="***" \
--set externalDatabase.notarySignerDatabase="notary_signer" \
--set externalDatabase.notarySignerUsername="rdsadmin" \
--set externalDatabase.notarySignerPassword="***"
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。