Gestalten Sie die Zukunft der Softwarebereitstellung und tragen Sie Ihre Stimme durch. Nehmen Sie dazu den 2021 der DevOps-Umfrage an.

Umstellung auf Artifact Registry-Repositories

Wenn Sie Container Registry derzeit zur Verwaltung Ihrer Container-Images verwenden, wird auf dieser Seite erläutert, wie Sie ein Artifact Registry-Repository einrichten und sich mit der Verwendung von Repositories von der Verwendung von Container Registry unterscheiden.

Diese Anleitung gilt hauptsächlich für Repository-Administratoren. Wie sich das Erstellen, Übertragen, Abrufen und Bereitstellen von Images geändert haben, erfahren Sie unter den folgenden Informationen:

Übersicht

Der Einfachheit halber wird bei den Anleitungen auf dieser Seite davon ausgegangen, dass sich sowohl Container Registry als auch Artifact Registry im selben Google Cloud-Projekt befinden. Sie können während der Umstellung auf Artifact Registry weiterhin beide Dienste verwenden, sodass Sie die Einrichtungsschritte schrittweise vornehmen und Ihre Automatisierung aktualisieren können.

Bei Bedarf können Sie Artifact Registry in einem separaten Projekt einrichten und dieselben Schritte ausführen.

Umstellungsschritte

Dieser Leitfaden enthält die folgenden Schritte:

  1. Informieren Sie sich über die Preise für Artifact Registry, bevor Sie mit der Umstellung beginnen.
  2. Aktivieren Sie die Artifact Registry API.
  3. Aktualisieren Sie das Cloud SDK und informieren Sie sich über die neuen gcloud-Befehle. Optional können Sie Standardeinstellungen für gcloud-Befehle einrichten.
  4. Erstellen Sie ein Docker-Repository für Ihre Container. Sie müssen ein Repository erstellen, bevor Sie Images per Push übertragen können.
  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 die Images aus Container Registry, die Sie im neuen Repository verwenden möchten.
  8. Erteilen Sie einen Push- und Pull-Befehl für Container
  9. Stellen Sie Images in einer Laufzeitumgebung bereit
  10. Konfigurieren Sie zusätzliche Features.
  11. Images in Container Registry bereinigen, 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. Beim Erstellen eines Repositorys müssen Sie Folgendes angeben:

  • Das Format des Repositorys. Artifact Registry speichert Container in Docker-Repositories.
  • Ein regionaler oder multiregionaler Standort für das Repository.

    Berücksichtigen Sie bei der Wahl eines Speicherorts für Ihre Artifact Registry-Repositories die Nähe der Repositories zu Ihrer anderen Infrastruktur und Ihren Nutzern. Wenn Sie Images von Container Registry nach Artifact-Registry kopieren möchten, können sich Unterschiede im Speicherort auf die Kosten für das Kopieren auswirken.

  • Einen Cloud Key Management Service-Schlüssel, wenn Sie für die Verschlüsselung vom Kunden verwaltete Verschlüsselungsschlüssel (Customer-Managed Encryption Keys, CMEK) verwenden.

    In Container Registry konfigurieren Sie den Container Registry-Storage-Bucket für die Verwendung von CMEK. In Artifact Registry konfigurieren Sie Repositories so, dass CMEK beim Erstellen verwendet werden. Weitere Informationen zur Verwendung von CMEK mit Artifact Registry finden Sie unter Vom Kunden verwaltete Verschlüsselungsschlüssel aktivieren.

Container Registry hostet Container in der Domain gcr.io. Artifact Registry hostet Container in der Domain pkg.dev.

Informationen zum Erstellen von Repositories, einschließlich Repositories, die CMEK für die Verschlüsselung verwenden, finden Sie unter Repositories erstellen.

Berechtigungen erteilen

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 Google Cloud CI/CD-Dienste sind mit Zugriff auf Repositories im selben Projekt vorkonfiguriert. Wenn Sie einen Google Cloud-Dienst in einem anderen Projekt oder Drittanbietertool zum Hochladen oder Abrufen 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.

Wenn Sie Docker Credential Helper verwenden:

  • Zur Interaktion mit Artifact Registry-Repositories benötigen Sie Version 2.0 oder höher. Die eigenständige Version ist in GitHub verfügbar.
  • Konfigurieren Sie den Credential Helper mit den Speicherorten von Artifact Registry, die Sie verwenden möchten. Standardmäßig konfiguriert Credential Helper nur den Zugriff auf Container Registry-Hosts.

Weitere Informationen zum Einrichten der Authentifizierung 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.

Images hoch- und herunterladen

Die Docker-Befehle, die Sie zum Taggen, Übertragen und Abrufen von Images in Artifact Registry verwenden, ähneln denen, die Sie in Container Registry verwenden. Es gibt zwei Hauptunterschiede:

  • Der Hostname für die Artifact Registry-Docker-Repositories enthält ein Standortpräfix, gefolgt von -docker.pkg.dev. Beispiele sind australia-southeast1-docker.pkg.dev, europe-north1-docker.pkg.dev und europe-docker.pkg.dev.
  • Da Artifact Registry mehrere Docker-Repositories in einem einzelnen Projekt unterstützt, müssen Sie den Repository-Namen in Befehlen angeben.

Mit diesem Befehl wird z. B. in Container Registry das Image my-image in die Registry eu.gcr.io des Projekts my-project verschoben.

docker push eu.gcr.io/my-project/my-image

In Artifact Registry verschiebt dieser Befehl das Image my-image in das regionale Repository europe-north1-docker.pkg.dev im Repository my-repo und im Projekt my-project.

docker push europe-north1-docker.pkg.dev/my-project/my-repo/my-image

Weitere Informationen zum Hoch- und Herunterladen von Images in Artifact Registry finden Sie unter Images hoch- und herunterladen.

Images bereitstellen

Dienstkonten für gängige Google Cloud-Integrationen sind standardmäßig so konfiguriert, dass sie mit Artifact Registry-Repositories funktionieren.

Das Erstellen von Images und das Übertragen in ein Repository mit Cloud Build funktioniert im Allgemeinen genauso wie bei Container Registry. Der Hauptunterschied in Artifact Registry besteht darin, dass ein Ziel-Repository vorhanden sein muss, bevor Sie Images per Push übertragen, einschließlich des ersten Images, das Sie übertragen.

Erstellen Sie die benötigten Repositories, bevor Sie Befehle zum Übertragen von Images ausführen, einschließlich des Docker-Befehls docker push und des Cloud Build-Befehls gcloud builds submit.

Cloud Build-Builder werden weiterhin auf gcr.io gehostet. Weitere Informationen finden Sie unter In Cloud Build einbinden.

Sonstige Features

In diesem Abschnitt wird die Konfiguration anderer 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 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, sind die APIs für beide Produkte aktiviert.
  • Beide Produkte verwenden die gleichen Pub/Sub-Themen für Container Analysis-Benachrichtigungen. Ihre bestehenden Abos enthalten Benachrichtigungen für Artifact Registry und Container Registry.
  • Cloud SDK-Befehle zum Arbeiten mit Hinweisen und Vorkommen befinden sich in der Gruppe gcloud artifacts docker.

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.

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.

Dienstperimeter

Mit VPC Service Controls können Sie Sicherheitsperimeter für die Ressourcen Ihrer von Google verwalteten Dienste konfigurieren und die Übertragung von Daten in und aus dem Perimeter steuern.

Eine Anleitung finden Sie unter Repositories in einem Dienstperimeter sichern.

Container Registry-Images bereinigen

Wenn Sie Container Registry nicht mehr verwenden möchten, gehen Sie so vor:

  1. Verbleibende Images in Container Registry löschen
  2. Container Registry API deaktivieren

Nächste Schritte