Zu Repositories mit Unterstützung von gcr.io-Domains wechseln

Wenn Sie Ihre Container-Images derzeit mit Container Registry verwalten, erfahren Sie auf dieser Seite, wie Sie Artifact Registry-Repositories mit der Unterstützung von gcr.io-Domains einrichten. Ein gcr.io-Repository in Artifact Registry hat einige Funktionen, die mit Container Registry abwärtskompatibel sind.

Diese Anleitung richtet sich hauptsächlich an Repository-Administratoren. Hier erfahren Sie, wie sich das Erstellen, Pushen, Abrufen und Bereitstellen von Images geändert hat:

Hinweis

Die Resource Manager API muss in Ihrem Google Cloud-Projekt aktiviert sein, um nach einer der in dieser Anleitung erforderlichen Berechtigungen zu suchen.

Sie können die API über die Cloud Console oder mit dem folgenden Befehl aktivieren:

gcloud services enable cloudresourcemanager.googleapis.com

Übersicht

Artifact Registry-Repositories mit Unterstützung für gcr.io-Domains bieten mehrere abwärtskompatible Features:

  • Anfragen für Container Registry-Hostnamen automatisch an gcr.io-Repositories von Artifact Registry weiterleiten.
  • Verwenden Sie entweder gcloud container images oder die entsprechenden gcloud artifacts-Befehle.

Wenn Sie viele vorhandene Automatisierungen für die Umstellung haben, können Sie mit diesen Funktionen schneller zu Artifact Registry wechseln. Zur Unterstützung der Abwärtskompatibilität haben gcr.io-Repositories in Artifact Registry jedoch einige Featureeinschränkungen und unterstützen möglicherweise keine neuen Artifact Registry-Features.

Standard-Repositories und Repositories mit Unterstützung für gcr.io-Domains können nebeneinander bestehen, sodass Sie schrittweise umstellen können. Beispiel:

  • Sie können gcr.io-Repositories in Artifact Registry erstellen, um Ihre vorhandene Container Registry-Einrichtung zu übertragen und Standard-Repositories für neue Arbeit zu erstellen.
  • Sie können einen mehrstufigen Ansatz wählen. Wechseln Sie zu gcr.io-Repositories in Artifact Registry und wechseln Sie dann schrittweise zu Standard-Repositories, wenn Sie Ihre Automatisierung aktualisieren, um Artifact Registry-Repositories und -Image-Pfade vollständig zu unterstützen.

Wenn Sie sonst alle Funktionen von Artifact Registry vollständig unterstützen oder sichergehen möchten, dass neue Features für Ihre Repositories verfügbar sind, wechseln Sie direkt zu Standard-Repositories.

Beschränkungen

Die folgenden Einschränkungen gelten für Repositories mit Unterstützung für die Domain gcr.io:

  • Zum Erstellen von gcr.io-Repositories von Artifact Registry muss mindestens ein Container Registry-Host in Ihrem Google Cloud-Projekt vorhanden sein. Sie können einen Container Registry-Host keinem Artifact Registry-Repository in einem anderen Projekt zuordnen.
  • Jeder Container Registry-Hostname ist nur einem entsprechenden Artifact Registry-Repository gcr.io in derselben Multiregion zugeordnet.
  • Namen für gcr.io-Repositories sind vordefiniert und können nicht geändert werden.
  • Einige Features werden nicht unterstützt:
    • gcr.io-Repository in einem Dienstperimeter von VPC Service Controls sichern
    • Repositories mit Docker-Kataloganfragen auflisten
    • Gekürzte Digests werden von gcloud artifacts docker-Befehlen nicht unterstützt. Wenn Sie ein Image mit einem Digest angeben, müssen Sie den vollständigen Digest-String angeben.

Container Registry-Hosts Artifact Registry-Repositories zuordnen

Das folgende Beispiel zeigt, wie ein Container Registry-Image-Pfad und der entsprechende Image-Pfad in einem gcr.io-Repository bei aktivierter Weiterleitung dargestellt werden. Obwohl die Nutzer Ihrer Repositories nicht das Artifact Registry-Repository und die Image-Pfade verwenden müssen, ist es hilfreich, die Zuordnung für die Weiterleitung zu verstehen, wenn Sie Ihre gcr.io-Repositories einrichten und testen.

Container Registry zu übertragen. Artifact Registry.
Projekt: my-project Projekt: my-project
Hostname der Registry: gcr.io Repository-Name: gcr.io
Image-Pfad: gcr.io/my-project/my-image Image-Pfad: us-docker.pkg.dev/my-project/gcr.io/my-image

Umstellungsschritte

In diesem Leitfaden erfahren Sie, wie Sie die folgenden Schritte ausführen:

  1. Informieren Sie sich über die Preise für Artifact Registry, bevor Sie mit der Umstellung beginnen.
  2. Aktualisieren Sie das Cloud SDK und informieren Sie sich über die neuen gcloud-Befehle.
  3. Aktivieren Sie die Artifact Registry API.
  4. Erstellen Sie Docker-Repositories für Container Registry-Hosts im Projekt.
  5. Gewähren Sie Berechtigungen für das Repository.
  6. Konfigurieren Sie die Authentifizierung, damit Sie eine Verbindung zu Ihrem neuen Repository herstellen können.
  7. Kopieren Sie bei Bedarf Images aus Container Registry, die Sie in Ihrem neuen Repository verwenden möchten.
  8. Aktivieren Sie die Weiterleitung, damit Sie prüfen können, ob vorhandene Push- und Pull-Anfragen an gcr.io in Ihrer Automatisierung die neuen Docker-Repositories verwenden. Die Änderung wird erst endgültig, wenn Sie die Weiterleitung abschließen.
  9. Prüfen Sie, ob durch die vorhandene Automatisierung Images übertragen und abgerufen werden können.
  10. Wenn Sie sicher sind, dass Ihre Repositories erwartungsgemäß funktionieren, finalisieren Sie die Weiterleitung von gcr.io-Traffic.
  11. Konfigurieren Sie zusätzliche Features.
  12. Bereinigen Sie Images in Container Registry, wenn die Umstellung abgeschlossen ist.

Service aktivieren

Um Artifact Registry zu verwenden, aktivieren Sie die Artifact Registry API über die Cloud Console oder mit dem folgenden Befehl:

gcloud services enable artifactregistry.googleapis.com

Cloud SDK aktualisieren und konfigurieren

Container Registry verwendet gcloud container images-Befehle.

Artifact Registry verwendet gcloud artifacts-Befehle für Images.

  1. Installieren Sie das Cloud SDK, falls es noch nicht installiert ist.

  2. Aktualisieren Sie die gcloud-Komponenten.

    gcloud components update
    

gcloud-Befehlsvergleich

In der folgenden Tabelle sind die Container Registry-Befehle und die entsprechenden Artifact Registry-Befehle im gcloud-Tool zusammengefasst. Klicken Sie auf einen Link in der Tabelle, um die Referenzseite für diesen Befehl aufzurufen.

Die Tabelle enthält nicht alle verfügbaren Artifact Registry-Befehle, die kein Äquivalent in Container Registry haben. Die vollständige Referenz des Artifact Registry-Befehls finden Sie in der Dokumentation zu gcloud artifacts.

Aktion Container Registry Artifact Registry
Repository erstellen Nicht zutreffend. gcloud artifacts repositories create
Ein Repository löschen Nicht zutreffend. gcloud artifacts repositories delete
Images auflisten gcloud container images list gcloud artifacts docker images list
Tags auflisten gcloud container images list-tags gcloud artifacts docker tags list
Tag hinzufügen gcloud container images add-tag gcloud artifacts docker tags add
Löschen eines Tags gcloud container images untag gcloud artifacts docker tags delete
Images beschreiben gcloud container images describe gcloud artifacts docker image list --include-tags

Repositories erstellen

Container Registry erstellt automatisch einen Storage-Bucket in mehreren Regionen, wenn Sie vorher kein Image hochgeladen haben. In Artifact Registry müssen Sie ein Repository erstellen, bevor Sie Images hochladen können.

Sie können in der Google Cloud Console mithilfe eines speziellen Bereichs schnell gcr.io-Repositories erstellen oder gcr.io-Repositories manuell erstellen. In Ihrem Projekt muss mindestens ein Container Registry-Host vorhanden sein, damit gcr.io-Repositories von Artifact Registry erstellt werden können.

Schnelle Repository-Erstellung

Mit diesen Schritten werden gcr.io-Repositories in Artifact Registry für vorhandene Container Registry-Hosts in Ihrem Projekt erstellt. Die Repositories sind mit von Google verwalteten Verschlüsselungsschlüsseln verschlüsselt. Wenn Sie vom Kunden verwaltete Verschlüsselungsschlüssel (Customer-Managed Encryption Keys, CMEK) verwenden möchten, müssen Sie Repositories manuell erstellen.

So erstellen Sie gcr.io-Repositories für Ihre Container Registry-Hosts:

  1. Öffnen Sie in der Cloud Console die Seite Repositories.

    Zur Seite „Repositories“

    Auf der Seite wird in einem Banner die Meldung You have gcr.io repositories in Container Registry angezeigt. Wenn du das Banner geschlossen hast oder es nicht angezeigt wird, öffne stattdessen die Seite "Einstellungen".

    Zur Seite "Einstellungen"

  2. Klicken Sie im Banner auf gcr.io-Repositories erstellen.

    Im Feld gcr.io-Repositories erstellen werden die Container Registry-Hostnamen in Ihrem Projekt angezeigt.

  3. Wählen Sie Hostnamen aus, die auf die Artifact Registry umgestellt werden sollen. Artifact Registry zeigt den vollständigen Pfad für das entsprechende Repository gcr.io unter der Liste der Hostnamen an.

  4. Klicken Sie auf Erstellen.

Artifact Registry erstellt Repositories für jeden ausgewählten Hostnamen und fügt sie der Repository-Liste hinzu. Wenn Sie die Artifact Registry-URL für das Repository schnell aufrufen möchten, bewegen Sie den Mauszeiger auf das Warnsymbol ("") neben dem Repository-Namen.

Bevor Sie Traffic zu Ihren neuen Repositories weiterleiten, müssen Sie prüfen, ob die vorhandene Automatisierung auf das Repository zugreifen kann. Im nächsten Schritt konfigurieren Sie Berechtigungen, um den Zugriff auf Repositories zu gewähren.

Manuelle Repository-Erstellung

Erstellen Sie manuell gcr.io-Repositories, wenn Sie das Banner mit der Schnelloption für die Repository-Erstellung geschlossen haben oder wenn Sie vom Kunden verwaltete Verschlüsselungsschlüssel (CMEK) für die Verschlüsselung verwenden{101. }Repository-Inhalte.

So erstellen Sie manuell ein gcr.io-Repository:

  1. Wenn Sie CMEK verwenden, erstellen Sie den Schlüssel, der für dieses Repository verwendet werden soll, und gewähren Sie Berechtigungen für die Verwendung des Schlüssels. Weitere Informationen finden Sie unter Vom Kunden verwaltete Verschlüsselungsschlüssel aktivieren.

  2. Fügen Sie das Repository hinzu:

    Console

    1. Öffnen Sie in der Cloud Console die Seite Repositories.

      Zur Seite „Repositories“

    2. Klicken Sie auf Repository erstellen.

    3. Geben Sie den Repository-Namen an.

      Hostname für Container Registry Name des Artifact Registry-Repositorys
      gcr.io gcr.io
      asia.gcr.io asia.gcr.io
      eu.gcr.io eu.gcr.io
      us.gcr.io us.gcr.io
    4. Geben Sie Docker als Repository-Format an.

    5. Geben Sie unter Standorttyp den multiregionalen Standort für das Repository an:

      Hostname für Container Registry Speicherort des Artifact Registry-Repositorys
      gcr.io us
      asia.gcr.io asia
      eu.gcr.io europe
      us.gcr.io us
    6. Fügen Sie eine Beschreibung für das Repository hinzu. Geben Sie keine sensiblen Daten an, da Repository-Beschreibungen nicht verschlüsselt sind.

    7. Wählen Sie im Abschnitt Verschlüsselung den Verschlüsselungsmechanismus für das Repository aus.

      • Von Google verwalteter Schlüssel: Verschlüsselung des Repository-Inhalts mit einem von Google verwalteten Verschlüsselungsschlüssel.
      • Vom Kunden verwalteter Schlüssel: Verschlüsselung des Repository-Inhalts mit einem Schlüssel, den Sie über Cloud Key Management Service steuern. Eine grundlegende Einrichtungsanleitung finden Sie unter Vom Kunden verwalteten Schlüssel für Repositories einrichten.
    8. Klicken Sie auf Erstellen.

    gcloud

    Führen Sie den folgenden Befehl aus, um ein neues Repository zu erstellen:

    gcloud artifacts repositories create REPOSITORY \
    --repository-format=docker [--location=LOCATION] \
    [--description=DESCRIPTION] [--kms-key=KMS-KEY] [--async]
    

    Ersetzen Sie die folgenden Werte:

    • REPOSITORY ist der Name des Repositorys. Repository-Namen können für jeden Repository-Speicherort in einem Projekt nur einmal vorkommen.

      Hostname für Container Registry Name des Artifact Registry-Repositorys
      gcr.io gcr.io
      asia.gcr.io asia.gcr.io
      eu.gcr.io eu.gcr.io
      us.gcr.io us.gcr.io
    • LOCATION ist der multiregionale Speicherort für das Repository:

      Hostname für Container Registry Speicherort des Artifact Registry-Repositorys
      gcr.io us
      asia.gcr.io asia
      eu.gcr.io europe
      us.gcr.io us
    • DESCRIPTION ist eine Beschreibung des Repositorys. Geben Sie keine sensiblen Daten an, da Repository-Beschreibungen nicht verschlüsselt sind.

    • KMS-KEY ist der vollständige Pfad zum Cloud KMS-Verschlüsselungsschlüssel, wenn Sie einen vom Kunden verwalteten Verschlüsselungsschlüssel zum Verschlüsseln des Repository-Inhalts nutzen. Der Pfad hat folgendes Format:

      projects/KMS-PROJECT/locations/KMS-LOCATION/keyRings/KEY-RING/cryptoKeys/KEY
      

      Dabei gilt:

      • KMS-PROJECT ist das Projekt, in dem Ihr Schlüssel gespeichert ist.
      • KMS-LOCATION ist der Speicherort des Schlüssels.
      • KEY-RING ist der Name des Schlüsselbunds.
      • KEY ist der Name des Schlüssels.
    • --async wird sofort zurückgegeben, ohne auf den Abschluss des Vorgangs zu warten.

    Sie können prüfen, ob das Repository erstellt wurde, indem Sie die Repositories mit dem folgenden Befehl auflisten:

    gcloud artifacts repositories list
    

Bevor Sie Traffic zu Ihren neuen Repositories weiterleiten, müssen Sie prüfen, ob die vorhandene Automatisierung auf das Repository zugreifen kann. Im nächsten Schritt konfigurieren Sie Berechtigungen, um den Zugriff auf Repositories zu gewähren.

Berechtigungen für Repositories gewähren

In Container Registry basiert die Zugriffssteuerung auf den Cloud Storage-Rollen und -Berechtigungen. Wenn Sie keine projektweite Rolle zuweisen möchten, müssen Sie Berechtigungen für den von Container Registry verwendeten Storage-Bucket erteilen.

Artifact Registry hat eigene IAM-Rollen. Sie können Rollen auf Projektebene vergeben oder Berechtigungen für einzelne Repositories festlegen. Verwenden Sie mehrere Docker-Repositories in Verbindung mit Repository-spezifischen Berechtigungen, um den Zugriff auf verschiedene Artefakte zu steuern. Sie können beispielsweise striktere Kontrollen in einem Produktions-Repository erteilen oder Zugriff auf teamspezifische Repositories basierend auf der Teammitgliedschaft gewähren.

Dienstkonten für allgemeine Integrationen in Artifact Registry haben Standard-Berechtigungen für Repositories im selben Projekt. Wenn Sie einen Google Cloud-Dienst in einem anderen Projekt oder ein Drittanbietertool zum Hoch- und Herunterladen von Images verwenden, müssen Sie die entsprechenden Berechtigungen manuell konfigurieren.

Eine Anleitung zum Erteilen von Berechtigungen finden Sie unter Berechtigungen erteilen.

Beim Repository authentifizieren

Artifact Registry unterstützt dieselben Authentifizierungsmethoden wie Container Registry. Sie können Ihre vorhandenen Docker-Clients weiterhin mit Artifact Registry verwenden.

Wenn Sie das Docker Credential Helper für die Authentifizierung verwenden, werden nur gcr.io-Hostnamen standardmäßig unterstützt. Wenn Sie eine Verbindung zu pkg.dev-Hostnamen sowie zu gcr.io-Hostnamen herstellen müssen, können Sie die erforderlichen Hostnamen der Credential Helper-Konfiguration hinzufügen. Weitere Informationen finden Sie unter Authentifizierung für Docker einrichten.

Container aus Container Registry kopieren

Sollten sich Container in Container Registry befinden, die Sie weiterhin in Artifact Registry verwenden möchten, haben Sie mehrere Möglichkeiten zum Kopieren. Eine ausführliche Anleitung finden Sie unter Images aus Container Registry kopieren.

Wenn Sie das Ziel gcr.io-Repository angeben, verwenden Sie den Artifact Registry-Pfad des Repositorys im folgenden Format:

LOCATION-docker.pkg.dev/PROJECT/REPOSITORY

Wobei:

  • LOCATION ist der multiregionale Speicherort, in dem sich das Repository befindet.

    Hostname für Container Registry Speicherort des Artifact Registry-Repositorys
    gcr.io us
    asia.gcr.io asia
    eu.gcr.io europe
    us.gcr.io us
  • PROJECT ist die Projekt-ID.

  • REPOSITORY ist der Repository-Name:

    Hostname für Container Registry Name des Artifact Registry-Repositorys
    gcr.io gcr.io
    asia.gcr.io asia.gcr.io
    eu.gcr.io eu.gcr.io
    us.gcr.io us.gcr.io

Um schnell die Artifact Registry-URL für ein gcr.io-Repository zu sehen, das Sie in der Cloud Console erstellt haben, bewegen Sie den Mauszeiger über das Warnsymbol ("") neben dem Repository-Namen.

Beispiele

Mit den folgenden Beispielbefehlen werden alle Images in einem Container Registry-Host in das entsprechende gcr.io-Repository von Artifact Registry im Projekt my-project kopiert.

Für gcr.io:

gcrane cp -r gcr.io/my-project us-docker.pkg.dev/my-project/gcr.io

Für asia.gcr.io:

gcrane cp -r asia.gcr.io/my-project asia-docker.pkg.dev/my-project/asia.gcr.io

Für eu.gcr.io:

gcrane cp -r eu.gcr.io/my-project europe-docker.pkg.dev/my-project/eu.gcr.io

Für us.gcr.io:

gcrane cp -r us.gcr.io/my-project us-docker.pkg.dev/my-project/us.gcr.io

Weitere Funktionen einrichten

In diesem Abschnitt wird die Konfiguration für andere Features beschrieben, die Sie in Container Registry eingerichtet haben.

Container Analysis

Container Analysis unterstützt sowohl die Container Registry als auch die Artifact Registry. Die Dokumentation zu Container Analysis enthält beide Produkte.

  • Beide Produkte verwenden dieselben Container Analysis APIs. Wenn Sie Container Analysis APIs in Container Registry oder Artifact Registry aktivieren, werden die APIs für beide Produkte aktiviert.
  • Beide Produkte verwenden dieselben Pub/Sub-Themen für Container Analysis-Benachrichtigungen. Nachdem Sie die Weiterleitung aktiviert haben, enthalten alle vorhandenen Abos Benachrichtigungen für Images in gcr.io-Repositories.
  • Sie können weiterhin gcloud container images-Befehle verwenden, um Hinweise und Vorkommen mit gcr.io-Image-Pfaden aufzulisten.

Pub/Sub-Benachrichtigungen

Artifact Registry veröffentlicht Änderungen an demselben gcr-Thema wie Container Registry. Wenn Sie Pub/Sub bereits mit Container Registry im selben Projekt wie Artifact Registry verwenden, ist keine zusätzliche Konfiguration erforderlich. Artifact Registry veröffentlicht jedoch keine Nachrichten für gcr.io-Repositories, bis die Weiterleitung aktiviert ist. Nachdem Sie die Weiterleitung aktiviert haben, enthält das Thema gcr sowohl für Artifact Registry als auch für Container Registry Benachrichtigungen.

Wenn Sie Artifact Registry in einem separaten Projekt einrichten, ist das Thema gcr möglicherweise nicht vorhanden. Anleitungen zur Einrichtung finden Sie unter Pub/Sub-Benachrichtigungen konfigurieren.

Weiterleitung von gcr.io-Traffic aktivieren

Zum Aktivieren oder Abschließen der Weiterleitung benötigen Sie die folgenden Berechtigungen auf Projektebene:

  • artifacts.projectsettings.update: Berechtigungen zum Aktualisieren der Projekteinstellungen von Artifact Registry. Diese Berechtigung hat die Rolle "Artifact Registry-Repository-Administrator" (roles/artifactregistry.repoAdmin).
  • storage.buckets.update – Berechtigungen zum Aktualisieren von Storage-Buckets im gesamten Projekt. Diese Berechtigung ist in der Rolle "Storage-Administrator" (roles/storage.admin) enthalten.

Wenn Sie diese Berechtigungen nicht haben, bitten Sie einen Administrator, sie auf Projektebene zu gewähren.

Mit den folgenden Befehlen gewähren Sie die Berechtigungen des Artifact Registry-Repository-Administrators und des Storage-Administrators eines Projekts.

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=MEMBER \
    --role=roles/artifactregistry.repoAdmin

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=MEMBER \
    --role=roles/storage.admin

Ersetzen Sie die folgenden Werte:

  • PROJECT_ID ist die Google Cloud-Projekt-ID.
  • MEMBER ist die E-Mail-Adresse des Kontos, das Sie aktualisieren möchten. Beispiel: user:my-user@example.com

Nachdem Sie die gcr.io-Repositories erstellt und Berechtigungen und die Authentifizierung für Ihre Drittanbieter-Clients konfiguriert haben, können Sie: Weiterleitung von gcr.io-Traffic aktivieren

Der gesamte Traffic zu gcr.io, asia.gcr.io, eu.gcr.io und us.gcr.io wird weitergeleitet, auch wenn Sie keine gcr.io-Repositories für alle Container Registry-Hostnamen erstellt haben. Beispiel: Wenn das Projektmy-project hat gcr.io-Repositories für alle Container Registry-Hostnamen außereu.gcr.io , Anfragen zum Pushen oder Abrufeneu.gcr.io/my-project gibt ein 404 Not Found Fehler

Wenn Sie die Weiterleitung aktivieren, wird die Änderung erst endgültig, wenn Sie die Weiterleitung abschließen. Sie können Traffic zurück zu Container Registry leiten, wenn Sie vor dem Abschluss der Weiterleitung weitere Änderungen vornehmen müssen.

Projekteinrichtung validieren

Führen Sie den folgenden Befehl aus, um Ihre Projekteinrichtung zu validieren:

gcloud beta artifacts settings enable-upgrade-redirection \
    --project=PROJECT_ID --dry-run

Ersetzen Sie PROJECT_ID durch Ihre Google Cloud-Projekt-ID.

Artifact Registry prüft auf Repositories, die Container Registry-Hostnamen zugeordnet sind.

Wenn alle Ihre Container Registry-Hosts ein entsprechendes Artifact Registry-Docker-Repository haben, sieht die Ausgabe in etwa so aus:

Redirection enablement report:

Container Registry Host  Location  Artifact Registry Repository
gcr.io                   us        projects/my-project/locations/us/repositories/gcr.io
eu.gcr.io                eu        projects/my-project/locations/us/repositories/eu.gcr.io

PASS: Redirection enablement checks passed.

Dry run enabled, no changes made.

Wenn ein Hostname in Ihrem Projekt kein entsprechendes gcr.io-Repository hat, zeigt Artifact Registry eine Warnung an. Wenn der Hostname gcr.io beispielsweise kein entsprechendes Artifact Registry-Docker-Repository namens gcr.io hat, enthält die Ausgabe eine Warnung wie die folgende:

WARNING: Not all Container Registry repositories have Artifact Registry
repositories created to handle redirected requests.

Container Registry repository 'gcr.io' should redirect to an Artifact Registry
Docker repository in location 'us' named 'gcr.io'. This repository can be
created with:

gcloud artifacts repositories create gcr.io --location=us --project=my-project
--repository-format=DOCKER

If Artifact Registry repositories are not created, the following Container
Registry repositories will no longer serve requests:
gcr.io

Weiterleitung aktivieren

So aktivieren Sie die Weiterleitung für gcr.io-Traffic:

Console

  1. Öffnen Sie in der Cloud Console die Seite „Einstellungen”.

    Zur Seite "Einstellungen"

  2. Klicken Sie auf Route to Artifact Registry.

gcloud

Führen Sie den folgenden Befehl aus, um die Weiterleitung zu aktivieren:

gcloud beta artifacts settings enable-upgrade-redirection \
    --project=PROJECT_ID

Ersetzen Sie PROJECT_ID durch Ihre Google Cloud-Projekt-ID.

Der Befehl gibt eine Liste weitergeleiteter Container Registry-Hosts zurück. Beispiel:

Container Registry Host  Location  Artifact Registry Repository
gcr.io                   us        projects/my-project/locations/us/repositories/gcr.io

Führen Sie den folgenden Befehl aus, um den aktuellen Status der Weiterleitung zu prüfen:

gcloud beta artifacts settings describe

Wenn die Weiterleitung aktiviert ist, lautet das Ergebnis:

legacyRedirectionState: REDIRECTION_FROM_GCR_IO_ENABLED

Wenn die Weiterleitung aktiviert ist, können Sie Ihre Automatisierung testen und überprüfen, ob Sie Images mithilfe Ihrer neuen gcr.io-Repositories per Push und Pull übertragen können. Bei Bedarf können Sie den Traffic zurück an Container Registry weiterleiten und dann die Weiterleitung wieder aktivieren, wenn Sie mit dem Testen fortfahren möchten.

Wenn die Weiterleitung dauerhaft sein soll, können Sie die Weiterleitung abschließen.

Traffic zurück an Container Registry weiterleiten

Bei Bedarf können Sie gcr.io-Traffic zurück an Container Registry weiterleiten. Sie können Weiterleitungen wieder aktivieren, wenn Sie bereit sind.

Console

  1. Öffnen Sie in der Cloud Console die Seite „Einstellungen”.

    Zur Seite "Einstellungen"

  2. Klicken Sie auf Zurück zu Container Registry.

gcloud

  1. Führen Sie dazu diesen Befehl aus:

    gcloud beta artifacts settings disable-upgrade-redirection \
        --project=PROJECT_ID
    

    Ersetzen Sie PROJECT_ID durch Ihre Google Cloud-Projekt-ID.

    Artifact Registry fordert Sie zur Bestätigung auf.

  2. Geben Sie y ein, um die Weiterleitung zurück an Container Registry zu bestätigen.

Weiterleitung überprüfen

Prüfen Sie, ob Pull- und Push-Anfragen an gcr.io-Hostnamen funktionieren.

  1. Laden Sie ein Test-Image mithilfe seines gcr.io-Pfads in eines Ihrer gcr.io-Repositories hoch.

    1. Taggen Sie das Image mit dem Pfad gcr.io. Mit diesem Befehl wird beispielsweise das Image local-image als us.gcr.io/my-project/test-image gekennzeichnet:

      docker tag local-image us.gcr.io/my-project/test-image
      
    2. Übertragen Sie das getaggte Image mit Push. Mit diesem Befehl wird beispielsweise das Image us.gcr.io/my-project/test-image übertragen:

      docker push us.gcr.io/my-project/test-image
      
  2. Listen Sie Images im Repository auf, um zu prüfen, ob das Image erfolgreich hochgeladen wurde. Führen Sie beispielsweise den folgenden Befehl aus, um Images in us.gcr.io/my-project aufzulisten:

    gcloud container images list --repository=us.gcr.io/my-project
    
  3. Rufen Sie das Image aus seinem Repository-Pfad aus dem Repository ab. Mit diesem Befehl wird beispielsweise das Image us.gcr.io/my-project/test-image abgerufen.

    docker pull us.gcr.io/my-project/test-image
    

Prüfen Sie nach diesem ersten Test, ob Ihre vorhandene Automatisierung zum Erstellen und Bereitstellen von Images erwartungsgemäß funktioniert. Dazu gehören:

  • Nutzer und Dienstkonten, die Container Registry verwenden, können weiterhin Images per Push und Pull übertragen und bereitstellen, sofern die Weiterleitung aktiviert ist.
  • Durch Ihre Automatisierung werden Images nur in vorhandene Repositories übertragen.
  • Wenn das Scannen auf Sicherheitslücken von Container Analysis aktiviert ist, werden Images mit Sicherheitslücken in gcr.io-Repositories gescannt.
  • Wenn Sie die Binärautorisierung verwenden, funktionieren Ihre vorhandenen Richtlinien korrekt für Images, die aus gcr.io-Repositories bereitgestellt werden.
  • Zu den konfigurierten Pub/Sub-Abos gehören Benachrichtigungen zu Änderungen an Ihren gcr.io-Repositories.

Weiterleitung von gcr.io-Traffic abschließen

Nachdem Sie bestätigt haben, dass Sie Images erfolgreich in Ihre neuen Repositories übertragen und daraus abrufen können, können Sie die Weiterleitung des gcr.io-Traffics abschließen, sodass die Weiterleitung permanent ist.

So schließen Sie die Weiterleitung ab:

Console

  1. Öffnen Sie in der Cloud Console die Seite „Einstellungen”.

    Zur Seite "Einstellungen"

  2. Klicken Sie auf Abschließen.

gcloud

  1. Führen Sie dazu diesen Befehl aus:

    gcloud beta artifacts settings finalize-upgrade-redirection \
        --project=PROJECT_ID
    

    Ersetzen Sie PROJECT_ID durch Ihre Google Cloud-Projekt-ID.

    Artifact Registry listet Container Registry-Hosts auf, die derzeit weitergeleitet werden, und fordert Sie auf, zu bestätigen, dass Sie die Weiterleitung abschließen möchten.

  2. Geben Sie y ein, um die permanente Weiterleitung zu bestätigen.

Container Registry-Images bereinigen

Wenn die Weiterleitung aktiviert ist, werden Images zum Löschen von Images in gcr.io-Pfaden durch Images im entsprechenden Artifact Registry-Repository gcr.io gelöscht. Auf Container Registry-Hosts gespeicherte Images werden nicht gelöscht. Wenn Sie alle Container Registry-Images sicher entfernen möchten, löschen Sie die Cloud Storage-Buckets für jeden Container Registry-Hostnamen.

So bereinigen Sie Folgendes:

  1. Löschen Sie alle Container Registry-Storage-Buckets:

    Console

    In der Cloud Console können im Hintergrund bis zu mehrere Millionen Objekte im Bulk gelöscht werden. Außerdem können damit nur Objekte mit einem gemeinsamen Präfix im Bulk gelöscht werden, die bei Verwendung der Cloud Console als Teil eines Ordners angezeigt werden.

    1. Rufen Sie in der Cloud Console die Seite des Cloud Storage-Browsers auf.
    2. Wählen Sie den zu löschenden Storage-Bucket aus:

      • Für gcr.io: artifacts.PROJECT_ID.appspot.com
      • Für andere Hostnamen: STORAGE-REGION.artifacts.PROJECT_ID.appspot.com

        Ersetzen Sie die folgenden Werte:

        • PROJECT_ID ist Ihre Google Cloud-Projekt-ID.
        • STORAGE-REGION ist der Speicherort des Storage-Buckets:
          • us für us.gcr.io
          • eu für eu.gcr.io
          • asia für asia.gcr.io
    3. Klicken Sie auf Löschen. Ein Bestätigungsdialogfeld wird angezeigt.

    4. Geben Sie den Namen des Buckets ein und klicken Sie auf Löschen, um das Löschen zu bestätigen.

    gsutil

    Wenn Sie mehrere Hunderttausend Bilder in einem Bucket im Bulk löschen möchten, sollten Sie gsutil nicht verwenden, da der Löschvorgang lange dauert. Verwenden Sie stattdessen die Cloud Console.

    Verwenden Sie zum Löschen eines Buckets den Befehl [gsutil rm][/storage/docs/gsutil/commands/rm] mit dem Flag -r.

    Führen Sie den folgenden Befehl für den Hostnamen gcr.io aus:

    gsutil rm -r gs://artifacts.PROJECT_ID.appspot.com
    

    Führen Sie für andere Hostnamen den folgenden Befehl aus:

    gsutil rm -r gs://STORAGE-REGION.artifacts.PROJECT_ID.appspot.com
    

    Ersetzen Sie die folgenden Werte:

    • PROJECT_ID ist Ihre Google Cloud-Projekt-ID.
    • STORAGE-REGION ist der Speicherort des Storage-Buckets:
      • us für us.gcr.io
      • eu für eu.gcr.io
      • asia für asia.gcr.io

    Die Antwort sieht in etwa so aus:

    Removing gs://artifacts.my-project.appspot.com/...
    
  2. Deaktivieren Sie die Container Registry API.

Nächste Schritte