前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >KTE+COS+云原生API网关安装Harbor

KTE+COS+云原生API网关安装Harbor

原创
作者头像
用户11153908
修改2024-06-13 13:46:31
721
修改2024-06-13 13:46:31

Harbor是一个开源的企业级Docker镜像存储和管理工具。Harbor提供了安全的访问控制、镜像复制和扩展性等功能,使得团队内部可以方便地共享和管理Docker镜像。

Harbor的特点

以下是Harbor的一些主要特点:

  • 安全的访问控制:Harbor支持基于用户、团队和角色的细粒度访问控制,可以帮助企业保护镜像的安全性。
  • 镜像复制:Harbor支持镜像的复制功能,可以将镜像复制到多个节点上,提高了镜像的可用性和容错性。
  • 可扩展性:Harbor可以轻松扩展到数百个节点,以满足企业不断增长的Docker镜像管理需求。
  • 多租户支持:Harbor支持多租户环境,可以帮助企业在不同的团队和部门之间隔离Docker镜像。

本次安装使用到腾讯云KTE、COS、PostgreSQL RDS、CFS和云原生网关等云组件,redis采用有状态K8s应用方式部署。在安装前需要购买并配置好对应的组件。

安装部署

安装前的准备

  • 购买一个云原生API网关,创建完成后在ingress中与KTE关联
  • 创建一个COS对象存储桶(注意:不能启用多区域容灾功能,否则上传镜像时会报错),并创建一个子用户用于管理该桶,并生成一个密钥用于harbor连接访问
  • 购买一台PostgreSQL RDS(1 核 2 GiB,磁盘 10 G),并创建3个库:registry、notary_server、notary_signer、
  • 在KTE中创建一个新的命令空间:ns-harbor
  • 在KTE中创建一个storeageClass:sc-harbor
安装前的准备

安装配置

在控制机上配置好helm,并添加Harbor仓库源

代码语言:txt
复制
helm repo add bitnami https://charts.bitnami.com/bitnami

下载helm安装包到本地用于检查分析配置项

代码语言:txt
复制
helm pull bitnami/harbor --version:21.4.0

按照下面的格式填入正确的参数后,即可在控制机上安装

代码语言:txt
复制
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文件存储里面,参考命令如下:

代码语言:bash
复制
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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Harbor的特点
  • 安装部署
    • 安装前的准备
      • 安装配置
      相关产品与服务
      容器镜像服务
      容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档