​Harbor​​ 是一个开源仓库,通过各种策略和基于角色的访问控制来保护制品,确保镜像经过扫描且没有漏洞,并对镜像签名使其受信。

本教程演示如何从 KubeSphere 应用商店部署 ​​Harbor​​。

准备工作


  • 请确保​​已启用 OpenPitrix 系统​​。
  • 您需要创建一个企业空间、一个项目和一个用户帐户 (​​project-regular​​​) 供本教程操作使用。该帐户需要是平台普通用户,并邀请至项目中赋予 ​​operator​​​ 角色作为项目操作员。本教程中,请以 ​​project-regular​​​ 身份登录控制台,在企业空间 ​​demo-workspace​​​ 中的 ​​demo-project​​​ 项目中进行操作。有关更多信息,请参见​​创建企业空间、项目、帐户和角色​​。

动手实验

步骤 1:从应用商店中部署 Harbor


  1. 在 ​​demo-project​​ 项目的概览页面,点击左上角的应用商店
    在 KubeSphere 中部署 Harbor_字段
  2. 找到 Harbor,点击应用信息页面上的部署
    在 KubeSphere 中部署 Harbor_服务端_02
    在 KubeSphere 中部署 Harbor_服务端_03
  3. 设置名称并选择应用版本。请确保将 Harbor 部署在 ​​demo-project​​ 中,点击下一步
    在 KubeSphere 中部署 Harbor_字段_04
  4. 应用配置页面,编辑 Harbor 的配置文件,请注意以下字段。​​type​​:访问 Harbor 服务的方式。本示例使用 ​​nodePort​​。​​tls​​:指定是否启用 HTTPS。多数情况下设置为 ​​false​​。​​externalURL​​:暴露给租户的 URL。备注
  5. 配置编辑完成后,点击部署继续。

  • 请指定 ​​externalURL​​,如果您访问 Harbor 有问题,该字段会对解决问题非常有用。
  • 请确保在本教程中使用 HTTP 协议和其对应的 ​​nodePort​​。有关更多信息,请参见常见问题中的​​示例配置​​。

  1. 稍等片刻待 Harbor 启动并运行。
    在 KubeSphere 中部署 Harbor_配置文件_05

步骤 2:访问 Harbor


  1. 基于配置文件中 ​​expose.type​​ 字段的设置,访问方式可能会不同。本示例使用 ​​nodePort​​ 访问 Harbor,按照先前步骤中的设置,访问 ​​http://nodeIP:30002​​。
    在 KubeSphere 中部署 Harbor_服务端_06
    备注
    取决于您的 Kubernetes 集群的部署位置,您可能需要在安全组中放行端口并配置相关的端口转发规则。
  2. 使用默认帐户和密码 (​​admin/Harbor12345​​) 登录 Harbor。密码由配置文件中的 ​​harborAdminPassword​​ 字段定义。
    在 KubeSphere 中部署 Harbor_配置文件_07

常见问题


  1. 如何启用 HTTP 登录?
    在步骤 1 中将 ​​tls.enabled​​ 设置为 ​​false​​。​​externalURL​​ 的协议必须和 ​​expose.type.ports​​ 相同。
    如果您使用 Docker 登录,请在 ​​daemon.json​​ 中将 ​​externalURL​​ 设置为 ​​insecure-registries​​ 其中之一,然后重新加载 Docker。
    下面是示例配置文件,供您参考。请注意阅读注解。
    ​## 请注意,192.168.0.9 是示例 IP 地址,您必须使用自己的地址。 expose: type: nodePort tls: enabled: false secretName: "" notarySecretName: "" commonName: "192.168.0.9" # 将 commonName 更改成您自己的值。 nodePort: # NodePort 服务的名称。 name: harbor ports: http: # 使用 HTTP 服务时,Harbor 监听的服务端口。 port: 80 # 使用 HTTP 服务时,Harbor 监听的节点端口。 nodePort: 30002 https: # 使用 HTTPS 服务时,Harbor 监听的服务端口。 port: 443 # 使用 HTTPS 服务时,Harbor 监听的服务端口。 nodePort: 30003 # 仅在 notary.enabled 设置为 true 时需要此配置。 notary: # Notary 监听的服务端口。 port: 4443 # Notary 监听的节点端口。 nodePort: 30004 externalURL: http://192.168.0.9:30002 # 使用您自己的 IP 地址。 # Harbor admin 的初始密码。启动 Harbor 后可以通过主页修改。 harborAdminPassword: "Harbor12345" # 用于加密的密钥,必须是包含 16 个字符的字符串。 secretKey: "not-a-secure-key" ​
  2. 如何启用 HTTPS 登录?a. 使用自签名证书。
  3. b. 使用公共 SSL。

  • 将证书添加为密钥 (Secret)。
  • 在步骤 1 中将配置文件中的 ​​tls.enabled​​ 设置为 ​​true​​,并对应编辑 ​​externalURL​​。
  • 编辑 ​​tls.secretName​​。


有关更多信息,请参见 ​​Harbor 文档​​。