Systemartefakte unterstützen das GDC-System (Google Distributed Cloud) für Air-Gap-Appliances und verwalten die GDC-Bereitstellung. Im privaten GDC Artifact Registry werden die Systemartefakte gespeichert. Es gibt verschiedene Formate für Systemartefakte, darunter:
- Container-Images für Anthos, KubeVirt und verwaltete GDC-Dienste
- Betriebssystem-Images
- Firmware-Formate
- Golden-VM-Vorlagen
- Helm-Diagramme
Artifact Registry ist an verschiedenen GDC-Systemvorgängen wie Installation, Upgrades und dem Lebenszyklus von Ressourcen beteiligt und sorgt für Sicherheit, Skalierbarkeit und Manipulationssicherheit.
Hinweise
Wenn Sie Systemartefakte ändern möchten, benötigen Sie Diagnosezugriff. Der Diagnosezugriff ist ein privilegierter Zugriffsmodus, der erforderlich ist, um einen Kunden bei einem Problem sicher zu unterstützen. Sie müssen ein Ticket erstellen, um diesen Zugriff zu erhalten.
Docker-Images hochladen
Wenn Sie Systemartefakte ändern möchten, müssen Sie neue Docker-Images hochladen. Die Uploadmethode hängt davon ab, in welche der folgenden beiden Registries Sie Ihre Container-Images übertragen:
- Container-Images in Artifact Registry auf dem Bootstrap-Computer hochladen
- Laden Sie Container-Images in Artifact Registry im Administratorcluster hoch.
In den folgenden Abschnitten finden Sie die Uploadanleitung für die beiden Registrierungstypen.
Artifact Registry auf dem Bootstrap-Computer
So laden Sie Container-Images auf dem Bootstrap-Computer in Artifact Registry hoch:
Achten Sie darauf, dass Sie das geänderte Docker-Image mit den behobenen Problemen haben.
Übertragen Sie das neue Image auf den Bootstrap-Knoten in Ihrer Air-Gap-Umgebung.
Melden Sie sich am Bootstrap-Knoten an.
Suchen Sie die Adresse der Artifact Registry auf der Bootstrap-Maschine zur Bootstrap-Zeit und legen Sie sie als Umgebungsvariable REGISTRY_IP fest:
REGISTRY=$(kubectl get harborcluster harbor -n harbor-system -o=jsonpath='{.spec.externalURL}') REGISTRY_IP=${REGISTRY#https://}Rufen Sie die Anmeldedaten für den Zugriff auf Artifact Registry ab. Verwenden Sie den folgenden Befehl, um das Administratorkonto und das Passwort abzurufen:
ADMIN_PASS=$(kubectl -n harbor-system get secret harbor-admin \ -o jsonpath="{.data.secret}" | base64 -d)Melden Sie sich bei Artifact Registry an:
docker login $REGISTRY_IP -u admin -p $ADMIN_PASSEine
Login Succeeded-Meldung wird ausgegeben, um einen erfolgreichen Login in Artifact Registry zu bestätigen.Taggen Sie das neue Bild:
docker image tag CONTAINER_IMAGE_URL \ $REGISTRY_IP/PROJECT_NAME/IMAGE_NAME:TAGErsetzen Sie Folgendes:
- CONTAINER_IMAGE_URL: Die lokale Container-Image-URL, z. B.
gcr.io/repository/image:tag. - PROJECT_NAME: der Artifact Registry-Projektname.
- IMAGE_NAME: der Name des Container-Images.
- TAG: Das Container-Image-Tag.
- CONTAINER_IMAGE_URL: Die lokale Container-Image-URL, z. B.
Übertragen Sie das neue Image per Push in Artifact Registry:
docker image push $REGISTRY_IP/PROJECT_NAME/IMAGE_NAME:TAG
Artifact Registry im Administratorcluster
Führen Sie die folgenden Schritte aus, um Container-Images in die Artifact Registry im Administratorcluster hochzuladen.
Achten Sie darauf, dass Sie das geänderte Docker-Image mit den behobenen Problemen haben.
Übertragen Sie das neue Image auf einen Knoten mit Root-Zugriff und einer Root-
kubeconfig-Datei für den Administratorcluster in Ihrer Air-Gap-Umgebung.Exportieren Sie den Dateipfad des Administratorclusters
kubeconfigals Umgebungsvariable:export ADMIN_CLUSTER_KUBECONFIG=KUBECONFIG_FILE_PATHErsetzen Sie KUBECONFIG_FILE_PATH durch den Pfad zur Datei
kubeconfig.Suchen Sie die In-Cluster-Adresse von Artifact Registry und legen Sie sie als Umgebungsvariable REGISTRY_IP fest:
REGISTRY=$(kubectl --kubeconfig $ADMIN_CLUSTER_KUBECONFIG get harborcluster harbor -n harbor-system -o=jsonpath='{.spec.externalURL}') REGISTRY_IP=${REGISTRY#https://}Achten Sie darauf, dass REGISTRY_IP eine gültige URL wie
10.200.0.36:10443enthält:echo ${REGISTRY_IP}Prüfen Sie, ob das CA-Zertifikat vorhanden ist:
ls -al /etc/docker/certs.d/${REGISTRY_IP}/ca.crtWenn das Zertifikat nicht vorhanden ist, erstellen und konfigurieren Sie es:
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.crtRufen Sie die Anmeldedaten für den Zugriff auf Artifact Registry ab. Verwenden Sie den folgenden Befehl, um das Administratorkonto und das Passwort abzurufen:
ADMIN_PASS=$(kubectl --kubeconfig $ADMIN_CLUSTER_KUBECONFIG \ -n harbor-system get secret harbor-admin \ -o jsonpath="{.data.secret}" | base64 -d)Melden Sie sich bei Artifact Registry an:
docker login $REGISTRY_IP -u admin -p $ADMIN_PASSEine
Login Succeeded-Meldung wird ausgegeben, um einen erfolgreichen Login in Artifact Registry zu bestätigen.Taggen Sie das neue Bild:
docker image tag CONTAINER_IMAGE_URL \ $REGISTRY_IP/PROJECT_NAME/IMAGE_NAME:TAGErsetzen Sie Folgendes:
- CONTAINER_IMAGE_URL: Die lokale Container-Image-URL, z. B.
gcr.io/repository/image:tag. - PROJECT_NAME: der Artifact Registry-Projektname.
- IMAGE_NAME: der Name des Container-Images.
- TAG: Das Container-Image-Tag.
- CONTAINER_IMAGE_URL: Die lokale Container-Image-URL, z. B.
Übertragen Sie das neue Image per Push in Artifact Registry:
docker image push $REGISTRY_IP/PROJECT_NAME/IMAGE_NAME:TAG