Gli artefatti di sistema supportano il sistema di appliance con air gap di Google Distributed Cloud (GDC) e gestiscono il deployment di GDC. Il registro Artifact Registry privato di GDC archivia gli artefatti di sistema. Esistono vari formati per gli artefatti di sistema, tra cui, a titolo esemplificativo:
- Immagini container per Anthos, KubeVirt e servizi gestiti GDC
- Immagini del sistema operativo (OS)
- Formati del firmware
- Modelli di macchine virtuali (VM) dorate
- Grafici Helm
Artifact Registry partecipa a varie operazioni del sistema GDC, come installazione, upgrade e ciclo di vita delle risorse, in modo sicuro, scalabile e a prova di manomissione.
Prima di iniziare
Per modificare gli artefatti di sistema, devi ottenere l'accesso diagnostico. L'accesso diagnostico è una modalità di accesso con privilegi necessaria per assistere in modo sicuro un cliente quando riscontra un problema. Per ottenere questo accesso, devi creare un ticket.
Caricare immagini Docker
Per modificare gli artefatti di sistema, devi caricare nuove immagini Docker. Il metodo di caricamento dipende dal registro a cui esegui il push delle immagini container tra i due seguenti:
- Carica le immagini container in Artifact Registry nella macchina di bootstrap.
- Carica le immagini container in Artifact Registry nel cluster di amministrazione.
Le sezioni seguenti mostrano le istruzioni di caricamento per i due tipi di registro.
Artifact Registry nella macchina di bootstrap
Per caricare le immagini container in Artifact Registry nella macchina di bootstrap, completa i seguenti passaggi:
Assicurati di avere l'immagine Docker modificata con i problemi di interruzione risolti.
Trasferisci la nuova immagine al nodo di bootstrap nel tuo ambiente isolato.
Accedi al nodo di bootstrap.
Individua l'indirizzo di Artifact Registry nella macchina bootstrap al momento del bootstrap e impostalo come variabile di ambiente REGISTRY_IP:
REGISTRY=$(kubectl get harborcluster harbor -n harbor-system -o=jsonpath='{.spec.externalURL}') REGISTRY_IP=${REGISTRY#https://}Recupera le credenziali per accedere ad Artifact Registry. Utilizza il seguente comando per recuperare l'account amministratore e la password:
ADMIN_PASS=$(kubectl -n harbor-system get secret harbor-admin \ -o jsonpath="{.data.secret}" | base64 -d)Accedi ad Artifact Registry:
docker login $REGISTRY_IP -u admin -p $ADMIN_PASSViene stampato un messaggio
Login Succeededper verificare l'accesso riuscito ad Artifact Registry.Tagga la nuova immagine:
docker image tag CONTAINER_IMAGE_URL \ $REGISTRY_IP/PROJECT_NAME/IMAGE_NAME:TAGSostituisci quanto segue:
- CONTAINER_IMAGE_URL: l'URL dell'immagine del container locale, ad esempio
gcr.io/repository/image:tag. - PROJECT_NAME: il nome del progetto Artifact Registry.
- IMAGE_NAME: il nome dell'immagine container.
- TAG: il tag dell'immagine del container.
- CONTAINER_IMAGE_URL: l'URL dell'immagine del container locale, ad esempio
Esegui il push della nuova immagine in Artifact Registry:
docker image push $REGISTRY_IP/PROJECT_NAME/IMAGE_NAME:TAG
Artifact Registry nel cluster di amministrazione
Per caricare le immagini container in Artifact Registry sul cluster di amministrazione, completa i seguenti passaggi.
Assicurati di avere l'immagine Docker modificata con i problemi di interruzione risolti.
Trasferisci la nuova immagine a un nodo con accesso root con un file
kubeconfigal cluster di amministrazione nell'ambiente isolato.Esporta il percorso del file
kubeconfigdel cluster di amministrazione come variabile di ambiente:export ADMIN_CLUSTER_KUBECONFIG=KUBECONFIG_FILE_PATHSostituisci KUBECONFIG_FILE_PATH con il percorso del file
kubeconfig.Individua l'indirizzo di Artifact Registry nel cluster e impostalo come variabile di ambiente REGISTRY_IP:
REGISTRY=$(kubectl --kubeconfig $ADMIN_CLUSTER_KUBECONFIG get harborcluster harbor -n harbor-system -o=jsonpath='{.spec.externalURL}') REGISTRY_IP=${REGISTRY#https://}Assicurati che REGISTRY_IP contenga un URL valido, ad esempio
10.200.0.36:10443:echo ${REGISTRY_IP}Controlla se esiste il certificato dell'autorità di certificazione (CA):
ls -al /etc/docker/certs.d/${REGISTRY_IP}/ca.crtSe il certificato non esiste, crealo e configurarlo:
mkdir -p /etc/docker/certs.d/${REGISTRY_IP}/ chmod 755 /etc/docker/certs.d/${REGISTRY_IP}/ echo $(kubectl get secret harbor-cert-secret -n istio-system -o jsonpath='{.data.ca\.crt}' --kubeconfig $ADMIN_CLUSTER_KUBECONFIG) | openssl base64 -A -d > /etc/docker/certs.d/${REGISTRY_IP}/ca.crt chmod 755 /etc/docker/certs.d/${REGISTRY_IP}/ca.crtRecupera le credenziali per accedere ad Artifact Registry. Utilizza il seguente comando per recuperare l'account amministratore e la password:
ADMIN_PASS=$(kubectl --kubeconfig $ADMIN_CLUSTER_KUBECONFIG \ -n harbor-system get secret harbor-admin \ -o jsonpath="{.data.secret}" | base64 -d)Accedi ad Artifact Registry:
docker login $REGISTRY_IP -u admin -p $ADMIN_PASSViene stampato un messaggio
Login Succeededper verificare l'accesso riuscito ad Artifact Registry.Tagga la nuova immagine:
docker image tag CONTAINER_IMAGE_URL \ $REGISTRY_IP/PROJECT_NAME/IMAGE_NAME:TAGSostituisci quanto segue:
- CONTAINER_IMAGE_URL: l'URL dell'immagine del container locale, ad esempio
gcr.io/repository/image:tag. - PROJECT_NAME: il nome del progetto Artifact Registry.
- IMAGE_NAME: il nome dell'immagine container.
- TAG: il tag dell'immagine del container.
- CONTAINER_IMAGE_URL: l'URL dell'immagine del container locale, ad esempio
Esegui il push della nuova immagine in Artifact Registry:
docker image push $REGISTRY_IP/PROJECT_NAME/IMAGE_NAME:TAG