在 KubeSphere 中部署 Harbor
Harbor 是一个开源仓库,通过各种策略和基于角色的访问控制来保护制品,确保镜像经过扫描且没有漏洞,并对镜像签名使其受信。
本教程演示如何从 KubeSphere 应用商店部署 Harbor。
准备工作
- 请确保已启用 OpenPitrix 系统。
- 您需要创建一个企业空间、一个项目和一个用户帐户 (
project-regular
) 供本教程操作使用。该帐户需要是平台普通用户,并邀请至项目中赋予operator
角色作为项目操作员。本教程中,请以project-regular
身份登录控制台,在企业空间demo-workspace
中的demo-project
项目中进行操作。有关更多信息,请参见创建企业空间、项目、用户和角色。
动手实验
步骤 1:从应用商店中部署 Harbor
在
demo-project
项目的概览页面,点击左上角的应用商店。找到 Harbor,点击应用信息页面上的安装。
设置名称并选择应用版本。请确保将 Harbor 部署在
demo-project
中,点击下一步。在应用配置页面,编辑 Harbor 的配置文件,请注意以下字段。
type
:访问 Harbor 服务的方式。本示例使用nodePort
。tls
:指定是否启用 HTTPS。多数情况下设置为false
。externalURL
:暴露给租户的 URL。备注
请指定
externalURL
,如果您访问 Harbor 有问题,该字段会对解决问题非常有用。请确保在本教程中使用 HTTP 协议和其对应的
nodePort
。有关更多信息,请参见常见问题中的示例配置。
配置编辑完成后,点击安装继续。
稍等片刻待 Harbor 启动并运行。
步骤 2:访问 Harbor
基于配置文件中
expose.type
字段的设置,访问方式可能会不同。本示例使用nodePort
访问 Harbor,按照先前步骤中的设置,访问http://nodeIP:30002
。备注
取决于您的 Kubernetes 集群的部署位置,您可能需要在安全组中放行端口并配置相关的端口转发规则。
使用默认帐户和密码 (
admin/Harbor12345
) 登录 Harbor。密码由配置文件中的harborAdminPassword
字段定义。
常见问题
如何启用 HTTP 登录?
在步骤 1 中将
tls.enabled
设置为false
。externalURL
的协议必须和expose.nodePort.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"
如何启用 HTTPS 登录?
a. 使用自签名证书。
- 在步骤 1 中将配置文件中的
tls.enabled
设置为true
,并对应编辑externalURL
。 - 将 Pod
harbor-core
的/etc/core/ca
中存储的自签名证书复制到您的主机。 - 先在您的主机中信任该自签名证书,然后重启 Docker。
b. 使用公共 SSL。
- 将证书添加为密钥 (Secret)。
- 在步骤 1 中将配置文件中的
tls.enabled
设置为true
,并对应编辑externalURL
。 - 编辑
tls.secretName
。
- 在步骤 1 中将配置文件中的
有关更多信息,请参见 Harbor 文档。