Automatisch von Container Registry zu Artifact Registry migrieren

Verwenden Sie das automatische Migrationstool für den Wechsel von Container Registry zu gcr.io-Repositories, die in Artifact Registry oder standardmäßiger Artifact Registry gehostet werden Repositories.

Das Tool zur automatischen Migration kann je nach den gewählten Übergangspfad:

  • gcr.io-Repositories oder Standard-Repositories in Artifact Registry erstellen für 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 oder die Anwendung überspringen.
  • Leiten Sie den gesamten Traffic von gcr.io-Endpunkten an Artifact Registry weiter.
  • Alle in Container Registry gespeicherten Container-Images in Artifact Registry kopieren gcr.io-Repositories oder Standard-Repositories, auch wenn Sie sie bereits aktiviert haben Weiterleitung.

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, die Artifact Registry API in den gewünschten Container Registry-Projekten aktivieren zu migrieren. Sie werden außerdem aufgefordert, die Artifact Registry API zu aktivieren, wenn überspringen Sie diesen Schritt.

      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, das Sie migrieren möchten Container Registry-Container-Images. Sie können dasselbe Projekt verwenden, Container Registry ist aktiviert oder ein anderes Projekt.

      Artifact Registry API aktivieren.

      Aktivieren Sie die API

Erforderliche Rollen

Die folgenden Rollen sind für alle Umstellungsoptionen erforderlich, für die die automatische Migrationstool.

Für das Artifact Registry-Dienstkonto erforderliche Rollen:

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

Ihr Administrator kann dem Artifact Registry-Dienstkonto möglicherweise auch mitteilen, die erforderlichen Berechtigungen durch benutzerdefinierte Rollen oder andere vordefinierte Rollen

Erforderliche Rollen zum Generieren von IAM-Empfehlungen:

Um die Berechtigungen zu erhalten, die Sie zum Analysieren einer Zulassungsrichtlinie benötigen, bitten Sie Ihren Administrator, Ihnen folgende IAM-Rollen in den Container Registry-Projekten, die Sie migrieren möchten:

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

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

Die folgenden Rollen werden je nach Ihrem Übergangsoption auswählen.

gcr.io-Repositories

So erhalten Sie die Berechtigungen, die Sie für den Wechsel zu gcr.io-Repositories benötigen, die in Artifact Registry gehostet werden: bitten Sie Ihren Administrator, Ihnen folgenden IAM-Rollen:

  • 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
  • Sehen Sie sich die vorhandene Container Registry-Konfiguration an, die auf Cloud Storage-Storage-Buckets angewendet wurde, und verwalten Sie sie: Storage-Administrator (roles/storage.admin) für das Google Cloud-Projekt, das Ihre Container Registry-Images enthält

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

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

Standard-Repositories

So erhalten Sie die erforderlichen Berechtigungen für den Wechsel zu standardmäßigen Artifact Registry-Repositories: bitten Sie Ihren Administrator, Ihnen folgenden IAM-Rollen:

  • 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
  • Sehen Sie sich die vorhandene Container Registry-Konfiguration an, die auf Cloud Storage-Storage-Buckets angewendet wurde, und verwalten Sie sie: Storage-Administrator (roles/storage.admin) für das Google Cloud-Projekt, das Ihre Container Registry-Images enthält

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

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

Zu gcr.io-Repositories migrieren, die in Artifact Registry gehostet werden

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

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 ausführen möchten. zu gcr.io-Repositories migrieren, die in Artifact Registry gehostet werden, oder einen kommagetrennten Wert eingeben Liste der Projekt-IDs, die Sie zu gcr.io-Repositories migrieren möchten Artifact Registry.

Das Migrationstool führt die folgenden Schritte aus:

  • Erstellt gcr.io-Repositories in Artifact Registry für jede der Ihre aufgeführten gcr.io-Projekte in der entsprechenden Region.
  • Schlägt für jedes Repository eine IAM-Richtlinie vor und wendet die oder die Anwendung überspringt, je nach Nutzereinstellung.
  • Leitet den gesamten Traffic vom gcr.io-Endpunkt an Artifact Registry weiter. Artifact Registry stellt fehlende Images vorübergehend bereit, indem sie aus folgenden Quellen kopiert werden: Container Registry zum Zeitpunkt der Anfrage, bis alle Container-Images kopiert wurden nach Artifact Registry.
  • 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 gcr.io-Repository auf Artifact Registry ist nicht mehr von Container Registry abhängig.

Wenn Sie nur Images aus Container Registry kopieren möchten, 150 Tage lang ist, können Sie das Flag --recent-images=DAYS einfügen. Ersetzen Sie DAYS durch die Anzahl der Tage zwischen 30 und 150, für die der das Werkzeug auf Ziehbewegungen prüft.

Wenn Sie eine bestimmte Anzahl kürzlich hochgeladener Versionen Bild einfügen, können Sie das --last-uploaded-versions=VERSIONS melden. Ersetzen Sie VERSIONS durch die Anzahl der Versionen, die Sie kopieren möchten. für jedes Bild. Wenn beim Kopieren neue Bilder hochgeladen werden, wird mehr als die Anzahl der angegebenen Versionen werden möglicherweise kopiert.

Die Flags --recent-images und --last-uploaded-versions sind gegenseitig exklusiv und können nicht zusammen verwendet werden.

Wenn Fehler oder Zeitüberschreitungen auftreten, können Sie den Befehl sicher noch einmal ausführen. abgeschlossene Schritte ü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: folgenden Befehl.

    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, in einem separaten Storage-Bucket aus Images, die von gcr.io gehostet werden.
      • eu.gcr.io hostet die Images innerhalb von Mitgliedstaaten 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, Weitere Informationen finden Sie unter Auf Domains beschränkte Projekte.

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

    • AR_REPOSITORY durch den Namen Ihres Artifact Registry-Repositorys.

Das Migrationstool führt die folgenden Schritte aus:

  • Erstellt das Artifact Registry-Repository, falls dies noch nicht geschehen ist existieren.
  • Schlägt eine IAM-Richtlinie für das Repository vor und wendet die oder die Anwendung überspringt, je nach Nutzereinstellung.
  • Kopiert Images in der angegebenen Container Registry-Region und in Ihr Artifact Registry-Repository.

Wenn Sie nur Images aus Container Registry kopieren möchten, 150 Tage lang ist, können Sie das Flag --recent-images=DAYS einfügen. Ersetzen Sie DAYS durch die Anzahl der Tage zwischen 30 und 150, für die der das Werkzeug auf Ziehbewegungen prüft.

Wenn Fehler oder Zeitüberschreitungen auftreten, können Sie den Befehl sicher noch einmal ausführen. abgeschlossene Schritte ü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 den Befehl zum Kopieren von Images in Artifact Registry verwenden, können Sie das --copy-only melden.

Zum Kopieren von Images aus Container Registry in ein gcr.io-Repository auf Artifact Registry ausführen:

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

Dabei ist PROJECTS die Projekt-ID eines einzelnen Projekts, das Sie ausführen möchten. zu gcr.io-Repositories migrieren, die in Artifact Registry gehostet werden, oder einen kommagetrennten Wert eingeben Liste der Projekt-IDs, die Sie zu gcr.io-Repositories migrieren möchten Artifact Registry.

Das Tool überspringt alle Migrationsschritte und kopiert die Images in der angegebenen von Container Registry bis hin zu gcr.io-Repositories Artifact Registry.

So kopieren Sie Images aus Container Registry in ein Artifact Registry-Standard-Repository: führen Sie den folgenden Befehl aus:

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, in einem separaten Storage-Bucket aus Images, die von gcr.io gehostet werden.
    • eu.gcr.io hostet die Images innerhalb von Mitgliedstaaten 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, Weitere Informationen finden Sie unter Auf Domains beschränkte Projekte.

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

  • AR_REPOSITORY durch den Namen Ihres Artifact Registry-Repositorys.

Das Tool überspringt alle Migrationsschritte und kopiert Bilder von der 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 Sie eine oder Zeitüberschreitung auftreten.

Nächste Schritte