了解如何将 Harbor 安装和配置为 主管服务。然后,您可以将 Harbor 用作在 Tanzu Kubernetes Grid 集群和 vSphere Pod 上运行的工作负载的注册表。Harbor 需要将 Contour 作为输入控制器,因此请先安装 Contour 主管服务,然后再安装 Harbor。
将 Harbor 安装为主管服务
您可以通过 vSphere Client 中的工作负载管理选项将 Harbor 安装为主管服务。
前提条件
- 确认已升级到 vCenter Server 8.0a 或更高版本。vCenter Server 8.0a 及更高版本支持 Contour 和 Harbor 主管服务。
- 确认您在添加服务的 vCenter Server 系统上具有管理主管服务特权。
- 在要安装 Harbor 的同一主管上将 Contour 安装为主管服务。请参见在 vSphere IaaS control plane 中将 Contour 安装为 主管服务。
- 指定用于访问 Harbor 管理 UI 的 FQDN。
过程
结果
将 Harbor FQDN 映射到 Envoy Ingress IP 地址
成功安装 Harbor 后,将 Harbor FQDN 与 Envoy Ingress IP 地址的映射记录添加到配置了主管的外部 DNS 服务器中。
Tanzu Kubernetes Grid 集群、vSphere Pod 和主管必须能够解析 Harbor FQDN,才能从注册表中拉取映像。
与 Harbor 主管服务 建立信任
安装 Harbor 后,必须在 主管 与之间 Harbor 配置信任关系,以将 Harbor 用作 vSphere Pod 的注册表。与 Harbor 位于同一 主管 上的 Tanzu Kubernetes Grid 集群已自动与 Harbor 建立信任关系。要将 Harbor 用作在不同 主管 上运行的 Tanzu Kubernetes Grid 集群的注册表,必须在 Harbor 与这些 Tanzu Kubernetes Grid 集群之间配置信任关系。
在 Harbor 与 主管 之间建立信任关系
- 从 Harbor UI 或使用 主管 控制平面上的 TLS 密钥提取 Harbor CA。您可以在 Harbor 管理 UI 的 中获取 Harbor ca.cert。
- 将 Harbor CA 添加到 kube-system 命名空间中的 image-fetcher-ca-bundle ConfigMap。您必须使用 vCenter Single Sign-On 管理帐户登录,并且有权编辑 image-fetcher-ca-bundle。
- 按照此处所述配置 KUBE_EDITOR 环境变量:
- 使用以下命令编辑 ConfigMap:
kubectl edit configmap image-fetcher-ca-bundle -n kube-system
- 将 Harbor ca.cert 文件的内容附加到现有 主管 证书下的 ConfigMap。务必不要更改 主管 证书。
apiVersion: v1 data: ca-bundle: |- -----BEGIN CERTIFICATE----- MIIC/jCCAeagAwIBAgIBADANBgkqhkiG9w0BAQsFADAVMRMwEQYDVQQDEwprdWJl ... qB72tWi8M5++h2RGcVash0P1CUZOHkpHxGdUGYv1Z97Wl89dT2OTn3iXqn8d1JAK aF8= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDKDCCAhCgAwIBAgIQBbUsj7mqXXC5XRhqqU3GiDANBgkqhkiG9w0BAQsFADAU ... 5q7y87vOLTr7+0MG4O01zK0dJYx2jVhZlsuduMYpfqRLLewVl0eGu/6vr2M= -----END CERTIFICATE----- kind: ConfigMap metadata: creationTimestamp: "2023-03-15T14:28:34Z" name: image-fetcher-ca-bundle namespace: kube-system resourceVersion: "713" uid: 6b7611a0-25fa-40f7-b4f5-e2a13bd0afe3
- 保存对文件所做的编辑。因此,kubectl 报告:
已编辑 configmap/image-fetcher-ca-bundle
在 Harbor 与在非 Harbor 所在的 主管 上运行的 Tanzu Kubernetes Grid 集群之间建立信任
在未安装 Harbor 的 主管 上运行的 Tanzu Kubernetes Grid 集群必须与 Harbor 建立网络连接。这些 Tanzu Kubernetes Grid 集群必须能够解析 Harbor FQDN。
要在 Harbor 与 Tanzu Kubernetes Grid 集群之间建立信任关系,请从 Harbor UI 中提取 Harbor CA,或者在 主管 控制平面上使用 TLS 密钥,然后按照将 TKG 2 集群与专用容器注册表集成中列出的步骤操作。