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

Configurare e creare una regola della cache senza credenziali.

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

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.

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

Configurare e creare una regola della cache con credenziali

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

Assegnare autorizzazioni a Key Vault usando i criteri di accesso (legacy)

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

  1. 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 desiderato latest per un server di accesso del registro myregistry.azurecr.io.
     docker pull myregistry.azurecr.io/hello-world:latest
    

Pulire le risorse

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

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

Configurare la cache degli artefatti senza credenziali

Seguire la procedura per creare una regola della cache nel portale di Azure.

  1. Passare al Registro Azure Container.

  2. Nel menu laterale, in Servizi, selezionare Cache.

    Screenshot della cache del registro nel portale di Azure.

  3. Selezionare Crea regola.

    Screenshot dell'opzione Crea regola nel portale di Azure.

  4. Viene visualizzata la finestra Nuova regola della cache.

    Screenshot della finestra Nuova regola della cache nel portale di Azure.

  5. Immettere il Nome della regola.

  6. Selezionare il registro di Origine dal menu a discesa.

  7. Immettere il Percorso del repository agli artefatti da memorizzare nella cache.

  8. È possibile ignorare l'autenticazione se non si accede a un repository privato o si esegue un pull autenticato.

  9. In Destinazione immettere il nome del Nuovo spazio dei nomi del repository ACR in cui archiviare gli artefatti memorizzati nella cache.

    Screenshot dell'opzione Salva regola della cache nel portale di Azure.

  10. Selezionare Salva.

  11. 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 desiderato latest per un server di accesso del registro myregistry.azurecr.io.
     docker pull myregistry.azurecr.io/hello-world:latest
    

Configurare la cache degli artefatti con l'autenticazione

Seguire la procedura per creare una regola della cache nel portale di Azure.

  1. Passare al Registro Azure Container.

  2. Nel menu laterale, in Servizi, selezionare Cache.

    Screenshot della cache del registro nel portale di Azure.

  3. Selezionare Crea regola.

    Screenshot dell'opzione Crea regola nel portale di Azure.

  4. Viene visualizzata la finestra Nuova regola della cache.

    Screenshot della finestra Nuova regola della cache con autenticazione nel portale di Azure.

  5. Immettere il Nome della regola.

  6. Selezionare il registro di Origine dal menu a discesa.

  7. Immettere il Percorso del repository agli artefatti da memorizzare nella cache.

  8. Per aggiungere l'autenticazione al repository, selezionare la casella Autenticazione.

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

  10. Se le credenziali sono pronte, Selezionare le credenziali dal menu a discesa.

  11. In Destinazione immettere il nome del Nuovo spazio dei nomi del repository ACR in cui archiviare gli artefatti memorizzati nella cache.

    Screenshot dell'opzione Salva regola della cache nel portale di Azure.

  12. Selezionare Salva.

  13. 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 desiderato latest per un server di accesso del registro myregistry.azurecr.io.
     docker pull myregistry.azurecr.io/hello-world:latest
    

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.

  1. Passare a Credenziali>Crea credenziali.

    Screenshot per l'aggiunta di credenziali nel portale di Azure.

    Screenshot per la creazione di nuove credenziali nel portale di Azure.

  2. Immettere il Nome delle nuove credenziali per il registro di origine.

  3. Selezionare una Autenticazione di origine. La cache degli artefatti supporta attualmente le opzioni Seleziona da Key Vault e Immetti URI segreto.

  4. Per l'opzione Seleziona da Key Vault vedere le informazioni aggiuntive sulla creazione di credenziali usando Key Vault.

  5. Selezionare Crea.

Passaggi successivi

  • Passare all'articolo successivo per consultare la guida alla risoluzione dei problemi relativi alla cache del registro.