請參閱本主題,將標準套件從公用容器登錄推送到作為 主管 服務執行的私人 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

列出每個標準套件的可用映像

Cert Manager
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 套件。更新版本以與要提取的版本相符。

Cert Manager
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] 是映像標籤的名稱
Cert Manager
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 是套件的標籤版本
Cert Manager
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"