Freigeben über


Optimieren Sie die Abrufe von Images mit dem Artefakt-Cache in der Azure Container Registry

Mit der Artefaktcachefunktion von Azure Container Registry können Sie Containerimages sowohl in öffentlichen als auch in privaten Repositorys zwischenspeichern.

Der Artefaktcache ermöglicht schnellere und zuverlässigere Pullvorgänge über Azure Container Registry (ACR). Es verwendet Funktionen wie Georeplikation und Unterstützung für Verfügbarkeitszonen, um höhere Verfügbarkeit und schnellere Bildherunterladungen zu ermöglichen. Sie können auf zwischengespeicherte Registrierungen über private Netzwerke zugreifen, um ihre Firewallkonfigurationen und Compliancestandards anzupassen.

Artefaktcache stellt eine Antwort auf die Herausforderungen von Grenzwerten für Pullvorgänge dar, die von öffentlichen Registrierungen vorgegeben werden. Es wird empfohlen, für die Authentifizierung Ihrer Cacheregeln die Anmeldeinformationen der Upstreamquelle zu verwenden. Anschließend können Sie Images aus der lokalen ACR-Instanz abrufen, um Ratelimits zu beheben.

Die Artefaktcachefunktion ist in den Dienstebenen"Basic", "Standard" und "Premium" verfügbar. Sie können Artefaktecacheregeln im Azure Portal oder mithilfe von Azure CLI aktivieren.

Terminologie

Bei der Arbeit mit der Zwischenspeicherung von Artefakten ist es hilfreich, die folgende Terminologie zu verstehen.

  • Cacheregel: Eine Regel, die Sie zum Abrufen von Artefakten aus einem unterstützten Repository in Ihren Cache erstellen. Eine Cacheregel enthält vier Teile:

    • Regelname: Der Name der Cacheregel. Beispiel: Hello-World-Cache.
    • Quelle: Der Name der Quellregistrierung.
    • Repositorypfad: Der Quellpfad des Repositorys zum Suchen und Abrufen von Artefakten, die Sie zwischenspeichern möchten. Beispiel: docker.io/library/hello-world.
    • Neuer ACR-Repositorynamespace: Der Name des neuen Repositorypfads zum Speichern von Artefakten. Beispiel: hello-world. Das Repository kann nicht bereits innerhalb der ACR-Instanz vorhanden sein.
  • Anmeldeinformationen: Ein Benutzername und ein Kennwort für die Quellregistrierung. Sie benötigen Anmeldeinformationen für die Authentifizierung bei einem öffentlichen oder privaten Repository. Anmeldeinformationen enthalten vier Teile:

    • Anmeldeinformationen: Der Name Ihrer Anmeldeinformationen.
    • Anmeldeserver der Quellregistrierung: Der Anmeldeserver Ihrer Quellregistrierung.
    • Quellauthentifizierung: Die Schlüsseltresore zur Speicherung von Anmeldeinformationen.
    • Geheime Schlüssel für Benutzername und Kennwort: Geheime Schlüssel, die den Benutzernamen und das Kennwort enthalten.

Aktuelle Einschränkungen

Beachten Sie bei der Verwendung des Artefaktcaches die folgenden Einschränkungen:

  • Der Cache wird erst erstellt, nachdem mindestens ein Image-Pull des verfügbaren Container-Images abgeschlossen ist. Für jedes neue verfügbare Image muss ein neuer Imagepull abgeschlossen werden. Derzeit ruft der Artefaktcache keine neuen Tags von Bildern automatisch ab, wenn ein neues Tag verfügbar ist.
  • Artefaktcache unterstützt maximal 1.000 Cacheregeln.
  • Artefaktcacheregeln können sich nicht mit anderen Cacheregeln überlappen. Anders ausgedrückt: Wenn Sie über eine Artefaktcacheregel für einen bestimmten Registrierungspfad verfügen, können Sie keine weitere Cacheregel hinzufügen, die sich mit ihr überlappt.

Upstreamunterstützung

Der Artefaktcache unterstützt derzeit die folgenden Upstreamregistrierungen.

Warnung

Um Inhalte aus Docker Hub zu erstellen, müssen Sie mithilfe von Azure CLI oder dem Azure Portal einen Satz von Anmeldeinformationen generieren.

Einige öffentliche Docker Hub Bilder sind dem öffentlich zugänglichen Namespace library zugeordnet. Wenn Sie den Pfad library nicht einschließen, wird der Artefaktcache in diesem Fall automatisch für Sie eingeschlossen.

Upstreamregistrierung Unterstützung Verfügbarkeit
Docker Hub Unterstützt nur authentifizierte Pullvorgänge Azure CLI, Azure Portal
Gehärtete Docker-Images (dhi.io) Unterstützt nur authentifizierte Pullvorgänge Azure CLI
Azure Container Registry (azurecr.io) Unterstützt nur authentifizierte Pullvorgänge Azure CLI
Microsoft Artefaktregistrierung Unterstützt nur nicht authentifizierte Pullvorgänge Azure CLI, Azure Portal
Öffentlicher Katalog von AWS Elastic Container Registry (ECR) Unterstützt nur nicht authentifizierte Pullvorgänge Azure CLI, Azure Portal
GitHub Containerregistrierung Unterstützt sowohl authentifizierte als auch nicht authentifizierte Pullvorgänge. Azure CLI, Azure Portal
Quay Unterstützt sowohl authentifizierte als auch nicht authentifizierte Pullvorgänge. Azure CLI, Azure Portal
Kubernetes Container-Image-Register (registry.k8s.io) Unterstützt sowohl authentifizierte als auch nicht authentifizierte Pullvorgänge. Azure CLI
Google Artifact Registry (*.pkg.dev) Unterstützt nur authentifizierte Pullvorgänge Azure CLI
Legacy Google Container Registry (gcr.io) Unterstützt sowohl authentifizierte als auch nicht authentifizierte Pullvorgänge. Azure CLI
NVIDIA NGC Container Registry (nvcr.io) Unterstützt sowohl authentifizierte als auch nicht authentifizierte Pullvorgänge. Azure CLI, Azure Portal

Authentifizierungsmethode für google Artifact Registry

Um den Artefaktcache aus Ihrer privaten Google Artifact Registry (GAR) einzurichten, empfehlen wir die Verwendung eines Dienstkontoschlüssels (erstellt in der Google Cloud-Konsole), um sich bei GAR zu authentifizieren. Sie können ein benutzerdefiniertes Ablaufdatum für den Dienstkontoschlüssel (z. B. 3 Monate) definieren und den Schlüssel in Azure Key Vault beibehalten.

Obwohl Sie ein Zugriffstoken (generiert von gcloud CLI) zur Authentifizierung verwenden können, wird es nicht empfohlen, mit Artefaktcache zu verwenden, da das Zugriffstoken nach 1 Stunde abläuft.

Weitere Informationen zum Erstellen eines Dienstkontoschlüssels finden Sie unter Authentifizieren mit google Artifact Registry. Nachdem Sie über den Dienstkontoschlüssel verfügen, speichern Sie ihn in Azure Key Vault als geheimer Schlüssel. Weisen Sie dann das Kennwort Ihres Anmeldeinformationssatzes diesem Geheimnis zu. Der Benutzername sollte auf Folgendes festgelegt werden:

  • _json_key wenn Sie den Dienstkontoschlüssel im JSON-Format verwenden, wie er beim Erstellen der Datei bereitgestellt wurde.
  • _json_key_base64 wenn Sie alle Inhalte der Kontoschlüsseldatei base64-codiert haben.

Weitere Informationen zum Erstellen eines Anmeldeinformationssatzes erhalten Sie unter den Links im nächsten Abschnitt.

Nächste Schritte

  • Erfahren Sie, wie Sie das Zwischenspeichern von Artefakten mithilfe des portals Azure oder Azure CLI aktivieren.
  • Erfahren Sie mehr über die Verwendung von Wildcards zum Abgleichen mehrerer Pfade innerhalb der Containerimageregistrierung.