Systemartefakte sind in der Artifact Registry des Administratorclusters vorhanden. Stellen Sie neue Systemartefakte bereit, wenn das System Fehler oder Ausfälle aufweist, die Sie durch Patchen neuer Artefakte beheben können.
In diesem Dokument wird beschrieben, wie Sie einzelne Artefakte von einem Cluster in einen anderen übertragen.
Hinweise
Wenn Sie als Administrator auf Ressourcen in Artifact Registry-Systemprojekten zugreifen möchten, bitten Sie Ihren Sicherheitsadministrator, Ihnen die folgenden Rollen zuzuweisen, je nachdem, in welchen Cluster Sie das Container-Image übertragen möchten:
- Administratorcluster der Organisation:Wenn Sie das Container-Image in die System-Artifact Registry des Administratorclusters der Organisation übertragen möchten, benötigen Sie die Rolle „Administrator für die Verwaltung von Systemartefakten der Organisation“ (
organization-system-artifact-management-admin
). - Root-Administratorcluster:Wenn Sie das Container-Image in die System-Artifact Registry des Root-Administratorclusters übertragen möchten, benötigen Sie die Rolle „System Artifact Management Admin“ (
system-artifact-management-admin
).
Nachdem Sie die erforderlichen Berechtigungen erhalten haben, führen Sie die folgenden Schritte aus, bevor Sie ein Image in die System-Artifact Registry des Root-Administratorclusters oder des Organisationsadministratorclusters übertragen:
Laden Sie die Distributed Cloud CLI herunter und installieren Sie sie. Folgen Sie dabei der Anleitung unter gdcloud-Befehlszeilenschnittstelle (CLI).
Installieren Sie die
docker-credential-gdcloud
-Komponente gemäß der Anleitung unter Komponenten installieren.gdcloud components install docker-credential-gdcloud
Mit dem konfigurierten Identitätsanbieter anmelden
gdcloud auth login
Exportieren Sie die kubeconfig-Datei.
gdcloud clusters get-credentials CLUSTER_NAME
Ersetzen Sie CLUSTER_NAME durch den Namen des Clusters.
Konfigurieren Sie Docker.
gdcloud auth configure-docker
Container-Image aus einem S3-Bucket herunterladen
Bitten Sie Ihren Sicherheitsadministrator, Ihnen die Rolle „Project Bucket Object Viewer“ (project-bucket-object-viewer
) im Namespace des Projekts zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Herunterladen des Container-Images aus dem S3-Bucket benötigen.
Der Sicherheitsadministrator gewährt Ihnen Zugriff, indem er eine Rollenbindung erstellt:
kubectl create rolebinding IO_USER-bor-rb \
--role=project-bucket-object-viewer \
--user=USER \
-n PROJECT_NAMESPACE
Ersetzen Sie Folgendes:
- USER: Der Kontoname des Nutzers, für den die Rollenbindung erforderlich ist.
- PROJECT_NAMESPACE: Der Namespace des Projekts mit dem S3-Bucket.
Sie erhalten Lesezugriff auf den Bucket im Projekt und auf die Objekte in diesem Bucket.
Nachdem Sie die erforderlichen Berechtigungen erhalten haben, führen Sie die folgenden Schritte aus, um das Container-Image aus dem S3-Bucket des Namespace des Projekts herunterzuladen:
Rufen Sie den Secret-Namen des Buckets ab. Der Secret-Name sieht so aus:
object-storage-key-std-user-ID
Der Secret-Name enthält einen eindeutigen
ID
-Wert für den Zugriff auf den Bucket.Kopieren Sie den Secret-Namen des Buckets.
Rufen Sie Bucket-Zugriffsanmeldedaten ab und konfigurieren Sie das s3cmd-Befehlszeilentool.
SECRET_NAME=SECRET_NAME ACCESS_KEY=$(kubectl get secret ${SECRET_NAME} -n object-storage-access-keys -o=jsonpath='{.data.access-key-id}' | base64 -d) SECRET_KEY=$(kubectl get secret ${SECRET_NAME} -n object-storage-access-keys -o=jsonpath='{.data.secret-access-key}' | base64 -d) S3_ENDPOINT=objectstorage.$(kubectl get configmap dnssuffix -n gpc-system -o jsonpath='{.data.dnsSuffix}') echo "Access Key: ${ACCESS_KEY}" \ && echo "Secret Key: ${SECRET_KEY}" \ && echo "S3 Endpoint: ${S3_ENDPOINT}" s3cmd --configure
Ersetzen Sie
SECRET_NAME
durch den Wert, den Sie im vorherigen Schritt kopiert haben.Laden Sie das Container-Image aus dem S3-Bucket auf Ihre Workstation herunter.
s3cmd get s3://BUCKET_NAME /g/CONTAINER_IMAGE_NAME
Ersetzen Sie Folgendes:
- BUCKET_NAME: Der Name des S3-Buckets, der das Container-Image enthält.
- CONTAINER_IMAGE_NAME: Der Name der Container-Image-Datei, die Sie aus dem S3-Bucket herunterladen möchten.
Image in die System-Artifact Registry hochladen
Führen Sie die folgenden Schritte aus, um die Datei des Container-Images, die sich auf Ihrer Workstation befindet, per Push in die System-Artifact Registry im Administratorcluster zu übertragen:
Öffnen Sie die Konsole.
Rufen Sie den Pfad zum Artifact Registry-Endpunkt des Systems des Clusters ab, in den Sie das Container-Image übertragen möchten.
export REGISTRY_ENDPOINT=harbor.$(kubectl get configmap dnssuffix -n gpc-system -o jsonpath='{.data.dnsSuffix}')
Laden Sie das Container-Image, versehen Sie es mit einem Tag und übertragen Sie es per Push an den Artifact Registry-Systemendpunkt des Clusters.
docker load --input CONTAINER_IMAGE_PATH docker tag CONTAINER_IMAGE_PATH ${REGISTRY_ENDPOINT}/CONTAINER_IMAGE_PATH docker push ${REGISTRY_ENDPOINT}/CONTAINER_IMAGE_PATH
Ersetzen Sie CONTAINER_IMAGE_PATH durch den Pfad der Container-Imagedatei in Ihrem lokalen Dateisystem. Ein gültiger Wert für diesen Pfad ist beispielsweise
oracle_db.tar
.