请参阅本主题,将标准软件包从公用容器注册表推送到作为 主管 服务运行的专用 Harbor 注册表。

必备条件

完成以下必备条件:

安装 Carvel 映像软件包实用程序

在安装了 kubectl 的 Ubuntu 客户端上安装 Carvel imgpkg 实用程序。
  1. 安装 imgpkg
    wget -O- https://carvel.dev/install.sh > install.sh
    sudo bash install.sh
  2. 验证安装。
    imgpkg version
    预期结果:
    imgpkg version 0.41.1

列出每个标准软件包的可用映像

证书管理器
imgpkg tag list -i projects.registry.vmware.com/tkg/packages/standard/cert-manager
Contour with Envoy
imgpkg tag list -i projects.registry.vmware.com/tkg/packages/standard/contour
ExternalDNS
imgpkg tag list -i projects.registry.vmware.com/tkg/packages/standard/external-dns
Prometheus with Alertmanager
imgpkg tag list -i projects.registry.vmware.com/tkg/packages/standard/prometheus
Grafana
imgpkg tag list -i projects.registry.vmware.com/tkg/packages/standard/grafana
Fluent Bit
imgpkg tag list -i projects.registry.vmware.com/tkg/packages/standard/fluent-bit
Harbor
imgpkg tag list -i projects.registry.vmware.com/tkg/packages/standard/harbor

从公用 VMware 注册表中提取标准软件包映像

从位于 https://projects.registry.vmware.com/ 的公用 VMware 注册表中提取标准 Tanzu 软件包。更新版本以与要提取的版本相匹配。

证书管理器
docker pull projects.registry.vmware.com/tkg/packages/standard/cert-manager:v1.7.2_vmware.3-tkg.3
Contour with Envoy
docker pull projects.registry.vmware.com/tkg/packages/standard/contour:v1.23.5_vmware.1-tkg.1
ExternalDNS
docker pull projects.registry.vmware.com/tkg/packages/standard/external-dns:v0.12.2_vmware.5-tkg.1
Prometheus with Alertmanager
docker pull projects.registry.vmware.com/tkg/packages/standard/prometheus:v2.37.0_vmware.3-tkg.1
Grafana
docker pull projects.registry.vmware.com/tkg/packages/standard/grafana:v7.5.17_vmware.2-tkg.1
Fluent Bit
docker pull projects.registry.vmware.com/tkg/packages/standard/fluent-bit:v1.9.5_vmware.1-tkg.2
Harbor
docker pull projects.registry.vmware.com/tkg/packages/standard/harbor:v2.7.1_vmware.1-tkg.1

在专用 Harbor 注册表中创建项目

在 Harbor 中创建用于托管 Tanzu 软件包的公用项目。
  1. 登录到专用 Harbor 注册表。
  2. 在 Harbor 中,选择项目 > 新建项目
  3. 创建名为 tanzu-packages 的新公用项目。

标记标准软件包映像

使用以下语法标记映像。
docker tag SOURCE_IMAGE[:TAG] harbordomain.com/tanzu-packages/REPOSITORY[:TAG]
其中:
  • SOURCE_IMAGE [:TAG] 是已提取映像的名称
  • harbordomain.com 是 Harbor 服务器的 DNS 名称
  • REPOSITORY[:TAG] 是映像标记的名称
证书管理器
docker tag projects.registry.vmware.com/tkg/packages/standard/cert-manager:v1.7.2_vmware.3-tkg.3 harbordomain.com/tanzu-packages/cert-manager:v1.7.2
Contour with Envoy
docker tag projects.registry.vmware.com/tkg/packages/standard/contour:v1.23.5_vmware.1-tkg.1 harbordomain.com/tanzu-packages/contour:v1.23.5
ExternalDNS
docker tag projects.registry.vmware.com/tkg/packages/standard/external-dns:v0.12.2_vmware.5-tkg.1 harbordomain.com/tanzu-packages/external-dns:v0.12.2
Prometheus with Alertmanager
docker tag projects.registry.vmware.com/tkg/packages/standard/prometheus:v2.37.0_vmware.3-tkg.1 harbordomain.com/tanzu-packages/prometheus:v2.37.0
Grafana
docker tag projects.registry.vmware.com/tkg/packages/standard/grafana:v7.5.17_vmware.2-tkg.1 harbordomain.com/tanzu-packages/grafana:v7.5.17
Fluent Bit
docker tag projects.registry.vmware.com/tkg/packages/standard/fluent-bit:v1.9.5_vmware.1-tkg.2 harbordomain.com/tanzu-packages/fluent-bit:v1.9.5
Harbor
docker tag projects.registry.vmware.com/tkg/packages/standard/harbor:v2.7.1_vmware.1-tkg.1 harbordomain.com/tanzu-packages/harbor:v2.7.1

将标准软件包映像推送到专用 Harbor 注册表

使用以下语法推送映像。
docker push harbordomain.com/tanzu-packages/PACKAGE
其中:
  • harbordomain.com 是 Harbor 服务器的 DNS 名称
  • tanzu-packages 是 Harbor 项目的名称
  • PACKAGE 是 Tanzu 软件包的名称
  • vX.X.X 是软件包的标记版本
证书管理器
docker push harbordomain.com/tanzu-packages/cert-manager:v1.7.2
Contour with Envoy
docker push harbordomain.com/tanzu-packages/contour:v1.23.5
ExternalDNS
docker push harbordomain.com/tanzu-packages/external-dns:v0.12.2
Prometheus with Alertmanager
docker push harbordomain.com/tanzu-packages/prometheus:v2.37.0
Grafana
docker push harbordomain.com/tanzu-packages/grafana:v7.5.17
Fluent Bit
docker push harbordomain.com/tanzu-packages/fluent-bit:v1.9.5
Harbor
docker push harbordomain.com/tanzu-packages/harbor:v2.7.1
将映像推送到专用 Harbor 注册表后,确认可以在 Harbor Web 界面中看到每个映像。
图 1. 专用 Harbor 注册表中的 Tanzu Standard 软件包
专用 Harbor 注册表中的 Tanzu Standard 软件包

提取用于部署的容器映像

要验证映像是否位于专用 Harbor 注册表中,请使用以下语法从该注册表中提取映像:
docker pull harbordomain.com/tanzu-packages/PACKAGE:TAG

例如:

docker pull harbordomain.com/tanzu-packages/fluent-bit:v1.9.5
您可以使用 cURL 调用 Harbor API 并列出软件包。要执行此操作,请从 Harbor Web 界面下载 Harbor 证书,然后运行以下命令:
curl -X 'GET' 'https://harbordomain.com/api/v2.0/projects/tanzu-packages/repositories?page=1&page_size=-1' -H 'accept: application/json' --cacert ca.crt | jq '.[].name'
该命令将返回可用的 tanzu-packages 。
"tanzu-packages/harbor"
"tanzu-packages/fluent-bit"
"tanzu-packages/grafana"
"tanzu-packages/prometheus"
"tanzu-packages/external-dns"
"tanzu-packages/contour"
"tanzu-packages/cert-manager"