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
- Sie können Azure Cloud Shell oder eine lokale Installation der Azure CLI verwenden, um die Beispielbefehle in diesem Artikel auszuführen. Wenn Sie sie lokal verwenden möchten, ist die Version 2.46.0 oder höher erforderlich. Führen Sie
az --version
aus, um die Version zu finden. Informationen zum Durchführen einer Installation oder eines Upgrades finden Sie bei Bedarf unter Installieren der Azure CLI. - Sie verfügen über einen vorhandenen Schlüsseltresor zum Speichern von Anmeldeinformationen. Erfahren Sie mehr über das Erstellen und Speichern von Anmeldeinformationen in einem Key Vault.
- Sie können Geheimnisse festlegen und aus Ihrem Key Vault abrufen. Erfahren Sie mehr über das Festlegen und Abrufen eines Geheimnisses aus Key Vault.
Konfigurieren und Erstellen einer Cacheregel ohne Anmeldeinformationen
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-
- Dabei kann es sich beispielsweise um das Erstellen einer Cacheregel ohne Anmeldeinformationen für eine vorgegebene Azure Container Registry
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
- Um beispielsweise eine Cacheregel für eine vorgegebene Azure Container Registry
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.
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
- Um beispielsweise die Anmeldeinformationen für eine bestimmte
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
- Um beispielsweise den Benutzernamen oder das Kennwort der KV-Geheimnis-ID in den Anmeldeinformationen für eine bestimmte
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
- Beispielsweise, um einen Anmeldeinformationssatz in einem bestimmten
Konfigurieren und Erstellen einer Cacheregel mit Anmeldeinformationen
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
- Um beispielsweise eine Cacheregel mit den Anmeldeinformationen für eine bestimmte
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
- Um beispielsweise die Anmeldeinformationen einer Cacheregel für eine bestimmte
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
- Beispielsweise, um eine Cacheregel für eine bestimmte
Zuweisen von Berechtigungen zu Key Vault mithilfe von Zugriffsrichtlinien (Legacy)
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)
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
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 Taglatest
für den angegebenen Registrierungsanmeldeservermyregistry.azurecr.io
abzurufen.
docker pull myregistry.azurecr.io/hello-world:latest
- Beispielsweise, um das Image aus dem Repository
Bereinigen der Ressourcen
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
- Beispielsweise, um eine Cacheregel für eine bestimmte
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
- Beispielsweise, um eine Cacheregel für eine bestimmte
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
- Um beispielsweise die Anmeldeinformationen für eine bestimmte
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
- Um beispielsweise die Anmeldeinformationen für eine bestimmte
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
- Melden Sie sich beim Azure-Portal
- Sie verfügen über einen vorhandenen Key Vault zum Speichern von Anmeldeinformationen. Erfahren Sie mehr über das Erstellen und Speichern von Anmeldeinformationen in einem Key Vault.
- Sie verfügen über die vorhandenen Schlüsseltresore ohne die rollenbasierte Zugriffssteuerung (Role-Based Access Control, RBAC).
Konfigurieren des Artefaktcaches ohne Anmeldeinformationen
Führen Sie die Schritte zum Erstellen einer Cacheregel im Azure-Portal aus.
Navigieren Sie zu Ihrer Azure Container Registry-Instanz.
Wählen Sie im Seitenmenü unter Dienste die Option Cache aus.
Wählen Sie Regel erstellen aus.
Ein Fenster für Neue Cacheregel wird angezeigt.
Geben Sie unter Regelname den Regelnamen ein.
Wählen Sie im Dropdownmenü Quelle die Quellregistrierung aus.
Geben Sie unter Repositorypfad den Repositorypfad zu den Artefakten ein, die Sie zwischenspeichern möchten.
Sie können Authentifizierung überspringen, wenn Sie nicht auf ein privates Repository zugreifen oder keinen authentifizierten Pull ausführen.
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.
Wählen Sie Speichern aus.
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 Taglatest
für den angegebenen Registrierungsanmeldeservermyregistry.azurecr.io
abzurufen.
docker pull myregistry.azurecr.io/hello-world:latest
- Beispielsweise, um das Image aus dem Repository
Konfigurieren des Artefaktcaches mit Authentifizierung
Führen Sie die Schritte zum Erstellen einer Cacheregel im Azure-Portal aus.
Navigieren Sie zu Ihrer Azure Container Registry-Instanz.
Wählen Sie im Seitenmenü unter Dienste die Option Cache aus.
Wählen Sie Regel erstellen aus.
Ein Fenster für Neue Cacheregel wird angezeigt.
Geben Sie unter Regelname den Regelnamen ein.
Wählen Sie im Dropdownmenü Quelle die Quellregistrierung aus.
Geben Sie unter Repositorypfad den Repositorypfad zu den Artefakten ein, die Sie zwischenspeichern möchten.
Aktivieren Sie das Kontrollkästchen Authentifizierung, um dem Repository eine Authentifizierung hinzuzufügen.
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.
Falls Sie bereits über Anmeldeinformationen verfügen, verwenden Sie die Option Anmeldeinformationen auswählen, um sie aus dem Dropdownmenü auszuwählen.
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.
Wählen Sie Speichern aus.
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 Taglatest
für den angegebenen Registrierungsanmeldeservermyregistry.azurecr.io
abzurufen.
docker pull myregistry.azurecr.io/hello-world:latest
- Beispielsweise, um das Image aus dem Repository
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.
Navigieren Sie zu Anmeldeinformationen>Anmeldeinformationen erstellen.
Geben Sie unter Name den Namen der neuen Anmeldeinformationen für Ihre Quellregistrierung ein.
Wählen Sie unter Quellauthentifizierung eine Quellauthentifizierung aus. Artefaktcache unterstützt derzeit Aus Key Vault auswählen und Geheime URIs eingeben.
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.
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.