Automatisch von Container Registry zu Artifact Registry migrieren

Mit dem automatischen Migrationstool können Sie von Container Registry zu gcr.io-Repositories wechseln, die in Artifact Registry gehostet werden, oder zu standardmäßigen Artifact Registry-Repositories.

Je nach ausgewähltem Umstellungspfad kann das Tool für die automatische Migration die folgenden Aktionen ausführen:

  • Erstellen Sie in Artifact Registry gcr.io-Repositories oder Standard-Repositories für jedes Ihrer aufgeführten gcr.io-Projekte in der entsprechenden Region.
  • Schlagen Sie eine IAM-Richtlinie für jedes Repository vor und wenden Sie die Richtlinie an oder überspringen Sie die Anwendung, je nach Nutzereinstellung.
  • Leiten Sie den gesamten Traffic von gcr.io-Endpunkten an Artifact Registry weiter.
  • Kopieren Sie alle in Container Registry gespeicherten Container-Images in Ihre Artifact Registry-gcr.io-Repositories oder in Standard-Repositories, auch wenn Sie die Weiterleitung bereits aktiviert haben.

Hinweise

  1. Installieren Sie die Google Cloud CLI.
  2. Führen Sie folgenden Befehl aus, um die gcloud CLI zu initialisieren:

    gcloud init
  3. Wählen Sie eine Übergangsoption aus.
    • Wenn Sie auf gcr.io-Repositories umstellen, die in Artifact Registry gehostet werden, aktivieren Sie die Artifact Registry API in den Container Registry-Projekten, die Sie migrieren möchten. Das Tool fordert Sie außerdem auf, die Artifact Registry API zu aktivieren, wenn Sie diesen Schritt überspringen.

      Artifact Registry API aktivieren.

      Aktivieren Sie die API

    • Wenn Sie auf Artifact Registry-Standard-Repositories umstellen, aktivieren Sie die Artifact Registry API in dem Projekt, zu dem Sie Ihre Container Registry-Container-Images migrieren möchten. Sie können dasselbe Projekt mit aktivierter Container Registry oder ein anderes Projekt verwenden.

      Artifact Registry API aktivieren.

      Aktivieren Sie die API

Erforderliche Rollen

Die folgenden Rollen sind für alle Umstellungsoptionen mit dem automatischen Migrationstool erforderlich.

Für das Artifact Registry-Dienstkonto erforderliche Rollen:

Bitten Sie Ihren Administrator, dem Artifact Registry-Dienstkonto die IAM-Rolle Storage-Objekt-Betrachter (roles/storage.objectViewer) für das Container Registry-Projekt zu gewähren, damit das Artifact Registry-Dienstkonto die erforderlichen Berechtigungen zum Kopieren von Images aus Container Registry in Artifact Registry hat. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

Möglicherweise kann Ihr Administrator dem Artifact Registry-Dienstkonto auch die erforderlichen Berechtigungen über benutzerdefinierte Rollen oder andere vordefinierte Rollen gewähren.

Zum Generieren von IAM-Empfehlungen erforderliche Rollen:

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für die Container Registry-Projekte zu gewähren, die Sie migrieren möchten, um die Berechtigungen zu erhalten, die Sie zum Analysieren einer Zulassungsrichtlinie benötigen:

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

Diese vordefinierten Rollen enthalten die Berechtigungen, die zum Analysieren einer Zulassungsrichtlinie erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind erforderlich, um eine Zulassungsrichtlinie zu analysieren:

  • cloudasset.assets.analyzeIamPolicy
  • cloudasset.assets.searchAllResources
  • cloudasset.assets.searchAllIamPolicies
  • So analysieren Sie Richtlinien mit benutzerdefinierten IAM-Rollen: iam.roles.get
  • So verwenden Sie die Google Cloud CLI zum Analysieren von Richtlinien: serviceusage.services.use

Möglicherweise können Sie diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Die folgenden Rollen werden je nach Ihrer Umstellungsoption für verschiedene Ressourcen gewährt.

gcr.io-Repositories

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zu gewähren, um die erforderlichen Berechtigungen für die Umstellung auf gcr.io-Repositories zu erhalten, die in Artifact Registry gehostet werden:

  • Erstellen Sie Artifact Registry-Repositories und gewähren Sie Zugriff auf einzelne Repositories: Artifact Registry-Administrator (roles/artifactregistry.admin) für das Google Cloud-Projekt, das Ihre Container Registry-Images enthält
  • Rufen Sie die vorhandene Container Registry-Konfiguration auf, die auf Cloud Storage-Storage-Buckets angewendet wurde, und verwalten Sie sie: Storage-Administrator (roles/storage.admin) im Google Cloud-Projekt, das Ihre Container Registry-Images enthält

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

Möglicherweise können Sie die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Standard-Repositories

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zu gewähren, um die Berechtigungen zu erhalten, die Sie für die Umstellung auf Artifact Registry-Standard-Repositories benötigen:

  • Erstellen Sie Artifact Registry-Repositories und gewähren Sie Zugriff auf einzelne Repositories: Artifact Registry-Administrator (roles/artifactregistry.admin) für das Google Cloud-Projekt, in dem die Artifact Registry API aktiviert ist
  • Rufen Sie die vorhandene Container Registry-Konfiguration auf, die auf Cloud Storage-Storage-Buckets angewendet wurde, und verwalten Sie sie: Storage-Administrator (roles/storage.admin) im Google Cloud-Projekt, das Ihre Container Registry-Images enthält

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

Möglicherweise können Sie die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Zu in Artifact Registry gehosteten gcr.io-Repositories migrieren

Mit dem Befehl gcloud artifacts docker upgrade migrate können Sie ein einzelnes Google Cloud-Projekt oder mehrere Google Cloud-Projekte gleichzeitig migrieren.

Führen Sie den folgenden Befehl aus, um zu gcr.io-Repositories zu migrieren.

gcloud artifacts docker upgrade migrate \
    --projects=PROJECTS

Dabei ist PROJECTS die Projekt-ID eines einzelnen Projekts, das Sie zu gcr.io-Repositories migrieren möchten, die in Artifact Registry gehostet werden, oder eine durch Kommas getrennte Liste von Projekt-IDs, die zu in Artifact Registry gehosteten gcr.io-Repositories migriert werden sollen.

Das Migrationstool führt die folgenden Schritte aus:

  • Es werden in Artifact Registry gcr.io-Repositories für jedes Ihrer aufgeführten gcr.io-Projekte in der entsprechenden Region erstellt.
  • Schlägt eine IAM-Richtlinie für jedes Repository vor und wendet die Richtlinie an oder überspringt die Anwendung, je nach Nutzereinstellung.
  • Leitet den gesamten Traffic vom gcr.io-Endpunkt an Artifact Registry weiter. Artifact Registry stellt fehlende Images vorübergehend bereit. Dazu werden sie zum Zeitpunkt der Anfrage aus Container Registry kopiert, bis alle Container-Images in Artifact Registry kopiert wurden.
  • Kopiert alle in Ihren gcr.io-Buckets gespeicherten Container-Images in die neu erstellten gcr.io-Repositories, die in Artifact Registry gehostet werden.
  • Deaktiviert das Kopieren während der Anfrage. Das in Artifact Registry gehostete gcr.io-Repository ist nicht mehr von Container Registry abhängig.

Wenn Sie nur Images kopieren möchten, die in den letzten 30 bis 90 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 90), die das Tool auf Zugzüge prüfen soll.

Wenn Sie eine bestimmte Anzahl kürzlich hochgeladener Versionen jedes Bildes kopieren möchten, können Sie das Flag --last-uploaded-versions=VERSIONS einfügen. Ersetzen Sie VERSIONS durch die Anzahl der Versionen, die Sie für jedes Image kopieren möchten. Wenn während des Kopiervorgangs neue Bilder hochgeladen werden, wird möglicherweise mehr als die angegebene Anzahl von Versionen kopiert.

Das Flag --recent-images und das Flag --last-uploaded-versions schließen sich gegenseitig aus und können nicht zusammen verwendet werden.

Wenn Fehler oder Zeitüberschreitungen auftreten, können Sie den Befehl bedenkenlos noch einmal ausführen. Abgeschlossene Schritte werden dann übersprungen.

Zu Artifact Registry-Standard-Repositories migrieren

  1. Führen Sie den folgenden Befehl aus, um ein gcr.io-Projekt zu einem 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 Container Registry-Hostnamen. Der Hostname hängt davon ab, wo die Container-Images gespeichert sind:

      • gcr.io hostet die Images in den USA.
      • us.gcr.io hostet die Images in den USA, und zwar in einem von gcr.io getrennten Storage-Bucket.
      • eu.gcr.io hostet die Images in Mitgliedsstaaten der Europäischen Union.
      • asia.gcr.io hostet die Images in Asien.
    • GCR_PROJECT durch Ihre Google Cloud-Projekt-ID von Container Registry. Wenn die Projekt-ID einen Doppelpunkt (:) enthält, finden Sie weitere Informationen unter Auf Domains beschränkte Projekte.

    • AR_PROJECT durch die ID des Google Cloud-Projekts, für das Sie die Artifact Registry API aktiviert haben.

    • AR_REPOSITORY durch den Namen Ihres Artifact Registry-Repositorys.

Das Migrationstool führt die folgenden Schritte aus:

  • Das Artifact Registry-Repository wird erstellt, wenn das Repository 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 aus 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 90 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 90), die das Tool auf Zugzüge prüfen soll.

Wenn Fehler oder Zeitüberschreitungen auftreten, können Sie den Befehl bedenkenlos noch einmal ausführen. Abgeschlossene Schritte werden dann ü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 in Artifact Registry gehostetes gcr.io-Repository zu kopieren:

gcloud artifacts docker upgrade migrate \
    --projects=PROJECTS \
    --copy-only

Dabei ist PROJECTS die Projekt-ID eines einzelnen Projekts, das Sie zu gcr.io-Repositories migrieren möchten, die in Artifact Registry gehostet werden, oder eine durch Kommas getrennte Liste von Projekt-IDs, die zu in Artifact Registry gehosteten gcr.io-Repositories migriert werden sollen.

Das Tool überspringt alle Migrationsschritte und kopiert die Images in den angegebenen Projekten von Container Registry in gcr.io-Repositories, die in Artifact Registry gehostet werden.

Führen Sie den folgenden Befehl aus, um Images aus Container Registry in ein Artifact Registry-Standard-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 Container Registry-Hostnamen. Der Hostname hängt davon ab, wo die Container-Images gespeichert sind:

    • gcr.io hostet die Images in den USA.
    • us.gcr.io hostet die Images in den USA, und zwar in einem von gcr.io getrennten Storage-Bucket.
    • eu.gcr.io hostet die Images in Mitgliedsstaaten der Europäischen Union.
    • asia.gcr.io hostet die Images in Asien.
  • GCR_PROJECT durch Ihre Google Cloud-Projekt-ID von Container Registry. Wenn die Projekt-ID einen Doppelpunkt (:) enthält, finden Sie weitere Informationen unter Auf Domains beschränkte Projekte.

  • AR_PROJECT durch die ID des Google Cloud-Projekts, für das 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.

Wenn während des Vorgangs ein Fehler oder eine Zeitüberschreitung auftritt, können Sie das Kopieren von Images auch mit dem Flag --copy-only neu starten.

Nächste Schritte