Ridurre il tempo di pull delle immagini con lo streaming degli artefatti nel servizio Azure Kubernetes (anteprima)

I carichi di lavoro di calcolo ad alte prestazioni spesso comportano immagini di grandi dimensioni, che possono causare tempi di pull delle immagini lunghi e rallentare le distribuzioni dei carichi di lavoro. Lo streaming degli artefatti nel servizio Azure Kubernetes consente di trasmettere immagini del contenitore da Registro Azure Container al servizio Azure Kubernetes. Il servizio Azure Kubernetes esegue solo il pull dei livelli necessari per l'avvio iniziale dei pod, riducendo il tempo necessario per eseguire il pull delle immagini e distribuire i carichi di lavoro.

Lo streaming degli artefatti può ridurre il tempo di preparazione dei pod di oltre il 15%, a seconda delle dimensioni dell'immagine, e funziona meglio per le immagini <30 GB. In base ai test, è stata osservata una riduzione dei tempi di avvio dei pod per le immagini <10 GB da minuti a secondi. Se si dispone di un pod che deve accedere a un file di grandi dimensioni (>30 GB), è consigliabile montarlo come volume invece di compilarlo come livello. Ciò è dovuto al fatto che, se il pod richiede l'avvio del file, congestiona il nodo. Lo streaming degli artefatti non è ideale per leggere immagini pesanti dal file system, se necessario all'avvio. Con lo streaming degli artefatti, l'avvio dei pod diventa simultaneo, mentre senza di esso i pod vengono avviati in serie.

Questo articolo descrive come abilitare la funzionalità di streaming degli artefatti nei pool di nodi del servizio Azure Kubernetes per trasmettere gli artefatti da Registro Azure Container.

Importante

Le funzionalità di anteprima del servizio Azure Kubernetes sono disponibili in modalità self-service e opzionale. Le anteprime vengono fornite “così come sono” e ”come disponibili” e sono escluse dai contratti di servizio e dalla garanzia limitata. Le anteprime del servizio Azure Kubernetes sono parzialmente coperte dal supporto clienti con la massima diligenza possibile. Di conseguenza, queste funzionalità non sono destinate all'uso in produzione. Per altre informazioni, vedere gli articoli di supporto seguenti:

Prerequisiti

Nota

Lo streaming degli artefatti è supportato solo nei pool di nodi Ubuntu 22.04, Ubuntu 20.04 e Azure Linux. I pool di nodi di Windows non sono supportati.

Installare l'estensione dell'interfaccia della riga di comando aks-preview

  1. Installare l'estensione dell'interfaccia della riga di comando aks-preview usando il comando az extension add.

    az extension add --name aks-preview
    
  2. Aggiornare l'estensione per assicurarsi che sia installata la versione più recente usando il comando az extension update.

    az extension update --name aks-preview
    

Registrare il flag di funzionalità ArtifactStreamingPreview nella sottoscrizione

  • Registrare il flag di funzionalità ArtifactStreamingPreview nella sottoscrizione usando il comando az feature register.

    az feature register --namespace Microsoft.ContainerService --name ArtifactStreamingPreview
    

Abilitare lo streaming degli artefatti in Registro Azure Container

L'abilitazione in Registro Azure Container è un prerequisito per lo streaming degli artefatti nel servizio Azure Kubernetes. Per altre informazioni, vedere Streaming degli artefatti in Registro Azure Container.

  1. Creare un gruppo di risorse di Azure per contenere l'istanza di Registro Azure Container usando il comando az group create.

    az group create --name myStreamingTest --location westus
    
  2. Creare un nuovo Registro Azure Container SKU Premium usando il comando az acr create con il flag --sku Premium.

    az acr create --resource-group myStreamingTest --name mystreamingtest --sku Premium
    
  3. Configurare l'istanza di Registro Azure Container predefinita per la sottoscrizione usando il comando az configure.

    az configure --defaults acr="mystreamingtest"
    
  4. Eseguire il push o l'importazione di un'immagine nel registro di sistema usando il comando az acr import.

    az acr import --source docker.io/jupyter/all-spark-notebook:latest -t jupyter/all-spark-notebook:latest
    
  5. Creare un artefatto di streaming dall'immagine usando il comando az acr artifact-streaming create.

    az acr artifact-streaming create --image jupyter/all-spark-notebook:latest
    
  6. Verificare lo streaming degli artefatti generato usando il comando az acr manifest list-referrers.

    az acr manifest list-referrers -n jupyter/all-spark-notebook:latest
    

Abilitare lo streaming degli artefatti nel servizio Azure Kubernetes

Abilitare lo streaming degli artefatti in un nuovo pool di nodi

  • Creare un nuovo pool di nodi con lo streaming degli artefatti abilitato usando il comando az aks nodepool add con --enable-artifact-streaming.

    az aks nodepool add \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name myNodePool \
        --enable-artifact-streaming
    

Abilitare lo streaming degli artefatti in un pool di nodi esistente

  • Aggiornare un pool di nodi esistente per abilitare lo streaming degli artefatti usando il comando az aks nodepool update con --enable-artifact-streaming.

    az aks nodepool update \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name myNodePool \
        --enable-artifact-streaming
    

Controllare se lo streaming degli artefatti è abilitato

Dopo aver abilitato lo streaming degli artefatti in Registro Azure Container Premium e connesso a un pool di nodi del servizio Azure Kubernetes con lo streaming degli artefatti abilitato, tutte le nuove distribuzioni di pod in questo cluster con il pull di un'immagine dal Registro Azure Container con lo streaming degli artefatti abilitato vedranno riduzioni nei tempi di pull delle immagini.

  • Controllare se il pool di nodi dispone dello streaming degli artefatti abilitato usando il comando az aks nodepool show.

    az aks nodepool show --resource-group myResourceGroup --cluster-name myAKSCluster --name myNodePool --query artifactStreamingProfile
    

    Nell'output verificare che il campo Enabled sia impostato su true.

Passaggi successivi

Questo articolo ha descritto come abilitare lo streaming degli artefatti nei pool di nodi del servizio Azure Kubernetes per trasmettere gli artefatti da Registro Azure Container e ridurre il tempo di pull delle immagini. Per altre informazioni sull'uso delle immagini del contenitore nel servizio Azure Kubernetes, vedere Procedure consigliate per la gestione e la sicurezza delle immagini del contenitore nel servizio Azure Kubernetes.