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.

Das automatische Migrationstool kann je nach gewähltem Übergangspfad die folgenden Aktionen ausführen:

  • Erstellen Sie gcr.io-Repositories oder Standard-Repositories in Artifact Registry für jedes Ihrer aufgeführten gcr.io-Projekte in der entsprechenden Region.
  • Schlagen Sie für jedes Repository eine IAM-Richtlinie 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 gcr.io-Repositories oder Standard-Repositories von Artifact Registry, 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. Wenn Sie diesen Schritt überspringen, werden Sie außerdem aufgefordert, die Artifact Registry API zu aktivieren.

      Artifact Registry API aktivieren.

      Aktivieren Sie die API

    • Wenn Sie auf standardmäßige Artifact Registry-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 verwenden, in dem Container Registry aktiviert ist, 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:

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 Object Viewer (roles/storage.objectViewer) für das Container Registry-Projekt zu gewähren. 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 erteilen.

Erforderliche Rollen zum Generieren von IAM-Empfehlungen:

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 zum Analysieren einer Zulassungsrichtlinie erforderlich:

  • cloudasset.assets.analyzeIamPolicy
  • cloudasset.assets.searchAllResources
  • cloudasset.assets.searchAllIamPolicies
  • So analysieren Sie Richtlinien mit benutzerdefinierten IAM-Rollen: iam.roles.get
  • So analysieren Sie Richtlinien mit der Google Cloud CLI: 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 Umstellungsoption für verschiedene Ressourcen gewährt.

gcr.io-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 gcr.io-Repositories benötigen, 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) im Google Cloud-Projekt, das Ihre Container Registry-Images enthält
  • Rufen Sie die vorhandene Container Registry-Konfiguration auf, die auf Cloud Storage-Buckets angewendet wurde, und verwalten Sie sie: Storage Admin (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) in dem Google Cloud-Projekt, in dem die Artifact Registry API aktiviert ist
  • Rufen Sie die vorhandene Container Registry-Konfiguration auf, die auf Cloud Storage-Buckets angewendet wurde, und verwalten Sie sie: Storage Admin (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 gcr.io-Repositories migrieren, die in Artifact Registry gehostet werden

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 in Artifact Registry gehosteten gcr.io-Repositories migrieren möchten, oder eine durch Kommas getrennte Liste von Projekt-IDs, die Sie zu gcr.io-Repositories migrieren möchten, die in Artifact Registry gehostet werden.

Das Migrationstool führt die folgenden Schritte aus:

  • Erstellt gcr.io-Repositories in Artifact Registry für jedes Ihrer aufgeführten gcr.io-Projekte in der entsprechenden Region.
  • Schlägt für jedes Repository eine IAM-Richtlinie 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 vorübergehend fehlende Images bereit, indem sie zum Zeitpunkt der Anfrage aus Container Registry kopiert werden, bis alle Container-Images nach 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 zum Zeitpunkt 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 150 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, die das Tool auf Abrufe prüfen soll.

Wenn Sie eine bestimmte Anzahl kürzlich hochgeladener Versionen jedes Images 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 beim Kopieren neue Bilder hochgeladen werden, werden möglicherweise mehr als die angegebene Anzahl von Versionen kopiert.

Die Flags --recent-images und --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 sicher noch einmal ausführen und die abgeschlossenen Schritte werden übersprungen.

Zu Artifact Registry-Standard-Repositories migrieren

  1. Führen Sie den folgenden Befehl aus, um Ihr 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 Ihre Container-Images gespeichert sind:

      • gcr.io hostet die Images in den USA.
      • us.gcr.io hostet die Images in den USA, jedoch 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 Container Registry-Google Cloud-Projekt-ID. 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, 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.
  • 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 150 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, die das Tool auf Abrufe prüfen soll.

Wenn Fehler oder Zeitüberschreitungen auftreten, können Sie den Befehl sicher noch einmal ausführen und die abgeschlossenen 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 nach 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 gcr.io-Repository zu kopieren, das in Artifact Registry gehostet wird:

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

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

Das Tool überspringt alle Migrationsschritte und kopiert die Images in den angegebenen Projekten aus 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 Ihre Container-Images gespeichert sind:

    • gcr.io hostet die Images in den USA.
    • us.gcr.io hostet die Images in den USA, jedoch 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 Container Registry-Google Cloud-Projekt-ID. 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, in dem 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.

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

Nächste Schritte