Freigeben über


Artefaktcache in Azure Container Registry

Das Feature „Artefaktcache“ ermöglicht Benutzern das Zwischenspeichern von Containerimages in einer privaten Containerregistrierung. Artefaktcache ist in den Dienstebenen Basic, Standard und Premium verfügbar.

Artefaktcache verbessert durch das Bereitstellen einer Zwischenspeicherungslösung für öffentliche und private Repositorys die Verwaltung von Containerimages.

Artefaktcache bietet schnellere und zuverlässigere Pullvorgänge über Azure Container Registry (ACR) und nutzt Features wie die Unterstützung für Georeplikation und Verfügbarkeitszone für höhere Verfügbarkeit und schnelles Pullen von Images.

Artefaktcache ermöglicht den Zugriff auf zwischengespeicherte Registrierungen über private Netzwerke, damit Benutzer sich nahtlos an Firewallkonfigurationen und Compliancestandards anpassen können.

Artefaktcache stellt eine Antwort auf die Herausforderungen von Grenzwerten für Pullvorgänge dar, die von öffentlichen Registrierungen vorgegeben werden. Es wird empfohlen, dass Benutzer ihre Cacheregeln mit den vorgelagerten Quellanmeldeinformationen authentifizieren. Rufen Sie dann Bilder aus dem lokalen ACR ab, um Ratelimits zu verringern.

Begriff

  • Cacheregel: Eine Cacheregel ist eine Regel, die Sie erstellen können, um Artefakte aus einem unterstützten Repository in Ihren Cache zu pullen.

    • Eine Cacheregel enthält vier Teile:

      • Regelname: Der Name Ihrer 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 darf nicht in der ACR-Instanz vorhanden sein.

  • Anmeldeinformationen

    • Anmeldeinformationen sind eine Kombination aus Benutzername und Kennwort für die Quellregistrierung. Sie benötigen Anmeldeinformationen, um sich bei einem öffentlichen oder privaten Repository zu authentifizieren. Anmeldeinformationen enthalten vier Teile

      • Anmeldeinformationen: Der Name Ihrer Anmeldeinformationen.

      • Anmeldeserver für die Quellregistrierung: Der Anmeldeserver Ihrer Quellregistrierung.

      • Quellauthentifizierung: Die Schlüsseltresorspeicherorte zum Speichern von Anmeldeinformationen.

      • Benutzernamen- und Kennwortgeheimnisse: Die Geheimnisse, die den Benutzernamen und das Kennwort enthalten.

Begrenzungen

  • Eine Zwischenspeicherung (Cache) erfolgt erst, nachdem mindestens ein Image Pull für das verfügbare Containerimage abgeschlossen wurde. Für jedes neue verfügbare Image muss ein neuer Image Pull abgeschlossen werden. Artefaktcache ruft neue Tags von Images nicht automatisch ab, wenn ein neues Tag verfügbar ist. Dies ist auf der Roadmap enthalten, wird aber in diesem Release nicht unterstützt.

  • Artefaktcache unterstützt lediglich 1.000 Cacheregeln.

Upstream-Support

Artefaktcache unterstützt derzeit die folgenden Upstreamregistrierungen:

Warnung

Kunden müssen einen Anmeldeinformationssatz generieren, um Inhalte vom Docker-Hub zu beziehen.

Upstreamregistrierungen Support Verfügbarkeit
Docker Hub Unterstützt nur authentifizierte Pullvorgänge. Azure CLI/Azure-Portal
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 Container Registry 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
registry.k8s.io Unterstützt sowohl authentifizierte als auch nicht authentifizierte Pullvorgänge. Azure CLI
Google Container Registry Unterstützt sowohl authentifizierte als auch nicht authentifizierte Pullvorgänge. Azure CLI

Platzhalter

Platzhalter verwenden Sternchen (*) zum Abgleichen mehrerer Pfade innerhalb der Containerimageregistrierung. Artefaktcache unterstützt derzeit die folgenden Platzhalter:

Hinweis

Die Cacheregeln werden aus dem Zielrepository => Quellrepository zugeordnet.

Platzhalter auf Registrierungsebene

Mit dem Platzhalter auf Registrierungsebene können Sie alle Repositorys aus einer Upstreamregistrierung zwischenspeichern.

Cacheregel Zuordnung Beispiel
contoso.azurecr.io/* => mcr.microsoft.com/* Zuordnung für alle Images unter ACR zu MCR. contoso.azurecr.io/myapp/image1 => mcr.microsoft.com/myapp/image1
contoso.azurecr.io/myapp/image2 => mcr.microsoft.com/myapp/image2

Platzhalter auf Repositoryebene

Mit dem Platzhalter auf Repositoryebene können Sie alle Repositorys aus einer Upstreamregistrierungszuordnung zum Repositorypräfix zwischenspeichern.

Cacheregel Zuordnung Beispiel
contoso.azurecr.io/dotnet/* => mcr.microsoft.com/dotnet/* Zuordnen bestimmter Repositorys unter ACR zu entsprechenden Repositorys in MCR. contoso.azurecr.io/dotnet/sdk => mcr.microsoft.com/dotnet/sdk
contoso.azurecr.io/dotnet/runtime => mcr.microsoft.com/dotnet/runtime
contoso.azurecr.io/library/dotnet/* => mcr.microsoft.com/dotnet/*
contoso.azurecr.io/library/python/* => docker.io/library/python/*
Zuordnen bestimmter Repositorys unter ACR zu Repositorys aus verschiedenen Upstreamregistrierungen. contoso.azurecr.io/library/dotnet/app1 => mcr.microsoft.com/dotnet/app1
contoso.azurecr.io/library/python/app3 => docker.io/library/python/app3

Einschränkungen für platzhalterbasierte Cacheregeln

Platzhaltercacheregeln verwenden Sternchen (*) zum Abgleichen mehrerer Pfade innerhalb der Containerimageregistrierung. Diese Regeln dürfen sich nicht mit anderen Cacheregeln für Platzhalter überschneiden. Anders ausgedrückt: Wenn Sie über eine Platzhaltercacheregel für einen bestimmten Registrierungspfad verfügen, können Sie keine weitere Platzhalterregel hinzufügen, die sich mit dieser überschneidet.

Hier sind einige Beispiele für sich überschneidende Regeln:

Beispiel 1:

Vorhandene Cacheregel: contoso.azurecr.io/* => mcr.microsoft.com/*
Neuer Cache, der hinzugefügt wird: contoso.azurecr.io/library/* => docker.io/library/*

Das Hinzufügen der neuen Cacheregel wird blockiert, da sich der Zielrepositorypfad contoso.azurecr.io/library/* mit der vorhandenen Platzhalterregel überschneidet contoso.azurecr.io/*.

Beispiel 2:

Vorhandene Cacheregel: contoso.azurecr.io/library/* =>mcr.microsoft.com/library/*
Neuer Cache, der hinzugefügt wird: contoso.azurecr.io/library/dotnet/* =>docker.io/library/dotnet/*

Das Hinzufügen der neuen Cacheregel wird blockiert, da sich der Zielrepositorypfad contoso.azurecr.io/library/dotnet/* mit der vorhandenen Platzhalterregel überschneidet contoso.azurecr.io/library/*.

Einschränkungen für statische/feste Cacheregeln

Statische oder feste Cacheregeln sind spezieller und verwenden keine Platzhalter. Sie können sich mit platzhalterbasierten Cacheregeln überschneiden. Wenn eine Cacheregel einen festen Repositorypfad angibt, ist es zulässig, dass diese sich mit einer platzhalterbasierten Cacheregel überschneidet.

Beispiel 1:

Vorhandene Cacheregel: contoso.azurecr.io/* =>mcr.microsoft.com/*
Neuer Cache, der hinzugefügt wird: contoso.azurecr.io/library/dotnet =>docker.io/library/dotnet

Das Hinzufügen der neuen Cacheregel ist zulässig, da es sich um contoso.azurecr.io/library/dotnet einen statischen Pfad handelt und das Überschneiden mit der Plathaltercacheregel zulässig ist contoso.azurecr.io/*.

Aktivieren des Artefaktcaches: Azure CLI

Sie können Artefaktcache mithilfe der Azure CLI in Ihrer Azure Container Registry-Instanz mit oder ohne Authentifizierung aktivieren, indem Sie die Schritte ausführen.

Voraussetzungen

Konfigurieren und Erstellen einer Cacheregel ohne Anmeldeinformationen

  1. Führen Sie den Befehl az acr Cache create aus, um eine Cacheregel zu erstellen.

    • Dabei kann es sich beispielsweise um das Erstellen einer Cacheregel ohne Anmeldeinformationen für eine vorgegebene Azure Container Registry MyRegistry handeln.
    az acr Cache create -r MyRegistry -n MyRule -s docker.io/library/ubuntu -t ubuntu-
    
  2. Führen Sie den Befehl az acr Cache show aus, um eine Cacheregel anzuzeigen.

    • Um beispielsweise eine Cacheregel für eine vorgegebene Azure Container Registry MyRegistry anzuzeigen.
     az acr Cache show -r MyRegistry -n MyRule
    

Erstellen der Anmeldeinformationen

Vor dem Konfigurieren von Anmeldeinformationen müssen Sie Geheimnisse in Azure Key Vault erstellen und speichern und die Geheimnisse aus Key Vault abrufen. Erfahren Sie mehr über das Erstellen und Speichern von Anmeldeinformationen in einem Key Vault. Außerdem zum Festlegen und Abrufen eines Geheimnisses aus Key Vault.

  1. Führen Sie az acr credential set create aus, um Anmeldeinformationen zu erstellen.

    • Um beispielsweise die Anmeldeinformationen für eine bestimmte MyRegistry Azure Container Registry zu erstellen.
    az acr credential-set create 
    -r MyRegistry \
    -n MyDockerHubCredSet \
    -l docker.io \ 
    -u https://MyKeyvault.vault.azure.net/secrets/usernamesecret \
    -p https://MyKeyvault.vault.azure.net/secrets/passwordsecret
    
  2. Führen Sie den Befehl az acr credential set update aus, um die KV-Geheimnis-ID des Benutzernamens oder Kennworts für einen Anmeldeinformationssatz zu aktualisieren.

    • Um beispielsweise den Benutzernamen oder das Kennwort der KV-Geheimnis-ID in den Anmeldeinformationen für eine bestimmte MyRegistry Azure Container Registry zu aktualisieren.
    az acr credential-set update -r MyRegistry -n MyDockerHubCredSet -p https://MyKeyvault.vault.azure.net/secrets/newsecretname
    
  3. Führen Sie az acr credential set show aus, um die Anmeldeinformationen anzuzeigen.

    • Beispielsweise, um einen Anmeldeinformationssatz in einem bestimmten MyRegistry Azure Container Registry anzuzeigen.
    az acr credential-set show -r MyRegistry -n MyDockerHubCredSet
    

Konfigurieren und Erstellen einer Cacheregel mit Anmeldeinformationen

  1. Führen Sie den Befehl az acr cache create aus, um eine Cacheregel zu erstellen.

    • Um beispielsweise eine Cacheregel mit den Anmeldeinformationen für eine bestimmte MyRegistry Azure Container Registry zu erstellen.
    az acr cache create -r MyRegistry -n MyRule -s docker.io/library/ubuntu -t ubuntu -c MyDockerHubCredSet
    
  2. Führen Sie az acr cache update aus, um die Anmeldeinformationen für eine Cacheregel zu aktualisieren.

    • Um beispielsweise die Anmeldeinformationen einer Cacheregel für eine bestimmte MyRegistry Azure Container Registry zu aktualisieren.
    az acr cache update -r MyRegistry -n MyRule -c NewCredSet
    
    • Um beispielsweise die Anmeldeinformationen aus einer vorhandenen Cacheregel für eine bestimmte MyRegistry Azure Container Registry zu entfernen.
    az acr cache update -r MyRegistry -n MyRule --remove-cred-set
    
  3. Führen Sie den Befehl az acr cache show aus, um eine Cacheregel anzuzeigen.

    • Beispielsweise, um eine Cacheregel für eine bestimmte MyRegistry Azure Container Registry anzuzeigen.
     az acr cache show -r MyRegistry -n MyRule
    

Zuweisen von Berechtigungen zu Key Vault mithilfe von Zugriffsrichtlinien (Legacy)

  1. Rufen Sie die Prinzipal-ID der Systemidentität ab, die für den Zugriff auf Key Vault verwendet wird.

    PRINCIPAL_ID=$(az acr credential-set show 
                    -n MyDockerHubCredSet \ 
                    -r MyRegistry  \
                    --query 'identity.principalId' \ 
                    -o tsv) 
    
  2. Führen Sie den Befehl az keyvault set-policy aus, um Zugriff auf die Key Vault-Instanz zuzuweisen, bevor Sie das Image pullen.

    • Um beispielsweise Berechtigungen für die Anmeldeinformationen zuzuweisen, greifen Sie auf das Key Vault-Geheimnis zu
    az keyvault set-policy --name MyKeyVault \
    --object-id $PRINCIPAL_ID \
    --secret-permissions get
    

Ihr Image pullen

  1. Pullen Sie das Image mithilfe des Docker-Befehls aus Ihrem Cache anhand des Namens des Registrierungsanmeldeservers, des Repositorynamens und des gewünschten Tags.

    • Beispielsweise, um das Image aus dem Repository hello-world mit dem gewünschten Tag latest für den angegebenen Registrierungsanmeldeserver myregistry.azurecr.io abzurufen.
     docker pull myregistry.azurecr.io/hello-world:latest
    

Bereinigen der Ressourcen

  1. Führen Sie den Befehl az acr cache list aus, um die Cacheregeln im Azure Container Registry aufzulisten.

    • Beispielsweise, um eine Cacheregel für eine bestimmte MyRegistry Azure Container Registry aufzulisten.
     az acr cache list -r MyRegistry
    
  2. Führen Sie den Befehl az acr cache delete aus, um eine Cacheregel zu löschen.

    • Beispielsweise, um eine Cacheregel für eine bestimmte MyRegistry Azure Container Registry zu löschen.
    az acr cache delete -r MyRegistry -n MyRule
    
  3. Führen Sie az acr credential set list aus, um die Anmeldeinformationen in einer Azure Container Registry aufzulisten.

    • Um beispielsweise die Anmeldeinformationen für eine bestimmte MyRegistry Azure Container Registry aufzulisten.
    az acr credential-set list -r MyRegistry
    
  4. Führen Sie az acr credential set delete aus, um die Anmeldeinformationen zu löschen.

    • Um beispielsweise die Anmeldeinformationen für eine bestimmte MyRegistry Azure Container Registry zu löschen.
    az acr credential-set delete -r MyRegistry -n MyDockerHubCredSet
    

Aktivieren von Artefaktcache: Azure-Portal

Sie können Artefaktcache mithilfe des Azure-Portals in Ihrer Azure Container Registry-Instanz mit oder ohne Authentifizierung aktivieren, indem Sie die Schritte ausführen.

Voraussetzungen

Konfigurieren des Artefaktcaches ohne Anmeldeinformationen

Führen Sie die Schritte zum Erstellen einer Cacheregel im Azure-Portal aus.

  1. Navigieren Sie zu Ihrer Azure Container Registry-Instanz.

  2. Wählen Sie im Seitenmenü unter Dienste die Option Cache aus.

    Screenshot für den Registrierungscache im Azure-Portal

  3. Wählen Sie Regel erstellen aus.

    Screenshot für „Regel erstellen“ im Azure-Portal

  4. Ein Fenster für Neue Cacheregel wird angezeigt.

    Screenshot für „Neue Cacheregel“ im Azure-Portal

  5. Geben Sie unter Regelname den Regelnamen ein.

  6. Wählen Sie im Dropdownmenü Quelle die Quellregistrierung aus.

  7. Geben Sie unter Repositorypfad den Repositorypfad zu den Artefakten ein, die Sie zwischenspeichern möchten.

  8. Sie können Authentifizierung überspringen, wenn Sie nicht auf ein privates Repository zugreifen oder keinen authentifizierten Pull ausführen.

  9. Geben Sie unter Ziel im Feld Namespace des neuen ACR-Repositorys den Namen des Namespace des neuen ACR-Repositorys für die Speicherung zwischengespeicherter Artefakte ein.

    Screenshot für „Cacheregel speichern“ im Azure-Portal

  10. Wählen Sie Speichern aus.

  11. Pullen Sie das Image mithilfe des Docker-Befehls aus Ihrem Cache anhand des Namens des Registrierungsanmeldeservers, des Repositorynamens und des gewünschten Tags.

    • Beispielsweise, um das Image aus dem Repository hello-world mit dem gewünschten Tag latest für den angegebenen Registrierungsanmeldeserver myregistry.azurecr.io abzurufen.
     docker pull myregistry.azurecr.io/hello-world:latest
    

Konfigurieren des Artefaktcaches mit Authentifizierung

Führen Sie die Schritte zum Erstellen einer Cacheregel im Azure-Portal aus.

  1. Navigieren Sie zu Ihrer Azure Container Registry-Instanz.

  2. Wählen Sie im Seitenmenü unter Dienste die Option Cache aus.

    Screenshot für den Registrierungscache im Azure-Portal

  3. Wählen Sie Regel erstellen aus.

    Screenshot für „Regel erstellen“ im Azure-Portal

  4. Ein Fenster für Neue Cacheregel wird angezeigt.

    Screenshot für „Neue Cacheregel“ mit Authentifizierung im Azure-Portal

  5. Geben Sie unter Regelname den Regelnamen ein.

  6. Wählen Sie im Dropdownmenü Quelle die Quellregistrierung aus.

  7. Geben Sie unter Repositorypfad den Repositorypfad zu den Artefakten ein, die Sie zwischenspeichern möchten.

  8. Aktivieren Sie das Kontrollkästchen Authentifizierung, um dem Repository eine Authentifizierung hinzuzufügen.

  9. Wählen Sie Neue Anmeldeinformationen erstellen aus, um einen neuen Satz von Anmeldeinformationen zum Speichern von Benutzername und Kennwort für Ihre Quellregistrierung zu erstellen. Weitere Informationen finden Sie unter Erstellen neuer Anmeldeinformationen.

  10. Falls Sie bereits über Anmeldeinformationen verfügen, verwenden Sie die Option Anmeldeinformationen auswählen, um sie aus dem Dropdownmenü auszuwählen.

  11. Geben Sie unter Ziel im Feld Namespace des neuen ACR-Repositorys den Namen des Namespace des neuen ACR-Repositorys für die Speicherung zwischengespeicherter Artefakte ein.

    Screenshot für „Cacheregel speichern“ im Azure-Portal

  12. Wählen Sie Speichern aus.

  13. Pullen Sie das Image mithilfe des Docker-Befehls aus Ihrem Cache anhand des Namens des Registrierungsanmeldeservers, des Repositorynamens und des gewünschten Tags.

    • Beispielsweise, um das Image aus dem Repository hello-world mit dem gewünschten Tag latest für den angegebenen Registrierungsanmeldeserver myregistry.azurecr.io abzurufen.
     docker pull myregistry.azurecr.io/hello-world:latest
    

Erstellen neuer Anmeldeinformationen

Vor dem Konfigurieren von Anmeldeinformationen müssen Sie Geheimnisse in Azure KeyVault erstellen und speichern und die Geheimnisse aus Key Vault abrufen. Erfahren Sie mehr über das Erstellen und Speichern von Anmeldeinformationen in einem Key Vault. Außerdem zum Festlegen und Abrufen eines Geheimnisses aus Key Vault.

  1. Navigieren Sie zu Anmeldeinformationen>Anmeldeinformationen erstellen.

    Screenshot für das Hinzufügen von Anmeldeinformationen im Azure-Portal

    Screenshot für „Neue Anmeldeinformationen erstellen“ im Azure-Portal

  2. Geben Sie unter Name den Namen der neuen Anmeldeinformationen für Ihre Quellregistrierung ein.

  3. Wählen Sie unter Quellauthentifizierung eine Quellauthentifizierung aus. Artefaktcache unterstützt derzeit Aus Key Vault auswählen und Geheime URIs eingeben.

  4. Für die Option Aus Key Vault auswählen finden Sie weitere Informationen unter Schnellstart: Festlegen eines Geheimnisses und Abrufen des Geheimnisses aus Azure Key Vault mithilfe des Azure-Portals.

  5. Wählen Sie Erstellen.

Nächste Schritte

  • Fahren Sie mit dem nächsten Artikel fort, um den Leitfaden zur Problembehandlung für den Registrierungscache zu durchlaufen.