請參閱本主題,將標準套件從公用容器登錄推送到作為 主管 服務執行的私人 Harbor 登錄。
必要條件
完成下列必要條件:
- 安裝 Harbor 主管 服務.
- 將 Ubuntu 主機設定為 Docker 用戶端。請參閱使用 Harbor 登錄憑證設定 Docker 用戶端。
- 在 Ubuntu 主機上安裝 jq。請參閱https://jqlang.github.io/jq/download/。
安裝 Carvel 映像套件公用程式
在安裝了 kubectl 的 Ubuntu 用戶端上安裝 Carvel
imgpkg
公用程式。
- 安裝
imgpkg
。wget -O- https://carvel.dev/install.sh > install.sh sudo bash install.sh
- 驗證安裝。
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 套件的公用專案。
- 登入私人 Harbor 登錄。
- 在 Harbor 中,選取 。
- 建立名為 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 介面中看到每個映像。
提取用於部署的容器映像
若要驗證映像是否位於私人 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"