Cache degli artefatti in Registro Azure Container
La cache degli artefatti consente agli utenti di memorizzare immagini di contenitori nella cache di 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 di contenitori 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 usando funzionalità come la replica geografica e il supporto della zona di disponibilità per pull di immagini con disponibilità e velocità più elevate.
La cache degli artefatti consente agli utenti di accedere ai registri nella cache tramite reti private. in modo da allinearsi rapidamente alle configurazioni del firewall e agli standard di conformità.
La cache degli artefatti risolve il problema dei limiti di pull imposti dai registri pubblici. Si consiglia agli utenti di eseguire l'autenticazione delle regole della cache con le credenziali di origine upstream e quindi di eseguire il pull delle immagini dal Registro Azure Container locale per ridurre i limiti di frequenza.
Terminologia
Regola della cache - Una regola della cache è una regola che è possibile creare per eseguire il pull di artefatti da un repository supportato alla cache locale.
Una regola della cache è composta da quattro parti:
Nome regola - Nome della regola della cache. Ad esempio:
Hello-World-Cache
.Origine - Nome del registro 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 ACR - Nome del nuovo percorso del repository in cui archiviare gli artefatti. Ad esempio:
hello-world
. Il repository non può essere già presente nell'istanza di Registro Azure Container.
Credenziali
Le credenziali sono costituite da un set di nome utente e password per il registro di origine. Sono necessarie per eseguire l'autenticazione con un repository pubblico o privato. Le credenziali sono composte da quattro parti
Credenziali - Il nome delle credenziali.
Server di accesso registro di origine - Server di accesso del registro di origine.
Autenticazione di origine - Percorsi di Key Vault in cui archiviare le credenziali.
Segreti nome utente e password - Segreti contenenti il nome utente e la password.
Limiti
La memorizzazione nella cache verrà eseguita solo dopo il completamento di almeno un pull di immagine nell'immagine del contenitore disponibile. Per ogni nuova immagine disponibile, è necessario completare un nuovo pull di immagine. La cache degli artefatti non esegue automaticamente il pull di nuovi tag di immagini nel momento in cui è disponibile un nuovo tag. È una funzionalità prevista per il futuro, ma non ancora supportata 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:
Avviso
I clienti devono generare il set di credenziali per l'origine del contenuto dall'hub Docker.
Registri upstream | Supporto tecnico | Disponibilità |
---|---|---|
Hub docker | Supporta solo pull 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 |
Raccolta pubblica di AWS Elastic Container Registry (ECR) | Supporta solo pull non autenticati. | Interfaccia della riga di comando di Azure, portale di Azure |
GitHub Container Registry | Supporta pull sia autenticati che non autenticati. | Interfaccia della riga di comando di Azure, portale di Azure |
Quay | Supporta pull sia autenticati che non autenticati. | Interfaccia della riga di comando di Azure, portale di Azure |
registry.k8s.io | Supporta pull sia autenticati che non autenticati. | Interfaccia della riga di comando di Azure |
Google Container Registry | Supporta pull sia autenticati che non autenticati. | Interfaccia della riga di comando di Azure |
Caratteri jolly
I caratteri jolly usano asterischi (*) per trovare corrispondenze tra più percorsi all'interno del registro immagine del contenitore. La cache degli artefatti supporta attualmente i caratteri jolly seguenti:
Nota
Le regole della cache eseguono il mapping da repository di destinazione => repository di origine.
Carattere jolly a livello di registro
Il carattere jolly a livello di registro 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 di 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 upstream al prefisso del repository.
Regola cache | Mapping | Esempio |
---|---|---|
contoso.azurecr.io/dotnet/* => mcr.microsoft.com/dotnet/* | Mapping di repository specifici di 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 di Registro Azure Container a repository di 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 corrispondenze tra più percorsi all'interno del registro immagine 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, non è possibile aggiungere un'altra regola con caratteri jolly sovrapposta.
Di seguito sono riportati alcuni esempi di regole sovrapposte:
Esempio 1:
Regola della cache esistente: contoso.azurecr.io/* => mcr.microsoft.com/*
Nuova cache aggiunta: contoso.azurecr.io/library/* => docker.io/library/*
L'aggiunta della nuova regola della cache viene bloccata perché il percorso del repository di destinazione contoso.azurecr.io/library/*
si sovrappone alla regola con caratteri jolly esistente contoso.azurecr.io/*
.
Esempio 2:
Regola della cache esistente: contoso.azurecr.io/library/*
=>mcr.microsoft.com/library/*
Nuova cache aggiunta: contoso.azurecr.io/library/dotnet/*
=>docker.io/library/dotnet/*
L'aggiunta della nuova regola della cache viene bloccata perché il percorso del repository di destinazione contoso.azurecr.io/library/dotnet/*
si sovrappone alla regola con caratteri jolly esistente contoso.azurecr.io/library/*
.
Limitazioni per le regole della cache statiche/fisse
Le regole della cache statiche o fisse sono più specifiche e non usano caratteri jolly. Possono essere sovrapposte a regole della cache basate su caratteri jolly. Se una regola della cache specifica un percorso del repository fisso, può essere sovrapposta a regola della cache basata su caratteri jolly.
Esempio 1:
Regola della cache esistente: contoso.azurecr.io/*
=>mcr.microsoft.com/*
Nuova cache aggiunta: 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 della cache con caratteri jolly contoso.azurecr.io/*
.
Abilitare la cache degli artefatti - Interfaccia della riga di comando di Azure
È possibile abilitare la cache degli artefatti nel Registro Azure Container con o senza autenticazione usando l'interfaccia della riga di comando di Azure e seguendo la procedura appropriata.
Prerequisiti
- Per eseguire gli esempi di comandi di questo articolo è possibile usare Azure Cloud Shell o un'installazione locale dell'interfaccia della riga di comando di Azure. Se si preferisce l'interfaccia locale, è necessario usare 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. - È necessaria un'istanza di Key Vault esistente in cui archiviare le credenziali. Altre informazioni sulle procedure per creare e archiviare credenziali in Key Vault.
- È possibile creare e recuperare segreti da Key Vault. Altre informazioni sulle procedure per Impostare e recuperare 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 credenziali per un determinato Registro Azure Container
MyRegistry
.
az acr Cache create -r MyRegistry -n MyRule -s docker.io/library/ubuntu -t ubuntu-
- Ad esempio, per creare una regola della cache senza credenziali per un determinato Registro Azure Container
Eseguire il comando az acr Cache show per visualizzare una regola della cache.
- Ad esempio, per visualizzare una regola della cache per un determinato Registro Azure Container
MyRegistry
.
az acr Cache show -r MyRegistry -n MyRule
- Ad esempio, per visualizzare una regola della cache per un determinato Registro Azure Container
Creare le credenziali
Prima di configurare le credenziali, è necessario creare e archiviare segreti in Azure KeyVault e recuperarli da Key Vault. Altre informazioni sulle procedure per creare e archiviare credenziali in Key Vault e per Impostare e recuperare un segreto da Azure Key Vault.
Eseguire il comando az acr credential set create per creare le credenziali.
- Ad esempio, per creare le credenziali per un determinato Registro Azure Container
MyRegistry
.
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
- Ad esempio, per creare le credenziali per un determinato Registro Azure Container
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 di un determinato Registro Azure Container
MyRegistry
.
az acr credential-set update -r MyRegistry -n MyDockerHubCredSet -p https://MyKeyvault.vault.azure.net/secrets/newsecretname
- Ad esempio, per aggiornare l'ID segreto KV nome utente o password nelle credenziali di un determinato Registro Azure Container
Eseguire az acr credential-set show per visualizzare le credenziali.
- Ad esempio, per visualizzare le credenziali impostate in un determinato Registro Azure Container
MyRegistry
.
az acr credential-set show -r MyRegistry -n MyDockerHubCredSet
- Ad esempio, per visualizzare le credenziali impostate in un determinato Registro Azure Container
Configurare e creare una regola della cache con credenziali
Eseguire il comando az acr cache create per creare una regola della cache.
- Ad esempio, per creare una regola della cache con credenziali per un determinato Registro Azure Container
MyRegistry
.
az acr cache create -r MyRegistry -n MyRule -s docker.io/library/ubuntu -t ubuntu -c MyDockerHubCredSet
- Ad esempio, per creare una regola della cache con credenziali per un determinato Registro Azure Container
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 Registro Azure Container
MyRegistry
.
az acr cache update -r MyRegistry -n MyRule -c NewCredSet
- Ad esempio, per rimuovere le credenziali per una regola della cache esistente per un determinato Registro Azure Container
MyRegistry
.
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 Registro Azure Container
Eseguire il comando az acr cache show per visualizzare una regola della cache.
- Ad esempio, per visualizzare una regola della cache per un determinato Registro Azure Container
MyRegistry
.
az acr cache show -r MyRegistry -n MyRule
- Ad esempio, per visualizzare una regola della cache per un determinato Registro Azure Container
Assegnare autorizzazioni a Key Vault usando i criteri di accesso (legacy)
Ottenere l'ID entità dell'identità di sistema in uso per accedere a Key Vault.
PRINCIPAL_ID=$(az acr credential-set show -n MyDockerHubCredSet \ -r MyRegistry \ --query 'identity.principalId' \ -o tsv)
Eseguire il comando az keyvault set-policy per assegnare l'accesso a Key Vault 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, dal nome del repository e dal relativo tag desiderato.
- Ad esempio, eseguire il pull dell'immagine dal repository
hello-world
con il tag desideratolatest
per un server di accesso del registromyregistry.azurecr.io
.
docker pull myregistry.azurecr.io/hello-world:latest
- Ad esempio, eseguire il pull dell'immagine dal repository
Pulire le risorse
Eseguire il comando az acr cache list per elencare le regole della cache nel Registro Azure Container.
- Ad esempio, per elencare le regole della cache per un determinato Registro Azure Container
MyRegistry
.
az acr cache list -r MyRegistry
- Ad esempio, per elencare le regole della cache per un determinato Registro Azure Container
Eseguire il comando az acr cache delete per eliminare una regola della cache.
- Ad esempio, per eliminare una regola della cache per un determinato Registro Azure Container
MyRegistry
.
az acr cache delete -r MyRegistry -n MyRule
- Ad esempio, per eliminare una regola della cache per un determinato Registro Azure Container
Eseguireaz acr credential set list per elencare le credenziali in un Registro Azure Container.
- Ad esempio, per elencare le credenziali per un determinato Registro Azure Container
MyRegistry
.
az acr credential-set list -r MyRegistry
- Ad esempio, per elencare le credenziali per un determinato Registro Azure Container
Eseguire az acr credential-set delete per eliminare le credenziali.
- Ad esempio, per eliminare le credenziali per un determinato Registro Azure Container
MyRegistry
.
az acr credential-set delete -r MyRegistry -n MyDockerHubCredSet
- Ad esempio, per eliminare le credenziali per un determinato Registro Azure Container
Abilitare la cache degli artefatti - Portale di Azure
È possibile abilitare la cache degli artefatti nel Registro Azure Container con o senza autenticazione usando il portale di Azure e seguendo la procedura appropriata.
Prerequisiti
- Accedere al portale di Azure
- È necessaria un'istanza di Key Vault esistente in cui archiviare le credenziali. Altre informazioni sulle procedure per creare e archiviare credenziali in Key Vault
- È necessaria un'istanza di Key Vault esistente senza i controlli degli accessi in base al ruolo.
Configurare la cache degli artefatti senza credenziali
Seguire la procedura per creare una regola della cache nel portale di Azure.
Passare al Registro Azure Container.
Nel menu laterale, in Servizi, selezionare Cache.
Selezionare Crea regola.
Viene visualizzata la finestra Nuova regola della cache.
Immettere il Nome della regola.
Selezionare il registro di Origine dal menu a discesa.
Immettere il Percorso del repository agli 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 del Nuovo spazio dei nomi del repository ACR in cui 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, dal nome del repository e dal relativo tag desiderato.
- Ad esempio, eseguire il pull dell'immagine dal repository
hello-world
con il tag desideratolatest
per un server di accesso del registromyregistry.azurecr.io
.
docker pull myregistry.azurecr.io/hello-world:latest
- Ad esempio, eseguire il pull dell'immagine dal repository
Configurare la cache degli artefatti con l'autenticazione
Seguire la procedura per creare una regola della cache nel portale di Azure.
Passare al Registro Azure Container.
Nel menu laterale, in Servizi, selezionare Cache.
Selezionare Crea regola.
Viene visualizzata la finestra Nuova regola della cache.
Immettere il Nome della regola.
Selezionare il registro di Origine dal menu a discesa.
Immettere il Percorso del repository agli 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 l'archiviazione del nome utente e della password per il registro di origine. Sono disponibili informazioni su come creare nuove credenziali.
Se le credenziali sono pronte, Selezionare le credenziali dal menu a discesa.
In Destinazione immettere il nome del Nuovo spazio dei nomi del repository ACR in cui 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, dal nome del repository e dal relativo tag desiderato.
- Ad esempio, eseguire il pull dell'immagine dal repository
hello-world
con il tag desideratolatest
per un server di accesso del registromyregistry.azurecr.io
.
docker pull myregistry.azurecr.io/hello-world:latest
- Ad esempio, eseguire il pull dell'immagine dal repository
Creare nuove credenziali
Prima di configurare le credenziali, è necessario creare e archiviare segreti in Azure KeyVault e recuperarli da Key Vault. Altre informazioni sulle procedure per creare e archiviare credenziali in Key Vault e per Impostare e recuperare un segreto da Azure Key Vault.
Passare a Credenziali>Crea credenziali.
Immettere il Nome delle nuove credenziali per il registro di origine.
Selezionare una Autenticazione di origine. La cache degli artefatti supporta attualmente le opzioni Seleziona da Key Vault e Immetti URI segreto.
Per l'opzione Seleziona da Key Vault vedere le informazioni aggiuntive sulla creazione di credenziali usando Key Vault.
Selezionare Crea.
Passaggi successivi
- Passare all'articolo successivo per consultare la guida alla risoluzione dei problemi relativi alla cache del registro.