Share via


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

Configureer en maak een cacheregel zonder de referenties.

  1. 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-
    
  2. 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
    

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..

  1. 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
    
  2. 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
    
  3. 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
    

Een cacheregel configureren en maken met de referenties

  1. 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
    
  2. 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
    
  3. 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
    

Machtigingen toewijzen aan Key Vault met behulp van toegangsbeleid (verouderd)

  1. 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) 
    
  2. 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

  1. 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 tag latest voor een bepaalde registeraanmeldingsserver myregistry.azurecr.io.
     docker pull myregistry.azurecr.io/hello-world:latest
    

De resources opschonen

  1. 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
    
  2. 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
    
  3. 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
    
  4. 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
    

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

Artefactcache zonder referenties configureren

Volg de stappen voor het maken van een cacheregel in Azure Portal.

  1. Navigeer naar uw Azure Container Registry.

  2. Selecteer Cache in het zijmenu onder de Services.

    Schermopname van registercache in Azure Portal.

  3. Selecteer Regel maken.

    Schermopname van Regel maken in Azure Portal.

  4. Er wordt een venster voor de nieuwe cacheregel weergegeven.

    Schermopname van nieuwe cacheregel in Azure Portal.

  5. Voer de regelnaam in.

  6. Selecteer Bronregister in de vervolgkeuzelijst.

  7. Voer het pad naar de opslagplaats in naar de artefacten die u in de cache wilt opslaan.

  8. U kunt verificatie overslaan als u geen toegang hebt tot een privéopslagplaats of een geverifieerde pull uitvoert.

  9. Voer onder Doel de naam in van de naamruimte van de nieuwe ACR-opslagplaats om in de cache opgeslagen artefacten op te slaan.

    Schermopname van het opslaan van cacheregel in Azure Portal.

  10. Selecteer Opslaan.

  11. 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 tag latest voor een bepaalde registeraanmeldingsserver myregistry.azurecr.io.
     docker pull myregistry.azurecr.io/hello-world:latest
    

Artefactcache configureren met verificatie

Volg de stappen voor het maken van een cacheregel in Azure Portal.

  1. Navigeer naar uw Azure Container Registry.

  2. Selecteer Cache in het zijmenu onder de Services.

    Schermopname van registercache in Azure Portal.

  3. Selecteer Regel maken.

    Schermopname van Regel maken in Azure Portal.

  4. Er wordt een venster voor de nieuwe cacheregel weergegeven.

    Schermopname van nieuwe cacheregel met verificatie in Azure Portal.

  5. Voer de regelnaam in.

  6. Selecteer Bronregister in de vervolgkeuzelijst.

  7. Voer het pad naar de opslagplaats in naar de artefacten die u in de cache wilt opslaan.

  8. Als u verificatie wilt toevoegen aan de opslagplaats, schakelt u het selectievakje Verificatie in.

  9. 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.

  10. Als u de referenties gereed hebt, selecteert u referenties in de vervolgkeuzelijst.

  11. Voer onder Doel de naam in van de naamruimte van de nieuwe ACR-opslagplaats om in de cache opgeslagen artefacten op te slaan.

    Schermopname van het opslaan van cacheregel in Azure Portal.

  12. Selecteer Opslaan.

  13. 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 tag latest voor een bepaalde registeraanmeldingsserver myregistry.azurecr.io.
     docker pull myregistry.azurecr.io/hello-world:latest
    

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..

  1. Navigeer naar Referenties>maken referenties.

    Schermopname voor het toevoegen van referenties in Azure Portal.

    Schermopname van het maken van nieuwe referenties in Azure Portal.

  2. Voer de naam in voor de nieuwe referenties voor het bronregister.

  3. Selecteer een bronverificatie. De artefactcache ondersteunt momenteel Select from Key Vault en Enter secret URI's.

  4. Voor de optie Selecteren uit Key Vault vindt u meer informatie over het maken van referenties met behulp van de sleutelkluis.

  5. Selecteer Maken.

Volgende stappen

  • Ga naar het volgende artikel om de probleemoplossingsgids voor RegisterCache te doorlopen.