本主题介绍如何从下载的 OVA 文件安装专用 Harbor 映像注册表,以提供在脱机 vSphere 环境中部署 Tanzu Kubernetes Grid (TKG) 所需的映像。最终的 Harbor 注册表与 TKG 一起运行,并且与 TKG 分开运行,以存储和管理 TKG 使用的组件映像。
这种基于虚拟机的 Harbor 部署仅支持在 Internet 受限或气隙环境中托管 TKG 系统映像。要部署可扩展且高度可用的 Harbor 以在生产环境中管理托管应用的大量映像,请将 Harbor 软件包部署到 TKG 集群,如《使用 Tanzu CLI 创建和管理 TKG 2.2 工作负载集群》中的为服务注册表安装 Harbor 中所述。
注意如 Harbor v2.6.0 发行说明中注释,Notary 和 Chartmuseum 已在 Harbor v2.6 中已被弃用,并计划在将来的版本中删除。用户应切换到 Sigstore Cosign 以进行容器签名和验证。
ca.crt
、 server.crt
和 server.key
文件要从 OVA 文件部署 Harbor,请执行以下操作:
在 vCenter 中,右键单击 vSphere集群,然后选择部署 OVF 模板 (Deploy OVF Template)…。
此时将显示部署 OVF 模板 (Deploy OVF Template) 窗口。选择本地文件 (Local File),然后浏览到下载的 Harbor OVA 文件的位置。
单击右下角的下一步 (NEXT)。将显示一系列配置窗格。
源验证:单击是 (YES)。
虚拟机名称:输入为运行 Harbor 实例的虚拟机选择的名称。单击下一步 (NEXT)。
选择计算资源:保留默认选择,然后单击下一步 (NEXT)。
此步骤可能需要几分钟时间,因为 vSphere 下载并呈现 OVF 模板。
查看详细信息:单击下一步 (NEXT)。
许可协议:请接受许可证,然后单击下一步 (NEXT)。
选择存储:选择 vsanDatastore,然后单击下一步 (NEXT)。
选择网络:选择默认VM 网络 (VM Network),然后单击 下一步 (NEXT)。
自定义模板 (Customize template) > VM 凭据 (VM Credentials):
Root 密码 (Root Password)(必填):虚拟机上 root
用户帐户的首选密码,长度必须为 8-128 个字符。
允许通过 Root 进行 SSH:保留默认值,启用状态,以允许 ssh
以 root
用户身份访问虚拟机。
自定义模板 (Customize template) > Harbor 配置 (Harbor Configurations):
主机名(可选):如果提供,则 Harbor 主机名为 FQDN,例如 yourdomain.com
。不能是 IP 地址或 localhost
。
如果指定主机名 (Hostname),SAN(主体备用名称)属性仅包含 DNS 信息;不会提供 IP 信息。
如果未指定主机名 (Hostname),则 SAN 属性仅包含 IP 信息,不会提供 DNS 信息。
管理员密码 (Administrator Password)(必填):Harbor admin
用户的密码。供管理员用于访问 Harbor UI,以及由客户端容器用于提取和推送映像。长度必须至少为 8 至 128 个字符
Harbor 数据库密码 (Harbor Database Password):Harbor 内部数据库的密码。如果提供,则长度必须为 8 到 128 个字符。
启用 Harbor 默认扫描仪 (Enable Harbor Default Scanner):启用此选项以安装 Trivy 扫描仪,并将其激活以在图像上载到 Harbor 时对其进行扫描。
对 Harbor 使用自签名证书 (Use Self-signed Certificate For Harbor):
启用此选项以使用自签名证书,并将 CA 证书 (CA Certificate)、服务器证书 (Server Certificate) 和服务器秘钥 (Server Key) 留空。
否则,请停用为 Harbor 使用自签名证书 (Use Self-signed Certificate For Harbor) 并粘贴 CA 证书 (CA Certificate)、服务器证书 (Server Certificate) 和服务器密钥 (Server Key) 的多行文件内容。将它们粘贴到表单中时,多行值将转换为以空格字符作为分隔符的单行字符串。
自定义模板 (Customize template) > 网络配置 (Networking Configurations):
IP Address (IP 地址)、网络掩码 (Netmask) 和网关 (Gateway):eth0
的静态 IP 地址、网络掩码和网关(如果有)。
DNS、DNS 域 (DNS Domain):Harbor 虚拟机的 DNS 服务器和域。
即将完成 (Ready to complete):查看配置,然后单击完成 (FINISH)。
首次部署 Harbor OVA 时,Harbor 需要几分钟才能加载 Docker 映像。
要监视该过程并确认其正在进行中,请在虚拟机中 ssh
并运行:
watch docker ps
如果 5 分钟左右后 Harbor 未运行,请在虚拟机上检索日志文件以进行调试:
cd /etc/goharbor/harbor && ./harbor-support.sh --include-private
找到并解压缩日志文件。其名称类似于 /storage/log/harbor_appliance_logs_2022-11-30T09-39-12Z.tar.gz
如果看到Error: Unable to retrieve manifest or certificate file
(如下所示),请再次尝试部署 Harbor OVA。
无法在 Internet 受限的环境中将 Harbor 的代理缓存功能用于运行 Tanzu Kubernetes Grid v2.2。您仍然可以使用 Harbor 代理缓存来代理以前版本的 Tanzu Kubernetes Grid 中的映像,以及应用程序映像等非 Tanzu 映像。
如果丢失了 root
密码,请按照重置丢失的 Root 密码过程进行恢复。
从 OVA 部署的 Harbor 实例具有两个磁盘:
/storage
。如果需要增加 Harbor 的数据磁盘大小以容纳请求,则必须在更改设置时暂时关闭 Harbor 虚拟机的电源。如果虚拟机具有动态 IP 地址,则重新启动虚拟机需要执行如下所述的其他步骤。
要扩展 Harbor 实例的数据磁盘,请执行以下操作:
从 vSphere 主机和集群 (Hosts and Clusters) 视图中,右键单击 Harbor OVA 虚拟机,然后选择电源 (Power) > 关闭电源 (Power Off):
再次右键单击 Harbor OVA 虚拟机,然后选择编辑设置 (Edit Settings):
将出现编辑设置 (Edit Settings) 窗口。在虚拟硬件 (Virtual Hardware) 下,将硬盘 2 (Hard disk 2) 设置增加到首选容量。单击确定 (OK)。
再次右键单击 Harbor OVA 虚拟机,然后选择电源 (Power) > 打开电源 (Power On) 以重新启动虚拟机。
由于已重新启动 Harbor 虚拟机,您可能需要根据虚拟机的主机地址配置执行其他步骤:
静态 IP 地址:无其他步骤。
动态 IP 地址:如果 Harbor 虚拟机的 IP 地址已更改:
FQDN:如果 Harbor 虚拟机的 IP 地址已更改,请在虚拟机的 /etc/hosts
文件或 DNS 记录中更新其地址。
Harbor 虚拟机的 IP 地址发生更改时,轮换其证书:
使用 ssh
登录虚拟机。
停止 Harbor 服务:
systemctl stop harbor
通过移动或重命名旧证书的 server.crt
、server.key
、ca.crt
文件,对其进行备份:
server.crt
位于 /storage/data/secret/cert/server.crt
中server.key
位于 /storage/data/secret/cert/server.key
中ca.crt
位于 /storage/data/ca_download/ca.crt
中将新证书的 server.crt
、server.key
、ca.crt
保存到上述位置,并将其文件所有权和权限设置为与旧文件相同的设置。
启动 Harbor 服务:
systemctl start harbor
使用此 Harbor 注册表在 Internet 受限环境中部署管理集群后,可以通过以下两种方式之一启用 TKG 工作负载集群以使用 Harbor:
使用外部 Harbor 注册表。如果此注册表使用受信任的 CA 证书,则工作负载集群与注册表之间的连接是安全的。如果中央注册表使用自签名证书,则可以停用 TKG_CUSTOM_IMAGE_REPOSITORY_SKIP_TLS_VERIFY
并指定 TKG_CUSTOM_IMAGE_REPOSITORY_CA_CERTIFICATE
选项。设置此选项会自动将自签名证书注入工作负载集群。
将第二个 Harbor 实例部署为 TKG 中的共享服务。VMware 建议将 Harbor 软件包部署为由 TKG 管理的共享服务。有关详细信息,请参见为服务注册表安装 Harbor。
在具有负载均衡的基础架构上,VMware 建议将外部 DNS 打包服务与 Harbor 服务一起安装,如 Harbor 注册表和外部 DNS 中所述。