Automatische Migration von Container Registry zu Artifact Registry

Mit dem Tool für die automatische Migration können Sie von Container Registry zu gcr.io-Repositories migrieren, die in Artifact Registry gehostet werden, oder zu standardmäßigen Artifact Registry-Repositories.

Die Migration zu gcr.io-Repositories von Artifact Registry kann ausgeführt werden Container Registry-Endpunkte empfangen Traffic ohne Ausfallzeiten oder Dienstunterbrechung.

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.
  • Kopieren Sie alle in Container Registry gespeicherten Container-Images in Ihre gcr.io-Repositories oder Standard-Repositories in Artifact Registry, auch wenn Sie die Weiterleitung bereits aktiviert haben.

Hinweise

  1. Install the Google Cloud CLI.
  2. To initialize the gcloud CLI, run the following command:

    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. Das Tool fordert Sie außerdem auf, die Artifact Registry API zu aktivieren, wenn überspringen Sie diesen Schritt.

      Enable the Artifact Registry API.

      Enable the API

    • Wenn Sie zu standardmäßigen Artifact Registry-Repositories wechseln, aktivieren Sie die Artifact Registry API in dem Projekt, in das Sie Ihre Container-Images aus Container Registry migrieren möchten. Sie können dasselbe Projekt verwenden, Container Registry ist aktiviert oder ein anderes Projekt.

      Enable the Artifact Registry API.

      Enable the 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 auf Projekte, Ordner und Organisationen verwalten.

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

Rollen, die zum Generieren von IAM-Empfehlungen erforderlich sind:

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 auf Projekte, Ordner und Organisationen 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 auf Projekte, Ordner und Organisationen 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
  • Vorhandene Container Registry-Konfiguration für Cloud Storage-Storage-Buckets aufrufen und verwalten: Storage-Administrator (roles/storage.admin) für das Google Cloud-Projekt mit Ihren Container Registry-Images

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 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 jedes 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.
  • Alle in Ihren gcr.io-Buckets gespeicherten Container-Images werden in die neu erstellten gcr.io-Repositories kopiert, die in Artifact Registry gehostet werden.
  • Deaktiviert das Kopieren bei der Anfrage. Das gcr.io-Repository auf Artifact Registry ist nicht mehr von Container Registry abhängig.

Wenn Sie nur Images kopieren möchten, die in den letzten 30 bis 150 Tagen aus der 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 Sie eine bestimmte Anzahl der kürzlich hochgeladenen Versionen jedes Bildes kopieren möchten, können Sie das Flag --last-uploaded-versions=VERSIONS angeben. Ersetzen Sie VERSIONS durch die Anzahl der Versionen, die Sie für jedes Bild kopieren möchten. Wenn beim Kopieren neue Bilder hochgeladen werden, wird mehr als die Anzahl der angegebenen Versionen werden möglicherweise 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 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 in ein 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 Bilder 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 Bilder in Mitgliedsstaaten der Europäischen Union.
      • asia.gcr.io hostet die Bilder 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, 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 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 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, 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 den Befehl zum Kopieren von Images in Artifact Registry verwenden, können Sie das --copy-only melden.

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 ausführen möchten. zu gcr.io-Repositories migrieren, die in Artifact Registry gehostet werden, oder durch Kommas getrennt 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 die 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 von gcr.io gehostet werden.
    • eu.gcr.io hostet die Images innerhalb von Mitgliedstaaten der Europäischen Union.
    • asia.gcr.io hostet die Bilder 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, 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 das Flag --copy-only auch verwenden, um das Kopieren von Images neu zu starten, wenn während des Vorgangs ein Fehler auftritt oder die Zeitüberschreitung abgelaufen ist.

Nächste Schritte