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 del servizio Supervisore Harbor.
- Configurare un host Ubuntu come client Docker. Vedere Configurazione di un client Docker con il certificato del registro Harbor.
- Installare jq nell'host Ubuntu. Vedere https://jqlang.github.io/jq/download/.
Installazione dell'utilità Carvel Image Package
Installare l'utilità
imgpkg
Carvel nel client Ubuntu in cui è installato kubectl.
- Installare
imgpkg
.wget -O- https://carvel.dev/install.sh > install.sh sudo bash install.sh
- 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.
- Accedere al registro Harbor privato.
- In Harbor selezionare .
- 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.
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"