Minska tiden till driftsättning med direktuppspelning av artefakter i Azure Kubernetes Service (AKS) med Azure Container Registry (ACR)

Stora containeravbildningar kan öka avbildningens pull-tid och fördröja distributionen av arbetsbelastningen. Med Artefaktströmning kan du strömma containeravbildningar från Azure Container Registry (ACR) till Azure Kubernetes Service (AKS). AKS hämtar bara de nödvändiga lagren för den första poddstarten, vilket minskar den tid det tar att distribuera dina arbetsbelastningar.

Den här artikeln beskriver hur du aktiverar och inaktiverar funktionen Artefaktuppspelning i AKS-nodpoolerna för att strömma artefakter från ACR.

Prerequisites

Begränsningar

  • Endast avbildningar med Linux AMD64-arkitektur stöds.
  • Windows-baserade containeravbildningar och ARM64-avbildningar stöds inte.
  • Endast AMD64-arkitekturen stöds för avbildningar med flera arkitekturer.
  • Ubuntu-baserade nodpooler i AKS måste använda Ubuntu version 20.04 eller senare.
  • Endast Premium SKU ACR-register stöds.
  • Register som använder CMK (kundhanterade nycklar) stöds inte.
  • Kubernetes regcred, till exempel imagePullSecrets, stöds inte. Avbildningar som hämtas från ACR med autentiseringsuppgifter för icke-Entra-scope-mappade token eller autentiseringsuppgifter för ACR-administratören använder som standard hämtningar utan Artifact Streaming, även om nodpoolen och avbildningen är aktiverade för streaming.
  • Artefaktuppspelning stöder endast bildhämtningar efter tagg. Artifact Streaming fungerar genom att lösa upp hämtningar av avbilder via tagg till en strömmad variant av avbilden. Om bildhämtningar görs med digest kan du inte använda Artifact Streaming.

Aktivera Artifact Streaming på ACR

  1. Skapa en Azure-resursgrupp för att hålla din ACR-instans med hjälp av az group create-kommandot.

    az group create --name myStreamingTest --location westus
    
  2. Skapa en ny Premium SKU ACR med kommandot az acr create och flaggan --sku Premium.

    az acr create --resource-group myStreamingTest --name mystreamingtest --sku Premium
    
  3. Konfigurera ACR-standardinstansen för din prenumeration med hjälp av az configure kommandot .

    az configure --defaults acr="mystreamingtest"
    
  4. Överför eller importera en bild till registret med hjälp av kommandot az acr import.

    az acr import --source docker.io/jupyter/all-spark-notebook --repository jupyter/all-spark-notebook
    
  5. Skapa en strömmande artefakt från bilden med kommandot az acr artifact-streaming create.

    az acr artifact-streaming create --image jupyter/all-spark-notebook:latest
    
  6. Kontrollera den genererade Artifact Streaming med kommandot az acr manifest list-referrers.

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

Aktivera Artifact Streaming på AKS

Du kan aktivera Artefaktströmning på nya eller befintliga nodpooler i ditt AKS-kluster med ACR-integrering.

Anteckning

Om du inte har en Premium-nivå-ACR integrerad med ditt AKS-kluster kan du inte använda Artefaktströmning i AKS.

Anteckning

Kluster med NAP (Node Auto Provisioning) aktiverat kan aktivera artefaktströmning med hjälp spec.artifactStreaming.enabled av fältet i AKSNodeClass CRD. Ange det här fältet till true för att aktivera artefaktströmning för alla nya eller befintliga NAP-hanterade noder som är associerade med denna AKSNodeClass CRD.

Aktivera artefaktströmning på en ny nodpool

Skapa en ny AKS-nodpool med Artifact Streaming aktiverat med kommandot az aks nodepool add med --enable-artifact-streaming flaggan .

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

Aktivera Artifact Streaming på en befintlig nodpool

Aktivera artefaktströmning i en befintlig AKS-nodpool med kommandot az aks nodepool update och flaggan --enable-artifact-streaming.

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

Inaktivera artefaktströmning i en befintlig nodpool

Inaktivera artefaktströmning på en befintlig AKS-nodpool med kommandot az aks nodepool update och flaggan --disable-artifact-streaming.

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

Kontrollera aktiveringsstatus för Artifact Streaming

Kontrollera om Artifact Streaming är aktiverat på en AKS-nodpool med kommandot az aks nodepool show och flaggan --query inställd på artifactStreamingProfile.

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

Kontrollera fältet Enabled i utdata. true betyder att artefaktströmning är aktiverat och false betyder att artefaktströmning är inaktiverat.

Den här artikeln beskriver hur du aktiverar och inaktiverar artefaktströmning i DINA AKS-nodpooler för att strömma artefakter från ACR och minska distributionstiderna. För att lära dig mer om att arbeta med containerbilder i AKS, se Bästa praxis för hantering och säkerhet av containerbilder i AKS.