In diesem Dokument werden die Schritte beschrieben, die für die Umstellung von Container Registry auf pkg.dev
Artifact Registry-Repositories erforderlich sind.
Die meisten Container Registry-Nutzer sollten zu gcr.io
-Repositories wechseln, die in Artifact Registry gehostet werden, nicht zu pkg.dev
-Repositories. Folgen Sie dieser Anleitung also nur, wenn Sie den Unterschied zwischen gcr.io
-Repositories und pkg.dev
-Repositories in Artifact Registry kennen.
Das automatische Migrationstool kann je nach gewähltem Übergangspfad die folgenden Aktionen ausführen:
- Erstellen Sie in Artifact Registry ein
pkg.dev
-Repository für Ihrgcr.io
-Projekt in der entsprechenden Region. - Eine IAM-Richtlinie für das Repository vorschlagen und die Richtlinie anwenden oder die Anwendung je nach Nutzereinstellung überspringen.
- Kopieren Sie alle in Container Registry gespeicherten Container-Images in Ihr Artifact Registry-Repository
pkg.dev
.
Hinweise
-
Install the Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init
-
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.
Das automatische Migrationstool fordert Sie auf, die Artifact Registry API zu aktivieren, wenn Sie diesen Schritt überspringen.
Erforderliche Rollen
Die folgenden Rollen sind für alle Übergangsoptionen erforderlich, bei denen das automatische Migrationstool verwendet wird.
Dienstkontorollen:
Sie müssen dem Artifact Registry-Dienstkonto für jedes Projekt, das Sie zu Artifact Registry migrieren möchten, die folgenden Rollen zuweisen.
Damit das Artifact Registry-Dienstkonto die erforderlichen Berechtigungen zum Kopieren von Images aus Container Registry in Artifact Registry hat, bitten Sie Ihren Administrator, dem Artifact Registry-Dienstkonto die IAM-Rolle Storage-Objektbetrachter (roles/storage.objectViewer
) für das Container Registry-Projekt zu erteilen.
Ihr Administrator kann dem Artifact Registry-Dienstkonto möglicherweise auch die erforderlichen Berechtigungen über benutzerdefinierte Rollen oder andere vordefinierte Rollen erteilen.
Nutzerrollen:
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Administrator für die Migration von Container Registry zu Artifact Registry (roles/artifactregistry.containerRegistryMigrationAdmin
) für die Google Cloud Organisation oder das Projekt zu gewähren, die Sie migrieren möchten, um die Berechtigungen zu erhalten, die Sie für die Migration zu pkg.dev
Artifact Registry-Repositories benötigen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Zu pkg.dev
Artifact Registry-Repositories migrieren
Führen Sie den folgenden Befehl aus, um Ihr
gcr.io
-Projekt in einpkg.dev
-Artifact Registry-Repository zu migrieren:gcloud artifacts docker upgrade migrate \ --from-gcr=GCR_HOSTNAME/GCR_PROJECT \ --to-pkg-dev=AR_PROJECT/AR_REPOSITORY
Ersetzen Sie Folgendes:
GCR_HOSTNAME durch den Hostnamen der Container Registry. Der Hostname hängt davon ab, wo Ihre Container-Images gespeichert sind:
gcr.io
hostet die Bilder in den USA.us.gcr.io
hostet die Bilder in den USA in einem separaten Storage-Bucket von Bildern, die vongcr.io
gehostet werden.eu.gcr.io
hostet die Bilder in Mitgliedsstaaten der Europäischen Union.asia.gcr.io
hostet die Bilder in Asien.
GCR_PROJECT durch die Projekt-ID Ihres Container Registry-Projekts Google Cloud. Wenn die Projekt-ID einen Doppelpunkt (
:
) enthält, finden Sie weitere Informationen unter Auf Domains beschränkte Projekte.AR_PROJECT durch die Google Cloud Projekt-ID, in der Sie die Artifact Registry API aktiviert haben.
AR_REPOSITORY durch den Namen Ihres Artifact Registry-Repositorys.
Das Migrationstool führt die folgenden Schritte aus:
- Erstellt das Artifact Registry-Repository, falls es noch nicht vorhanden ist.
- Schlägt eine IAM-Richtlinie für das Repository vor und wendet die Richtlinie an oder überspringt die Anwendung, je nach Nutzereinstellung.
- Kopiert Images in der angegebenen Container Registry-Region und dem angegebenen Projekt in Ihr Artifact Registry-Repository.
Wenn Sie nur Images kopieren möchten, die in den letzten 30 bis 180 Tagen aus Container Registry abgerufen wurden, können Sie das Flag --recent-images=DAYS
einfügen.
Ersetzen Sie DAYS durch die Anzahl der Tage zwischen 30 und 150, in denen das Tool nach Pulls suchen soll.
Wenn Fehler oder Zeitüberschreitungen auftreten, können Sie den Befehl gefahrlos noch einmal ausführen. Abgeschlossene Schritte werden übersprungen.
Bilder kopieren
Das Migrationstool kopiert Ihre Container-Images automatisch, wenn Sie es ausführen. Wenn Sie jedoch alle anderen Schritte der automatischen Migration überspringen und das Tool zum Kopieren von Images in Artifact Registry verwenden möchten, können Sie das Flag --copy-only
übergeben.
Führen Sie den folgenden Befehl aus, um Images aus Container Registry in ein pkg.dev
Artifact Registry-Repository zu kopieren:
gcloud artifacts docker upgrade migrate \
--from-gcr=GCR_HOSTNAME/GCR_PROJECT \
--to-pkg-dev=AR_PROJECT/AR_REPOSITORY \
--copy-only
Ersetzen Sie Folgendes:
GCR_HOSTNAME durch den Hostnamen der Container Registry. Der Hostname hängt davon ab, wo Ihre Container-Images gespeichert sind:
gcr.io
hostet die Bilder in den USA.us.gcr.io
hostet die Bilder in den USA in einem separaten Storage-Bucket von Bildern, die vongcr.io
gehostet werden.eu.gcr.io
hostet die Bilder in Mitgliedsstaaten der Europäischen Union.asia.gcr.io
hostet die Bilder in Asien.
GCR_PROJECT durch die Projekt-ID Ihres Container Registry-Projekts Google Cloud. Wenn die Projekt-ID einen Doppelpunkt (
:
) enthält, finden Sie weitere Informationen unter Auf Domains beschränkte Projekte.AR_PROJECT durch die Google Cloud Projekt-ID, in der Sie die Artifact Registry API aktiviert haben.
AR_REPOSITORY durch den Namen Ihres Artifact Registry-Repositorys.
Das Tool überspringt alle Migrationsschritte und kopiert Images aus dem angegebenen Speicherort und Projekt in Container Registry in Ihr Artifact Registry-Repository.
Mit dem Flag --copy-only
können Sie das Kopieren von Bildern auch neu starten, wenn während des Vorgangs ein Fehler oder ein Zeitüberschreitungsfehler auftritt.