Fare riferimento a questo argomento per eseguire il push dei pacchetti standard dal registro di container pubblico a un registro Harbor privato eseguito come servizio Supervisore.

Prerequisiti

Completare le seguenti operazioni per ottenere i prerequisiti richiesti:

Installazione dell'utilità Carvel Image Package

Installare l'utilità imgpkg Carvel nel client Ubuntu in cui è installato kubectl.
  1. Installare imgpkg.
    wget -O- https://carvel.dev/install.sh > install.sh
    sudo bash install.sh
  2. Verificare l'installazione.
    imgpkg version
    Risultato previsto:
    imgpkg version 0.41.1

Elenco delle immagini disponibili per ogni pacchetto standard

Gestione certificati
imgpkg tag list -i projects.registry.vmware.com/tkg/packages/standard/cert-manager
Contour con 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 con 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

Estrazione delle immagini del pacchetto standard dal registro VMware pubblico

Estrarre i pacchetti Tanzu standard dal registro VMware pubblico in https://projects.registry.vmware.com/. Aggiornare la versione in modo che corrisponda a quella che si desidera estrarre.

Gestione certificati
docker pull projects.registry.vmware.com/tkg/packages/standard/cert-manager:v1.7.2_vmware.3-tkg.3
Contour con 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 con 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

Creazione di un progetto nel registro Harbor privato

Creare un progetto pubblico in Harbor per ospitare i pacchetti Tanzu.
  1. Accedere al registro Harbor privato.
  2. In Harbor selezionare Progetti > Nuovo progetto.
  3. Creare un nuovo progetto pubblico denominato tanzu-packages.

Assegnazione di tag alle immagini del pacchetto standard

Assegnare tag alle immagini utilizzando la seguente sintassi.
docker tag SOURCE_IMAGE[:TAG] harbordomain.com/tanzu-packages/REPOSITORY[:TAG]
dove:
  • SOURCE_IMAGE[:TAG] è il nome dell'immagine estratta
  • harbordomain.com è il nome DNS del server Harbor
  • REPOSITORY[:TAG] è il nome del tag dell'immagine
Gestione certificati
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 con 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 con 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

Push delle immagini del pacchetto standard nel registro Harbor privato

Eseguire il push delle immagini utilizzando la seguente sintassi.
docker push harbordomain.com/tanzu-packages/PACKAGE
dove:
  • harbordomain.com è il nome DNS del server Harbor
  • tanzu-packages è il nome del progetto Harbor
  • PACKAGE è il nome del pacchetto Tanzu
  • vX.X.X è la versione dei tag del pacchetto
Gestione certificati
docker push harbordomain.com/tanzu-packages/cert-manager:v1.7.2
Contour con Envoy
docker push harbordomain.com/tanzu-packages/contour:v1.23.5
ExternalDNS
docker push harbordomain.com/tanzu-packages/external-dns:v0.12.2
Prometheus con 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
Dopo aver eseguito il push delle immagini nel registro Harbor privato, verificare che ciascuna immagine sia visualizzata nell'interfaccia web di Harbor.
Figura 1. Pacchetti Tanzu standard nel registro Harbor privato
Pacchetti Tanzu standard nel registro Harbor privato

Pull di un'immagine del container per la distribuzione

Per verificare che le immagini si trovino nel registro harbor privato, estrarre un'immagine da tale registro utilizzando la seguente sintassi:
docker pull harbordomain.com/tanzu-packages/PACKAGE:TAG

Ad esempio:

docker pull harbordomain.com/tanzu-packages/fluent-bit:v1.9.5
È possibile utilizzare cURL per richiamare l'API di Harbor ed elencare i pacchetti. A tale scopo, scaricare il certificato di Harbor dall'interfaccia web di Harbor ed eseguire il comando seguente:
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'
Il comando restituisce i tanzu-packages disponibili.
"tanzu-packages/harbor"
"tanzu-packages/fluent-bit"
"tanzu-packages/grafana"
"tanzu-packages/prometheus"
"tanzu-packages/external-dns"
"tanzu-packages/contour"
"tanzu-packages/cert-manager"