Cache voor artefacten in Azure Container Registry
Met de functie Artefactcache kunnen gebruikers containerinstallatiekopieën in een privécontainerregister opslaan. De artefactcache is beschikbaar in de servicelagen Basic, Standard en Premium.
De artefactcache verbetert het beheer van containerinstallatiekopieën door een cacheoplossing te bieden voor zowel openbare als privéopslagplaatsen.
Artefactcache biedt snellere en betrouwbaardere pull-bewerkingen via Azure Container Registry (ACR), waarbij gebruik wordt gemaakt van functies zoals geo-replicatie en beschikbaarheidszone-ondersteuning voor pulls van installatiekopieën met een hogere beschikbaarheid en snelheid.
Met de artefactcache kunnen registers in de cache toegankelijk zijn via privénetwerken , zodat gebruikers naadloos kunnen worden afgestemd op firewallconfiguraties en nalevingsstandaarden.
De artefactcache heeft betrekking op de uitdaging van pull-limieten die worden opgelegd door openbare registers. We raden gebruikers aan hun cacheregels te verifiëren met hun upstream-bronreferenties. Haal vervolgens installatiekopieën op uit de lokale ACR om snelheidslimieten te beperken.
Terminologie
Cacheregel: een cacheregel is een regel die u kunt maken om artefacten op te halen uit een ondersteunde opslagplaats in uw cache.
Een cacheregel bevat vier delen:
Regelnaam: de naam van de cacheregel. Bijvoorbeeld:
Hello-World-Cache
.Bron: de naam van het bronregister.
Pad naar opslagplaats: het bronpad van de opslagplaats om artefacten te vinden en op te halen die u in de cache wilt opslaan. Bijvoorbeeld:
docker.io/library/hello-world
.Nieuwe naamruimte voor ACR-opslagplaats: de naam van het pad naar de nieuwe opslagplaats voor het opslaan van artefacten. Bijvoorbeeld:
hello-world
. De opslagplaats kan nog niet bestaan in het ACR-exemplaar.
Referentie
Referenties zijn een set gebruikersnaam en wachtwoord voor het bronregister. U hebt referenties nodig om te verifiëren bij een openbare of privéopslagplaats. Referenties bevatten vier onderdelen
Referenties: de naam van uw referenties.
Aanmeldingsserver voor bronregister: de aanmeldingsserver van uw bronregister.
Bronverificatie: de sleutelkluislocaties voor het opslaan van referenties.
Geheimen voor gebruikersnaam en wachtwoord: de geheimen die de gebruikersnaam en het wachtwoord bevatten.
Beperkingen
Cache vindt alleen plaats nadat ten minste één pull-installatiekopie van de installatiekopie is voltooid op de beschikbare containerinstallatiekopie. Voor elke beschikbare nieuwe installatiekopie moet een nieuwe pull-installatiekopie zijn voltooid. De artefactcache haalt niet automatisch nieuwe tags met afbeeldingen op wanneer er een nieuwe tag beschikbaar is. Het staat op de roadmap, maar wordt niet ondersteund in deze release.
Artefactcache ondersteunt alleen 1000 cacheregels.
Upstream-ondersteuning
De artefactcache ondersteunt momenteel de volgende upstream-registers:
Waarschuwing
Klanten moeten referenties genereren die zijn ingesteld op broninhoud van Docker Hub.
Upstream-registers | Ondersteuning | Beschikbaarheid |
---|---|---|
Docker Hub | Ondersteunt alleen geverifieerde pulls. | Azure CLI, Azure Portal |
Microsoft-artefactregister | Ondersteunt alleen niet-geverifieerde pulls. | Azure CLI, Azure Portal |
Openbare GALERIE AWS Elastic Container Registry (ECR) | Ondersteunt alleen niet-geverifieerde pulls. | Azure CLI, Azure Portal |
GitHub Container Registry | Ondersteunt zowel geverifieerde als niet-geverifieerde pulls. | Azure CLI, Azure Portal |
Kade | Ondersteunt zowel geverifieerde als niet-geverifieerde pulls. | Azure CLI, Azure Portal |
registry.k8s.io | Ondersteunt zowel geverifieerde als niet-geverifieerde pulls. | Azure-CLI |
Google Container Registry | Ondersteunt zowel geverifieerde als niet-geverifieerde pulls. | Azure-CLI |
Jokertekens
Jokertekens gebruiken sterretjes (*) om meerdere paden in het containerinstallatiekopieënregister te vinden. De artefactcache ondersteunt momenteel de volgende jokertekens:
Notitie
De cacheregelstoewijzing van doelopslagplaats => bronopslagplaats.
Jokerteken op registerniveau
Met het jokerteken op registerniveau kunt u alle opslagplaatsen uit een upstream-register in de cache opslaan.
Cacheregel | Toewijzing | Opmerking |
---|---|---|
contoso.azurecr.io/* => mcr.microsoft.com/* | Toewijzing voor alle installatiekopieën onder ACR aan MCR. | contoso.azurecr.io/myapp/image1 => mcr.microsoft.com/myapp/image1 contoso.azurecr.io/myapp/image2 => mcr.microsoft.com/myapp/image2 |
Jokerteken op opslagplaatsniveau
Met het jokerteken op opslagplaatsniveau kunt u alle opslagplaatsen uit een upstream-registertoewijzing opslaan in het voorvoegsel van de opslagplaats.
Cacheregel | Toewijzing | Opmerking |
---|---|---|
contoso.azurecr.io/dotnet/* => mcr.microsoft.com/dotnet/* | Specifieke opslagplaatsen onder ACR toewijzen aan bijbehorende opslagplaatsen 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/* |
Specifieke opslagplaatsen onder ACR toewijzen aan opslagplaatsen uit verschillende upstreamregisters. | contoso.azurecr.io/library/dotnet/app1 => mcr.microsoft.com/dotnet/app1 contoso.azurecr.io/library/python/app3 => docker.io/library/python/app3 |
Beperkingen voor cacheregels op basis van jokertekens
Regels voor jokertekens gebruiken sterretjes (*) om meerdere paden in het containerinstallatiekopieënregister te vinden. Deze regels kunnen niet overlappen met andere regels voor jokertekens. Met andere woorden, als u een cacheregel voor jokertekens voor een bepaald registerpad hebt, kunt u geen andere jokertekenregel toevoegen die hiermee overlapt.
Hier volgen enkele voorbeelden van overlappende regels:
Voorbeeld 1:
Bestaande cacheregel: contoso.azurecr.io/* => mcr.microsoft.com/*
Nieuwe cache die wordt toegevoegd: contoso.azurecr.io/library/* => docker.io/library/*
De toevoeging van de nieuwe cacheregel wordt geblokkeerd omdat het pad contoso.azurecr.io/library/*
van de doelopslagplaats overlapt met de bestaande jokertekenregel contoso.azurecr.io/*
.
Voorbeeld 2:
Bestaande cacheregel: contoso.azurecr.io/library/*
=>mcr.microsoft.com/library/*
Nieuwe cache die wordt toegevoegd: contoso.azurecr.io/library/dotnet/*
=>docker.io/library/dotnet/*
De toevoeging van de nieuwe cacheregel wordt geblokkeerd omdat het pad contoso.azurecr.io/library/dotnet/*
van de doelopslagplaats overlapt met de bestaande jokertekenregel contoso.azurecr.io/library/*
.
Beperkingen voor statische/vaste cacheregels
Statische of vaste cacheregels zijn specifieker en gebruiken geen jokertekens. Ze kunnen overlappen met cacheregels op basis van jokertekens. Als een cacheregel een vast pad naar een opslagplaats opgeeft, kan deze overlappen met een cacheregel op basis van jokertekens.
Voorbeeld 1:
Bestaande cacheregel: contoso.azurecr.io/*
=>mcr.microsoft.com/*
Nieuwe cache die wordt toegevoegd: contoso.azurecr.io/library/dotnet
=>docker.io/library/dotnet
Het toevoegen van de nieuwe cacheregel is toegestaan omdat contoso.azurecr.io/library/dotnet
dit een statisch pad is en kan overlappen met de regel voor jokertekens contoso.azurecr.io/*
.
Cache voor artefacten inschakelen - Azure CLI
U kunt artefactcache inschakelen in uw Azure Container Registry met of zonder verificatie met behulp van Azure CLI door de stappen te volgen.
Vereisten
- U kunt de Azure Cloud Shell of een lokale installatie van de Azure CLI gebruiken om de opdrachtvoorbeelden in dit artikel uit te voeren. Als u deze lokaal wilt gebruiken, is versie 2.46.0 of hoger vereist. Uitvoeren
az --version
om de versie te vinden. Als u Azure CLI 2.0 wilt installeren of upgraden, raadpleegt u Azure CLI 2.0 installeren. - U hebt een bestaande Sleutelkluis om de referenties op te slaan. Meer informatie over het maken en opslaan van referenties in een Sleutelkluis.
- U kunt geheimen instellen en ophalen uit uw Key Vault. Meer informatie over het instellen en ophalen van een geheim uit Key Vault.
Configureer en maak een cacheregel zonder de referenties.
Voer az acr Cache create command uit om een Cache-regel te maken.
- Als u bijvoorbeeld een cacheregel wilt maken zonder de referenties voor een bepaald
MyRegistry
Azure Container Registry.
az acr Cache create -r MyRegistry -n MyRule -s docker.io/library/ubuntu -t ubuntu-
- Als u bijvoorbeeld een cacheregel wilt maken zonder de referenties voor een bepaald
Voer de opdracht az acr Cache show uit om een cacheregel weer te geven.
- Als u bijvoorbeeld een cacheregel voor een bepaalde
MyRegistry
Azure Container Registry wilt weergeven.
az acr Cache show -r MyRegistry -n MyRule
- Als u bijvoorbeeld een cacheregel voor een bepaalde
De referenties maken
Voordat u de referenties configureert, moet u geheimen maken en opslaan in Azure KeyVault en de geheimen ophalen uit de Sleutelkluis. Meer informatie over het maken en opslaan van referenties in een Sleutelkluis. En om een geheim in te stellen en op te halen uit Key Vault..
Voer de opdracht az acr credential set create uit om de referenties te maken.
- Als u bijvoorbeeld de referenties voor een bepaald
MyRegistry
Azure Container Registry wilt maken.
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
- Als u bijvoorbeeld de referenties voor een bepaald
Voer az acr credential set update uit om de geheime id van de gebruikersnaam of het wachtwoord kv bij te werken op een referentieset.
- Als u bijvoorbeeld de geheime id van de gebruikersnaam of het wachtwoord voor KV wilt bijwerken op de referenties voor een bepaalde
MyRegistry
Azure Container Registry.
az acr credential-set update -r MyRegistry -n MyDockerHubCredSet -p https://MyKeyvault.vault.azure.net/secrets/newsecretname
- Als u bijvoorbeeld de geheime id van de gebruikersnaam of het wachtwoord voor KV wilt bijwerken op de referenties voor een bepaalde
Voer az acr credential-set show uit om de referenties weer te geven.
- Als u bijvoorbeeld een referentiesset wilt weergeven in een bepaalde
MyRegistry
Azure Container Registry.
az acr credential-set show -r MyRegistry -n MyDockerHubCredSet
- Als u bijvoorbeeld een referentiesset wilt weergeven in een bepaalde
Een cacheregel configureren en maken met de referenties
Voer az acr cache create command uit om een cacheregel te maken.
- Als u bijvoorbeeld een cacheregel wilt maken met de referenties voor een bepaald
MyRegistry
Azure Container Registry.
az acr cache create -r MyRegistry -n MyRule -s docker.io/library/ubuntu -t ubuntu -c MyDockerHubCredSet
- Als u bijvoorbeeld een cacheregel wilt maken met de referenties voor een bepaald
Voer de opdracht az acr cache update uit om de referenties in een cacheregel bij te werken.
- Als u bijvoorbeeld de referenties voor een cacheregel voor een bepaalde
MyRegistry
Azure Container Registry wilt bijwerken.
az acr cache update -r MyRegistry -n MyRule -c NewCredSet
- Als u bijvoorbeeld de referenties wilt verwijderen uit een bestaande cacheregel voor een bepaalde
MyRegistry
Azure Container Registry.
az acr cache update -r MyRegistry -n MyRule --remove-cred-set
- Als u bijvoorbeeld de referenties voor een cacheregel voor een bepaalde
Voer de opdracht az acr cache show uit om een cacheregel weer te geven.
- Als u bijvoorbeeld een cacheregel voor een bepaalde
MyRegistry
Azure Container Registry wilt weergeven.
az acr cache show -r MyRegistry -n MyRule
- Als u bijvoorbeeld een cacheregel voor een bepaalde
Machtigingen toewijzen aan Key Vault met behulp van toegangsbeleid (verouderd)
Haal de principal-id van de systeemidentiteit op die wordt gebruikt voor toegang tot Key Vault.
PRINCIPAL_ID=$(az acr credential-set show -n MyDockerHubCredSet \ -r MyRegistry \ --query 'identity.principalId' \ -o tsv)
Voer de opdracht az keyvault set-policy uit om toegang tot key Vault toe te wijzen voordat u de installatiekopie ophaalt.
- Als u bijvoorbeeld machtigingen wilt toewijzen voor de referenties, krijgt u toegang tot het KeyVault-geheim
az keyvault set-policy --name MyKeyVault \ --object-id $PRINCIPAL_ID \ --secret-permissions get
Uw installatiekopie ophalen
Haal de installatiekopie op uit de cache met behulp van de Docker-opdracht door de naam van de registeraanmeldingsserver, de naam van de opslagplaats en de gewenste tag.
- Als u bijvoorbeeld de installatiekopie uit de opslagplaats
hello-world
wilt ophalen met de gewenste taglatest
voor een bepaalde registeraanmeldingsservermyregistry.azurecr.io
.
docker pull myregistry.azurecr.io/hello-world:latest
- Als u bijvoorbeeld de installatiekopie uit de opslagplaats
De resources opschonen
Voer de opdracht az acr cache list uit om de cacheregels in Azure Container Registry weer te geven.
- Als u bijvoorbeeld de cacheregels voor een bepaalde
MyRegistry
Azure Container Registry wilt weergeven.
az acr cache list -r MyRegistry
- Als u bijvoorbeeld de cacheregels voor een bepaalde
Voer de opdracht az acr cache delete uit om een cacheregel te verwijderen.
- Als u bijvoorbeeld een cacheregel voor een bepaalde
MyRegistry
Azure Container Registry wilt verwijderen.
az acr cache delete -r MyRegistry -n MyRule
- Als u bijvoorbeeld een cacheregel voor een bepaalde
Voeraz acr credential set list uit om de referentie in een Azure Container Registry weer te geven.
- Als u bijvoorbeeld de referenties voor een bepaalde
MyRegistry
Azure Container Registry wilt weergeven.
az acr credential-set list -r MyRegistry
- Als u bijvoorbeeld de referenties voor een bepaalde
Voer az acr credential-set delete uit om de referenties te verwijderen.
- Als u bijvoorbeeld de referenties voor een bepaald
MyRegistry
Azure Container Registry wilt verwijderen.
az acr credential-set delete -r MyRegistry -n MyDockerHubCredSet
- Als u bijvoorbeeld de referenties voor een bepaald
Cache voor artefacten inschakelen - Azure Portal
U kunt artefactcache inschakelen in uw Azure Container Registry met of zonder verificatie met behulp van Azure Portal door de stappen te volgen.
Vereisten
- Meld u aan bij het Azure Portal
- U hebt een bestaande Key Vault om referenties op te slaan. Meer informatie over het maken en opslaan van referenties in een Sleutelkluis.
- U hebt de bestaande sleutelkluizen zonder de op rollen gebaseerde toegangsbeheer (RBAC).
Artefactcache zonder referenties configureren
Volg de stappen voor het maken van een cacheregel in Azure Portal.
Navigeer naar uw Azure Container Registry.
Selecteer Cache in het zijmenu onder de Services.
Selecteer Regel maken.
Er wordt een venster voor de nieuwe cacheregel weergegeven.
Voer de regelnaam in.
Selecteer Bronregister in de vervolgkeuzelijst.
Voer het pad naar de opslagplaats in naar de artefacten die u in de cache wilt opslaan.
U kunt verificatie overslaan als u geen toegang hebt tot een privéopslagplaats of een geverifieerde pull uitvoert.
Voer onder Doel de naam in van de naamruimte van de nieuwe ACR-opslagplaats om in de cache opgeslagen artefacten op te slaan.
Selecteer Opslaan.
Haal de installatiekopie op uit de cache met behulp van de Docker-opdracht door de naam van de registeraanmeldingsserver, de naam van de opslagplaats en de gewenste tag.
- Als u bijvoorbeeld de installatiekopie uit de opslagplaats
hello-world
wilt ophalen met de gewenste taglatest
voor een bepaalde registeraanmeldingsservermyregistry.azurecr.io
.
docker pull myregistry.azurecr.io/hello-world:latest
- Als u bijvoorbeeld de installatiekopie uit de opslagplaats
Artefactcache configureren met verificatie
Volg de stappen voor het maken van een cacheregel in Azure Portal.
Navigeer naar uw Azure Container Registry.
Selecteer Cache in het zijmenu onder de Services.
Selecteer Regel maken.
Er wordt een venster voor de nieuwe cacheregel weergegeven.
Voer de regelnaam in.
Selecteer Bronregister in de vervolgkeuzelijst.
Voer het pad naar de opslagplaats in naar de artefacten die u in de cache wilt opslaan.
Als u verificatie wilt toevoegen aan de opslagplaats, schakelt u het selectievakje Verificatie in.
Kies Nieuwe referenties maken om een nieuwe set referenties te maken om de gebruikersnaam en het wachtwoord voor uw bronregister op te slaan. Meer informatie over het maken van nieuwe referenties.
Als u de referenties gereed hebt, selecteert u referenties in de vervolgkeuzelijst.
Voer onder Doel de naam in van de naamruimte van de nieuwe ACR-opslagplaats om in de cache opgeslagen artefacten op te slaan.
Selecteer Opslaan.
Haal de installatiekopie op uit de cache met behulp van de Docker-opdracht door de naam van de registeraanmeldingsserver, de naam van de opslagplaats en de gewenste tag.
- Als u bijvoorbeeld de installatiekopie uit de opslagplaats
hello-world
wilt ophalen met de gewenste taglatest
voor een bepaalde registeraanmeldingsservermyregistry.azurecr.io
.
docker pull myregistry.azurecr.io/hello-world:latest
- Als u bijvoorbeeld de installatiekopie uit de opslagplaats
Nieuwe referenties maken
Voordat u de referenties configureert, moet u geheimen maken en opslaan in Azure KeyVault en de geheimen ophalen uit de Sleutelkluis. Meer informatie over het maken en opslaan van referenties in een Sleutelkluis. En om een geheim in te stellen en op te halen uit Key Vault..
Navigeer naar Referenties>maken referenties.
Voer de naam in voor de nieuwe referenties voor het bronregister.
Selecteer een bronverificatie. De artefactcache ondersteunt momenteel Select from Key Vault en Enter secret URI's.
Voor de optie Selecteren uit Key Vault vindt u meer informatie over het maken van referenties met behulp van de sleutelkluis.
Selecteer Maken.
Volgende stappen
- Ga naar het volgende artikel om de probleemoplossingsgids voor RegisterCache te doorlopen.