Cache degli artefatti in Registro Azure Container (anteprima)
La funzionalità Cache degli artefatti consente agli utenti di memorizzare nella cache le immagini del contenitore in un registro contenitori privato. La cache degli artefatti è disponibile nei livelli di servizio Basic, Standard e Premium.
La cache degli artefatti migliora la gestione delle immagini del contenitore fornendo una soluzione di memorizzazione nella cache per repository pubblici e privati.
La cache degli artefatti offre operazioni pull più veloci e affidabili tramite Registro Azure Container (ACR), usando funzionalità come la replica geografica e il supporto della zona di disponibilità per il pull di immagini a disponibilità e velocità più elevate.
La cache degli artefatti consente di accedere ai registri memorizzati nella cache tramite reti private per consentire agli utenti di allinearsi perfettamente alle configurazioni del firewall e agli standard di conformità.
La cache degli artefatti risolve la sfida dei limiti di pull anonimi imposti da registri pubblici come l'hub Docker. Consentendo agli utenti di eseguire il pull delle immagini dal Registro Azure Container locale, aggirare questi limiti, garantendo la distribuzione ininterrotta di contenuti da origini upstream ed eliminando la preoccupazione di raggiungere i limiti pull.
Terminologia
Regola cache: una regola della cache è una regola che è possibile creare per eseguire il pull degli artefatti da un repository supportato nella cache.
Una regola della cache contiene quattro parti:
Nome regola: nome della regola della cache. Ad esempio:
Hello-World-Cache
.Source: nome del Registro di sistema di origine.
Percorso repository: percorso di origine del repository per trovare e recuperare gli artefatti da memorizzare nella cache. Ad esempio:
docker.io/library/hello-world
.Nuovo spazio dei nomi del repository del Registro Azure Container: nome del nuovo percorso del repository per archiviare gli artefatti. Ad esempio:
hello-world
. Il repository non può esistere già all'interno dell'istanza di Registro Azure Container.
Titolo
Le credenziali sono un set di nome utente e password per il Registro di sistema di origine. È necessario che le credenziali eseguano l'autenticazione con un repository pubblico o privato. Le credenziali contengono quattro parti
Credenziali: nome delle credenziali.
Server di accesso del Registro di sistema di origine: server di accesso del registro di origine.
Autenticazione di origine: percorsi dell'insieme di credenziali delle chiavi per archiviare le credenziali.
Segreti nome utente e password: segreti contenenti il nome utente e la password.
Limiti
La cache verrà eseguita solo dopo il completamento di almeno un pull di immagini nell'immagine del contenitore disponibile. Per ogni nuova immagine disponibile, è necessario completare il pull di una nuova immagine. La cache degli artefatti non esegue automaticamente il pull di nuovi tag di immagini quando è disponibile un nuovo tag. È in programma, ma non è supportato in questa versione.
La cache degli artefatti supporta solo 1.000 regole della cache.
Supporto upstream
La cache degli artefatti supporta attualmente i registri upstream seguenti:
Registri upstream | Supporto tecnico | Disponibilità |
---|---|---|
Hub docker | Supporta sia pull autenticati che pull non autenticati. | Interfaccia della riga di comando di Azure, portale di Azure |
Registro artefatti Microsoft | Supporta solo pull non autenticati. | Interfaccia della riga di comando di Azure, portale di Azure |
Elastic Container Registry (ECR) Public | Supporta solo pull non autenticati. | Interfaccia della riga di comando di Azure, portale di Azure |
Registro Contenitori GitHub | Supporta sia pull autenticati che pull non autenticati. | Interfaccia della riga di comando di Azure, portale di Azure |
Nvidia | Supporta sia pull autenticati che pull non autenticati. | Interfaccia della riga di comando di Azure |
Quay | Supporta sia pull autenticati che pull non autenticati. | Interfaccia della riga di comando di Azure, portale di Azure |
registry.k8s.io | Supporta sia pull autenticati che pull non autenticati. | Interfaccia della riga di comando di Azure |
Registro Contenitori Google | Supporta sia pull autenticati che pull non autenticati. | Interfaccia della riga di comando di Azure |
Caratteri jolly
I caratteri jolly usano asterischi (*) per trovare la corrispondenza con più percorsi all'interno del registro immagini del contenitore. La cache degli artefatti supporta attualmente i caratteri jolly seguenti:
Nota
Mapping delle regole della cache da Repository di destinazione = Repository di> origine.
Carattere jolly a livello del Registro di sistema
Il carattere jolly a livello del Registro di sistema consente di memorizzare nella cache tutti i repository da un registro upstream.
Regola cache | Mapping | Esempio |
---|---|---|
contoso.azurecr.io/* => mcr.microsoft.com/* | Mapping per tutte le immagini in Registro Azure Container a MCR. | contoso.azurecr.io/myapp/image1 => mcr.microsoft.com/myapp/image1 contoso.azurecr.io/myapp/image2 => mcr.microsoft.com/myapp/image2 |
Carattere jolly a livello di repository
Il carattere jolly a livello di repository consente di memorizzare nella cache tutti i repository da un mapping del Registro di sistema upstream al prefisso del repository.
Regola cache | Mapping | Esempio |
---|---|---|
contoso.azurecr.io/dotnet/* => mcr.microsoft.com/dotnet/* | Mapping di repository specifici in Registro Azure Container ai repository corrispondenti 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/* |
Mapping di repository specifici in Registro Azure Container ai repository da registri upstream diversi. | contoso.azurecr.io/library/dotnet/app1 => mcr.microsoft.com/dotnet/app1 contoso.azurecr.io/library/python/app3 => docker.io/library/python/app3 |
Limitazioni per le regole della cache basate su caratteri jolly
Le regole della cache con caratteri jolly usano asterischi (*) per trovare le corrispondenze tra più percorsi all'interno del registro immagini del contenitore. Queste regole non possono sovrapporsi ad altre regole della cache con caratteri jolly. In altre parole, se si dispone di una regola della cache con caratteri jolly per un determinato percorso del Registro di sistema, non è possibile aggiungere un'altra regola con caratteri jolly sovrapposta.
Ecco alcuni esempi di regole sovrapposte:
Esempio 1:
Regola cache esistente: contoso.azurecr.io/* => mcr.microsoft.com/*
Aggiunta di una nuova cache: contoso.azurecr.io/library/* => docker.io/library/*
L'aggiunta della nuova regola della cache viene bloccata perché il percorso contoso.azurecr.io/library/*
del repository di destinazione si sovrappone alla regola contoso.azurecr.io/*
con caratteri jolly esistente.
Esempio 2:
Regola cache esistente: contoso.azurecr.io/library/*
=>mcr.microsoft.com/library/*
Aggiunta di una nuova cache: contoso.azurecr.io/library/dotnet/*
=>docker.io/library/dotnet/*
L'aggiunta della nuova regola della cache viene bloccata perché il percorso contoso.azurecr.io/library/dotnet/*
del repository di destinazione si sovrappone alla regola contoso.azurecr.io/library/*
con caratteri jolly esistente.
Limitazioni per le regole della cache statiche/fisse
Le regole statiche o fisse della cache sono più specifiche e non usano caratteri jolly. Possono sovrapporsi alle regole della cache basate su caratteri jolly. Se una regola della cache specifica un percorso predefinito del repository, consente la sovrapposizione con una regola della cache basata su caratteri jolly.
Esempio 1:
Regola cache esistente: contoso.azurecr.io/*
=>mcr.microsoft.com/*
Aggiunta di una nuova cache: contoso.azurecr.io/library/dotnet
=>docker.io/library/dotnet
L'aggiunta della nuova regola della cache è consentita perché contoso.azurecr.io/library/dotnet
è un percorso statico e può sovrapporsi alla regola contoso.azurecr.io/*
della cache con caratteri jolly .
Abilitare La cache degli artefatti - Interfaccia della riga di comando di Azure
È possibile abilitare la cache artifact nel Registro Azure Container con o senza autenticazione usando l'interfaccia della riga di comando di Azure seguendo la procedura seguente.
Prerequisiti
- È possibile usare Azure Cloud Shell o un'installazione locale dell'interfaccia della riga di comando di Azure per eseguire gli esempi di comando in questo articolo. Se si vuole usarlo in locale, è necessaria la versione 2.46.0 o successiva. Eseguire
az --version
per trovare la versione. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure. - Si dispone di un insieme di credenziali delle chiavi esistente per archiviare le credenziali. Altre informazioni sulla creazione e l'archiviazione delle credenziali in un insieme di credenziali delle chiavi.
- È possibile impostare e recuperare segreti dall'insieme di credenziali delle chiavi. Altre informazioni sul set e sul recupero di un segreto da Key Vault.
Configurare e creare una regola della cache senza credenziali.
Eseguire il comando az acr Cache create per creare una regola della cache.
- Ad esempio, per creare una regola della cache senza le credenziali per un determinato
MyRegistry
Registro Azure Container.
az acr Cache create -r MyRegistry -n MyRule -s docker.io/library/ubuntu -t ubuntu-
- Ad esempio, per creare una regola della cache senza le credenziali per un determinato
Eseguire il comando az acr Cache show per visualizzare una regola della cache.
- Ad esempio, per visualizzare una regola della cache per un determinato
MyRegistry
Registro Azure Container.
az acr Cache show -r MyRegistry -n MyRule
- Ad esempio, per visualizzare una regola della cache per un determinato
Creare le credenziali
Prima di configurare le credenziali, è necessario creare e archiviare i segreti in Azure KeyVault e recuperare i segreti dall'insieme di credenziali delle chiavi. Altre informazioni sulla creazione e l'archiviazione delle credenziali in un insieme di credenziali delle chiavi. E per impostare e recuperare un segreto da Key Vault.
Eseguire il comando az acr credential set create per creare le credenziali.
- Ad esempio, Per creare le credenziali per un determinato
MyRegistry
Registro Azure Container.
az acr credential-set create -r MyRegistry \ -n MyRule \ -l docker.io \ -u https://MyKeyvault.vault.azure.net/secrets/usernamesecret \ -p https://MyKeyvault.vault.azure.net/secrets/passwordsecret
- Ad esempio, Per creare le credenziali per un determinato
Eseguire az acr credential set update per aggiornare l'ID segreto KV nome utente o password in un set di credenziali.
- Ad esempio, per aggiornare l'ID segreto KV nome utente o password nelle credenziali per un determinato
MyRegistry
Registro Azure Container.
az acr credential-set update -r MyRegistry -n MyRule -p https://MyKeyvault.vault.azure.net/secrets/newsecretname
- Ad esempio, per aggiornare l'ID segreto KV nome utente o password nelle credenziali per un determinato
Eseguire az-acr-credential-set-show per visualizzare le credenziali.
- Ad esempio, per visualizzare le credenziali per un determinato
MyRegistry
Registro Azure Container.
az acr credential-set show -r MyRegistry -n MyCredSet
- Ad esempio, per visualizzare le credenziali per un determinato
Configurare e creare una regola della cache con le credenziali
Eseguire il comando az acr cache create per creare una regola della cache.
- Ad esempio, per creare una regola della cache con le credenziali per un determinato
MyRegistry
Registro Azure Container.
az acr cache create -r MyRegistry -n MyRule -s docker.io/library/ubuntu -t ubuntu -c MyCredSet
- Ad esempio, per creare una regola della cache con le credenziali per un determinato
Eseguire il comando az acr cache update per aggiornare le credenziali in una regola della cache.
- Ad esempio, per aggiornare le credenziali in una regola della cache per un determinato
MyRegistry
Registro Azure Container.
az acr cache update -r MyRegistry -n MyRule -c NewCredSet
- Ad esempio, per rimuovere le credenziali da una regola della cache esistente per un determinato
MyRegistry
Registro Azure Container.
az acr cache update -r MyRegistry -n MyRule --remove-cred-set
- Ad esempio, per aggiornare le credenziali in una regola della cache per un determinato
Eseguire il comando az acr cache show per visualizzare una regola della cache.
- Ad esempio, per visualizzare una regola della cache per un determinato
MyRegistry
Registro Azure Container.
az acr cache show -r MyRegistry -n MyRule
- Ad esempio, per visualizzare una regola della cache per un determinato
Assegnare autorizzazioni a Key Vault
Ottenere l'ID principale dell'identità di sistema in uso per accedere a Key Vault.
PRINCIPAL_ID=$(az acr credential-set show -n MyCredSet \ -r MyRegistry \ --query 'identity.principalId' \ -o tsv)
Eseguire il comando az keyvault set-policy per assegnare l'accesso all'insieme di credenziali delle chiavi prima di eseguire il pull dell'immagine.
- Ad esempio, per assegnare le autorizzazioni per le credenziali di accesso al segreto KeyVault
az keyvault set-policy --name MyKeyVault \ --object-id $PRINCIPAL_ID \ --secret-permissions get
Eseguire il pull dell'immagine
Eseguire il pull dell'immagine dalla cache usando il comando Docker dal nome del server di accesso del Registro di sistema, dal nome del repository e dal relativo tag desiderato.
- Ad esempio, per eseguire il pull dell'immagine dal repository
hello-world
con il taglatest
desiderato per un determinato servermyregistry.azurecr.io
di accesso del Registro di sistema.
docker pull myregistry.azurecr.io/hello-world:latest
- Ad esempio, per eseguire il pull dell'immagine dal repository
Pulire le risorse
Eseguire il comando az acr cache list per elencare le regole della cache nella Registro Azure Container.
- Ad esempio, per elencare le regole della cache per un determinato
MyRegistry
Registro Azure Container.
az acr cache list -r MyRegistry
- Ad esempio, per elencare le regole della cache per un determinato
Eseguire il comando az acr cache delete per eliminare una regola della cache.
- Ad esempio, per eliminare una regola della cache per un determinato
MyRegistry
Registro Azure Container.
az acr cache delete -r MyRegistry -n MyRule
- Ad esempio, per eliminare una regola della cache per un determinato
Eseguireaz acr credential set list per elencare le credenziali in un Registro Azure Container.
- Ad esempio, per elencare le credenziali per un determinato
MyRegistry
Registro Azure Container.
az acr credential-set list -r MyRegistry
- Ad esempio, per elencare le credenziali per un determinato
Eseguire az-acr-credential-set-delete per eliminare le credenziali.
- Ad esempio, per eliminare le credenziali per un determinato
MyRegistry
Registro Azure Container.
az acr credential-set delete -r MyRegistry -n MyCredSet
- Ad esempio, per eliminare le credenziali per un determinato
Abilitare la cache degli artefatti - portale di Azure
È possibile abilitare la cache artifact nel Registro Azure Container con o senza autenticazione usando portale di Azure seguendo la procedura.
Prerequisiti
- Accedere al portale di Azure
- È disponibile un insieme di credenziali delle chiavi esistente per archiviare le credenziali. Altre informazioni sulla creazione e l'archiviazione delle credenziali in un insieme di credenziali delle chiavi.
- Sono disponibili gli insiemi di credenziali delle chiavi esistenti senza i controlli Controllo degli accessi in base al ruolo.
Configurare la cache artefatto senza credenziali
Seguire la procedura per creare una regola della cache nella portale di Azure.
Passare al Registro Azure Container.
Nel menu laterale, in Servizi, selezionare Cache.
Selezionare Crea regola.
Viene visualizzata una finestra per La nuova regola della cache.
Immettere il nome della regola.
Selezionare Registro di origine dal menu a discesa.
Immettere il percorso del repository per gli artefatti da memorizzare nella cache.
È possibile ignorare l'autenticazione, se non si accede a un repository privato o si esegue un pull autenticato.
In Destinazione immettere il nome dello spazio dei nomi nuovo repository del Registro Azure Container per archiviare gli artefatti memorizzati nella cache.
Selezionare Salva.
Eseguire il pull dell'immagine dalla cache usando il comando Docker dal nome del server di accesso del Registro di sistema, dal nome del repository e dal relativo tag desiderato.
- Ad esempio, per eseguire il pull dell'immagine dal repository
hello-world
con il taglatest
desiderato per un determinato servermyregistry.azurecr.io
di accesso del Registro di sistema.
docker pull myregistry.azurecr.io/hello-world:latest
- Ad esempio, per eseguire il pull dell'immagine dal repository
Configurare la cache degli artefatti con l'autenticazione
Seguire la procedura per creare una regola della cache nella portale di Azure.
Passare al Registro Azure Container.
Nel menu laterale, in Servizi, selezionare Cache.
Selezionare Crea regola.
Viene visualizzata una finestra per La nuova regola della cache.
Immettere il nome della regola.
Selezionare Registro di origine dal menu a discesa.
Immettere il percorso del repository per gli artefatti da memorizzare nella cache.
Per aggiungere l'autenticazione al repository, selezionare la casella Autenticazione .
Scegliere Crea nuove credenziali per creare un nuovo set di credenziali per archiviare il nome utente e la password per il registro di origine. Informazioni su come creare nuove credenziali.
Se le credenziali sono pronte, selezionare le credenziali dal menu a discesa.
In Destinazione immettere il nome dello spazio dei nomi nuovo repository del Registro Azure Container per archiviare gli artefatti memorizzati nella cache.
Selezionare Salva.
Eseguire il pull dell'immagine dalla cache usando il comando Docker dal nome del server di accesso del Registro di sistema, dal nome del repository e dal relativo tag desiderato.
- Ad esempio, per eseguire il pull dell'immagine dal repository
hello-world
con il taglatest
desiderato per un determinato servermyregistry.azurecr.io
di accesso del Registro di sistema.
docker pull myregistry.azurecr.io/hello-world:latest
- Ad esempio, per eseguire il pull dell'immagine dal repository
Creare nuove credenziali
Prima di configurare le credenziali, è necessario creare e archiviare segreti in Azure KeyVault e recuperare i segreti dall'insieme di credenziali delle chiavi. Altre informazioni sulla creazione e l'archiviazione delle credenziali in un insieme di credenziali delle chiavi. E per impostare e recuperare un segreto da Key Vault.
Passare a Credenziali>Crea credenziali.
Immettere Nome per le nuove credenziali per il registro di origine.
Selezionare un'autenticazione di origine. La cache degli artefatti supporta attualmente l'opzione Select from Key Vault e Enter secret URI (Immettere l'URI del segreto).
Per l'opzione Seleziona da Key Vault , vedere Altre informazioni sulla creazione di credenziali con l'insieme di credenziali delle chiavi.
Selezionare Crea.