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
- È necessario un cluster del servizio Azure Kubernetes esistente con l'integrazione di Registro Azure Container. Se non è disponibile, è possibile crearne uno usando l'autenticazione con Registro Azure Container dal servizio Azure Kubernetes.
- Abilitare lo streaming degli artefatti in Registro Azure Container.
- Questa funzionalità richiede Kubernetes versione 1.25 o successiva. Per controllare la versione del cluster del servizio Azure Kubernetes, vedere Verificare la disponibilità di aggiornamenti del cluster del servizio Azure Kubernetes.
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
Installare l'estensione dell'interfaccia della riga di comando
aks-preview
usando il comandoaz extension add
.az extension add --name aks-preview
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 comandoaz 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.
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
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
Configurare l'istanza di Registro Azure Container predefinita per la sottoscrizione usando il comando
az configure
.az configure --defaults acr="mystreamingtest"
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 --repository jupyter/all-spark-notebook:latest
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
Verificare lo streaming degli artefatti generato usando il comando
az acr manifest list-referrers
.az acr manifest list-referrers --name 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 sutrue
.
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.
Azure Kubernetes Service