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 in Artifact Registry wechseln und nicht zu pkg.dev
-Repositories. Folgen Sie dieser Anleitung nur, wenn Sie den Unterschied zwischen gcr.io
- und pkg.dev
-Repositories in Artifact Registry kennen.
Je nach gewähltem Übergangspfad kann das Tool für die automatische Migration die folgenden Aktionen ausführen:
- Erstellen Sie in Artifact Registry ein
pkg.dev
-Repository für Ihrgcr.io
-Projekt in der entsprechenden Region. - Sie können 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.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Enable the Artifact Registry API.
Wenn Sie diesen Schritt überspringen, werden Sie vom Tool zur automatischen Migration aufgefordert, die Artifact Registry API zu aktivieren.
Erforderliche Rollen
Die folgenden Rollen sind für alle Migrationsoptionen mit dem automatischen Migrationstool erforderlich.
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 Speicherobjekt-Betrachter (roles/storage.objectViewer
) für das Container Registry-Projekt zu erteilen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Ihr Administrator kann dem Dienstkonto der Artifact Registry möglicherweise auch die erforderlichen Berechtigungen über benutzerdefinierte Rollen oder andere vordefinierte Rollen erteilen.
Nutzerrollen:
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Artifact Registry Container Registry Migration Admin (roles/artifactregistry.containerRegistryMigrationAdmin
) für die Google Cloud -Organisation oder das Projekt zuzuweisen, das Sie migrieren möchten, um die Berechtigungen zu erhalten, die Sie für die Umstellung auf 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 werden:
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 Ihrer Container Registry Google Cloud. Wenn die Projekt-ID einen Doppelpunkt (
:
) enthält, finden Sie weitere Informationen unter Auf Domains beschränkte Projekte.AR_PROJECT mit der Projekt-ID des Google Cloud -Projekts, in dem 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.
- Es wird eine IAM-Richtlinie für das Repository vorgeschlagen und die Richtlinie wird angewendet oder die Anwendung wird je nach Nutzereinstellung übersprungen.
- Hiermit werden Images in der angegebenen Container Registry-Region und dem angegebenen Projekt in Ihr Artifact Registry-Repository kopiert.
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
angeben.
Ersetzen Sie DAYS durch die Anzahl der Tage zwischen 30 und 150, innerhalb derer das Tool nach Pull-Anfragen suchen soll.
Wenn Fehler oder Zeitüberschreitungen auftreten, können Sie den Befehl noch einmal ausführen. Bereits 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 die 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 werden:
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 Ihrer Container Registry Google Cloud. Wenn die Projekt-ID einen Doppelpunkt (
:
) enthält, finden Sie weitere Informationen unter Auf Domains beschränkte Projekte.AR_PROJECT mit der 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 vom angegebenen Speicherort und Projekt in der Container Registry in Ihr Artifact Registry-Repository.
Sie können das Flag --copy-only
auch verwenden, um das Kopieren von Bildern neu zu starten, wenn während des Vorgangs ein Fehler auftritt oder die Zeitüberschreitung abgelaufen ist.