Ridurre i tempi di distribuzione con Artifact Streaming in Servizio Azure Kubernetes (AKS) con Registro Azure Container (ACR)

Le immagini di contenitori di grandi dimensioni possono aumentare il tempo di pull delle immagini e ritardare la distribuzione del carico di lavoro. Artifact Streaming consente di trasmettere immagini del contenitore da Registro Azure Container (ACR) a Servizio Azure Kubernetes (AKS). AKS scarica solo i layer necessari per l'avvio iniziale dei pod, riducendo il tempo necessario per distribuire i carichi di lavoro.

Questo articolo descrive come abilitare e disabilitare la funzionalità Artifact Streaming nei pool di nodi di AKS per eseguire lo streaming degli artefatti da Azure Container Registry.

Prerequisiti

Limitazioni

  • Sono supportate solo le immagini con architettura LINUX AMD64.
  • Le immagini di contenitore basate su Windows e le immagini ARM64 non sono supportate.
  • Solo l'architettura AMD64 è supportata per le immagini con più architetture.
  • I pool di nodi basati su Ubuntu nel servizio Azure Kubernetes devono usare Ubuntu versione 20.04 o successiva.
  • Sono supportati solo i registri ACR con SKU Premium.
  • I registri CMK (chiavi gestite dal cliente) non sono supportati.
  • Kubernetes regcred, ad esempio imagePullSecrets, non è supportato. Il prelievo dell'immagine da ACR tramite credenziali del token con mapping dell'ambito non Entra o credenziali dell'utente amministratore di ACR usa per impostazione predefinita pull senza Artifact Streaming, anche se il pool di nodi e l'immagine sono abilitati per lo streaming.
  • Artifact Streaming supporta solo il pull delle immagini in base al tag. Artifact Streaming funziona risolvendo le richieste di pull delle immagini per tag in una variante in streaming dell'immagine. Se i pull delle immagini vengono eseguiti tramite digest, non è possibile usare Artifact Streaming.

Abilitare lo streaming degli artefatti su Azure Container Registry (ACR)

  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 Azure Container Registry con 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 --repository jupyter/all-spark-notebook
    
  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 --name jupyter/all-spark-notebook:latest
    

Abilitare lo streaming degli artefatti nel servizio Azure Kubernetes

È possibile abilitare Artifact Streaming su pool di nodi nuovi o esistenti nel tuo cluster AKS con integrazione con Azure Container Registry (ACR).

Nota

Se non hai un'istanza di ACR di livello Premium integrata con il tuo cluster AKS, non puoi usare Artifact Streaming in AKS.

Abilitare lo streaming degli artefatti in un nuovo pool di nodi

Crea un nuovo pool di nodi AKS con Artifact Streaming abilitato usando il comando az aks nodepool add con il flag --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

Abilita Artifact Streaming in un pool di nodi AKS esistente usando il comando az aks nodepool update con il flag --enable-artifact-streaming.

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

Disabilitare Artifact Streaming in un pool di nodi esistente

Disabilitare lo streaming degli artefatti in un pool di nodi AKS esistente usando il comando az aks nodepool update con l'opzione --disable-artifact-streaming.

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

Controllare lo stato di abilitazione di Artifact Streaming

Controllare se Artifact Streaming è abilitato in un pool di nodi AKS usando il comando az aks nodepool show con il flag --query impostato su artifactStreamingProfile.

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

Nel risultato, controlla il campo Enabled. true significa che Artifact Streaming è abilitato e false indica che Artifact Streaming è disabilitato.

Questo articolo descrive come abilitare e disabilitare la funzionalità Artifact Streaming nei pool di nodi di AKS per eseguire lo streaming degli artefatti da ACR e ridurre i tempi di distribuzione. 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.