可以安装 Harbor 容器注册表作为 主管 服务,并将 Harbor 作为专用注册表运行。

必备条件

请遵循以下必备条件:
注: 这些说明已通过 vSphere 8 和 NSX 4 网络进行验证。

下载所需的 YAML 文件

下载所需的 YAML 文件,包括 Contour 和 Harbor。
  1. Kubernetes Ingress 控制器服务站点下载以下 Contour 文件:
    1. Contour 服务定义文件:contour.yml
    2. Contour 服务配置文件:contour-data-values.yml
  2. 云原生注册表服务站点下载以下 Harbor 文件:
    1. Harbor 服务定义文件:harbor.yml
    2. Harbor 服务配置文件:harbor-data-values.yml

安装 Contour

必须先安装 Contour,然后再安装 Harbor。
  1. 单击工作负载管理 > > 服务 > 添加,将 contour.yml 上载到 vCenter。
  2. 确认已添加 Contour 服务定义。
  3. 选择工作负载管理 > 主管 > 主管 > 配置
  4. 选择主管服务 > 概览
  5. 选择可用选项卡。
  6. 选择 Contour,然后单击安装
  7. contour-data-values.yml 中的内容复制/粘贴到“YAML 服务配置”输入字段。
    注: Contour 数据值可以按原样使用,不需要进行任何配置更改。Envoy 的服务类型设置为 LoadBalancer 。
  8. 单击确定,继续进行 Contour 安装。
  9. 验证 Contour 是否已安装。
    1. 选择名为 svc-contour-domain-XXXXvSphere 命名空间
    2. 选择网络选项卡,然后选择服务
    3. 您应该会看到 ClusterIP 类型的 Contour 服务和 LoadBalancer 类型的 Envoy 服务。Envoy 服务应具有外部 IP 地址。

更新 Harbor 数据值

在安装 Harbor 之前,请先更新数据值文件。
  1. 使用文本编辑器,打开 harbor-data-values.yml 文件。
  2. 进行以下编辑(最低要求,其他字段可以有选择地进行编辑)。
  3. 保存更改。
    名称
    hostname harbordomain.com(选择唯一的名称)
    tlsCertificate.tlsSecretLabels {"managed-by": "vmware-vRegistry"}(验证此值,但保持原样)
    persistence.persistentVolumeClaim.registry.storageClass "vwt-storage-policy"(输入主管的 vSphere 存储策略的名称)
    persistence.persistentVolumeClaim.jobservice.storageClass "vwt-storage-policy"(输入主管的 vSphere 存储策略的名称)
    persistence.persistentVolumeClaim.database.storageClass "vwt-storage-policy"(输入主管的 vSphere 存储策略的名称)
    persistence.persistentVolumeClaim.redis.storageClass "vwt-storage-policy"(输入主管的 vSphere 存储策略的名称)
    persistence.persistentVolumeClaim.trivy.storageClass "vwt-storage-policy"(输入主管的 vSphere 存储策略的名称)

安装 Harbor

按照以下说明,安装 Harbor。
  1. 单击工作负载管理 > > 服务 > 添加,将 harbor.yml 上载到 vCenter。
  2. 确认已添加 Harbor 服务定义。
  3. 选择工作负载管理 > 主管 > 主管 > 配置
  4. 选择主管服务 > 概览
  5. 选择可用选项卡。
  6. 选择 Harbor,然后单击安装
  7. 将编辑后的 harbor-data-values.yml 中的内容复制/粘贴到“YAML 服务配置”输入字段。
  8. 单击确定,继续进行 Harbor 安装。
  9. 验证 Harbor 是否已安装。
    1. 选择名为 svc-harbor-domain-XXXXvSphere 命名空间
    2. 选择网络选项卡,然后选择服务
    3. 您应该会看到为 Harbor 安装了多个容器,每个容器是一个 ClusterIP 类型的服务。

为 Harbor 配置 DNS

您将需要注册域名并为 Harbor 设置 DNS 记录。
  1. 选择工作负载管理 > 命名空间
  2. 选择 Contour 命名空间。
  3. 选择网络 > 服务
  4. 记录 Envoy Ingress 服务的外部 IP 地址,例如 10.197.154.71。
  5. 注册在 Harbor 配置中指定的 Harbor 域名 (FQDN)。
  6. 使用 AWS Route 53 或类似服务创建 DNS“A”记录。

登录 Harbor

设置 Harbor DNS 后,便可登录。
  1. 转到您为 Harbor 注册的域名。
  2. 使用 admin 和在 Harbor 配置中指定的密码登录域。
  3. 登录后,将密码更改为更安全的密码。

将主管配置为信任 Harbor 注册表(可选)

当 TKG 集群和 Harbor 部署在同一个 主管 上时,TKG 集群会自动配置为信任 Harbor 主管 服务。但是,创建 vSphere Pod 时, 主管 不会自动配置为信任 Harbor 主管 服务。请完成以下步骤,将配置映射更新为包含 Harbor CA 证书信息,以在 主管 和 Harbor 服务之间建立信任关系。
  1. 在 Harbor 中,转到系统管理 > 配置 > 系统设置
  2. 下载注册表根证书,它是一个名为 ca.crt 的文件。
  3. 配置 KUBE_EDITOR 环境变量。

    请参见为 Kubectl 配置文本编辑器

  4. 使用 kubectl 登录到 主管

    请参见使用 Kubectl 以 vCenter Single Sign-On 用户身份连接到 主管

  5. 将上下文切换到 主管 上下文(IP 地址)。
  6. 使用以下命令编辑 configmap/image-fetch-ca-bundle :
    kubectl edit configmap image-fetcher-ca-bundle -n kube-system
  7. 复制 Harbor ca.crt 文件的内容,并将其附加到现有证书(用于 主管,不得更改)下方的配置映射。保存对文件所做的编辑。您应该会看到 Kubectl 报告“已编辑 configmap/image-fetcher-ca-bundle”。