Réduire le temps de déploiement avec Artifact Streaming sur Azure Kubernetes Service (AKS) avec Azure Container Registry (ACR)

Les images de conteneurs volumineuses peuvent augmenter le temps de téléchargement des images et retarder le déploiement de la charge de travail. Artifact Streaming vous permet de diffuser des images de conteneur depuis Azure Container Registry (ACR) vers Azure Kubernetes Service (AKS). AKS extrait uniquement les couches nécessaires pour le démarrage initial du pod, ce qui réduit le temps nécessaire pour déployer vos charges de travail.

Cet article explique comment activer et désactiver la fonctionnalité Artifact Streaming sur vos pools de nœuds AKS afin de diffuser en continu des artefacts depuis ACR.

Prérequis

Limites

  • Seules les images avec l’architecture AMD64 Linux sont prises en charge.
  • les images conteneur basées sur Windows et les images ARM64 ne sont pas prises en charge.
  • Seule l’architecture AMD64 est prise en charge pour les images multi-architectures.
  • Les pools de nœuds ubuntu dans AKS doivent utiliser Ubuntu version 20.04 ou ultérieure.
  • Seuls les registres ACR de référence SKU Premium sont pris en charge.
  • Les registres CMK (Customer-Managed Keys) ne sont pas pris en charge.
  • Kubernetes regcred, par exemple imagePullSecrets, n’est pas pris en charge. Les extractions d’image depuis ACR à l’aide de informations d’identification de jeton avec mappage d’étendue non Entra ou d’informations d’identification de l’utilisateur administrateur ACR utilisent par défaut des extractions sans Artifact Streaming, même si le pool de nœuds et l’image sont activés pour le streaming.
  • Artifact Streaming prend uniquement en charge les extractions d’images par balise. Artifact Streaming fonctionne en résolvant les récupérations d’images à partir d’un tag en une version de l’image adaptée au streaming. Si les extractions d’images sont effectuées par synthèse, vous ne pouvez pas utiliser Artifact Streaming.

Activer la diffusion en continu d’artefacts sur ACR

  1. Créez un groupe de ressources Azure pour contenir votre instance ACR à l’aide de la commande az group create.

    az group create --name myStreamingTest --location westus
    
  2. Créez un ACR de référence SKU Premium à l’aide de la az acr create commande avec l’indicateur --sku Premium .

    az acr create --resource-group myStreamingTest --name mystreamingtest --sku Premium
    
  3. Configurez l’instance ACR par défaut pour votre abonnement à l’aide de la commande az configure.

    az configure --defaults acr="mystreamingtest"
    
  4. Envoyez ou importez une image dans le registre de conteneurs à l’aide de la commande az acr import.

    az acr import --source docker.io/jupyter/all-spark-notebook --repository jupyter/all-spark-notebook
    
  5. Créez un artifact de diffusion à partir de l’image en utilisant la commande az acr artifact-streaming create.

    az acr artifact-streaming create --image jupyter/all-spark-notebook:latest
    
  6. Vérifiez la diffusion en continu générée à l’aide de la commande az acr manifest list-referrers.

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

Activer la diffusion en continu d’artefacts sur AKS

Vous pouvez activer Artifact Streaming sur des pools de nœuds nouveaux ou existants dans votre cluster AKS avec l’intégration ACR.

Remarque

Si vous n’avez pas d’ACR de niveau Premium intégré à votre cluster AKS, vous ne pouvez pas utiliser Artifact Streaming sur AKS.

Remarque

Les clusters avec Node Auto Provisioning (NAP) activé peuvent activer le streaming d’artefacts à l’aide du champ spec.artifactStreaming.enabled de la CRD AKSNodeClass. Définissez ce champ sur true pour activer le streaming d’artefacts pour tous les nouveaux nœuds ou nœuds existants gérés par NAP associés à ce CRD AKSNodeClass.

Activer la diffusion en continu d’artefacts sur un nouveau pool de nœuds

Créez un nouveau pool de nœuds AKS avec Artifact Streaming activé à l’aide de la commande az aks nodepool add avec l’indicateur --enable-artifact-streaming.

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

Activer la diffusion en continu d’artefacts sur un nouveau pool de nœuds

Activez Artifact Streaming sur un pool de nœuds AKS existant à l’aide de la az aks nodepool update commande avec l’indicateur --enable-artifact-streaming .

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

Désactiver le streaming d’artefacts sur un pool de nœuds existant

Désactivez Artifact Streaming sur un pool de nœuds AKS existant à l’aide de la az aks nodepool update commande avec l’indicateur --disable-artifact-streaming .

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

Vérifier le statut d’activation d’Artifact Streaming

Vérifiez si Artifact Streaming est activé sur un pool de nœuds AKS à l’aide de la commande az aks nodepool show avec l’indicateur --query défini sur artifactStreamingProfile.

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

Dans la sortie, vérifiez le Enabled champ. true signifie que le streaming d’artefacts est activé et false que le streaming d’artefacts est désactivé.

Cet article explique comment activer et désactiver Artifact Streaming sur vos pools de nœuds AKS pour diffuser des artefacts à partir d’ACR et réduire les temps de déploiement. Pour en savoir plus sur l’utilisation d’images conteneur dans AKS, consultez les meilleures pratiques pour la gestion et la sécurité des images conteneur dans AKS.