Minder tijd voor implementatie met Artifact Streaming op Azure Kubernetes Service (AKS) met Azure Container Registry (ACR)

Grote containerimages kunnen de tijd om een image op te halen verlengen en de implementatie van workloads vertragen. Met artefactstreaming kunt u containerinstallatiekopieën van Azure Container Registry (ACR) naar Azure Kubernetes Service (AKS) streamen. AKS haalt alleen de benodigde lagen op voor het opstarten van de eerste pod, waardoor het minder lang duurt om uw workloads te implementeren.

In dit artikel wordt beschreven hoe u de functie Artefactstreaming op uw AKS-knooppuntgroepen inschakelt en uitschakelt om artefacten uit ACR te streamen.

Vereisten

Beperkingen

  • Alleen images met de Linux AMD64-architectuur worden ondersteund.
  • Windows-gebaseerde containerinstallatiekopieën en ARM64-installatiekopieën worden niet ondersteund.
  • Alleen de AMD64-architectuur wordt ondersteund voor images met meerdere architecturen.
  • Op Ubuntu gebaseerde knooppuntgroepen in AKS moeten Ubuntu versie 20.04 of hoger gebruiken.
  • Alleen Premium SKU ACR-registers worden ondersteund.
  • Registers met door de klant beheerde sleutels (CMK) worden niet ondersteund.
  • Kubernetes regcred, zoals imagePullSecrets, wordt niet ondersteund. Containerinstallatiekopieën die uit ACR worden opgehaald met niet-Entra-scope-toegewezen tokenreferenties of referenties van de ACR-beheerdersgebruiker, gebruiken standaard geen Artifact Streaming bij het ophalen, zelfs als de knooppuntgroep en de installatiekopie zijn ingeschakeld voor streaming.
  • Artefactstreaming biedt alleen ondersteuning voor het ophalen van afbeeldingen per tag. Artifact Streaming werkt door image-pull-aanvragen op basis van tags om te leiden naar een streamingvariant van de image. Als het ophalen van afbeeldingen wordt uitgevoerd door digest, kunt u artefactstreaming niet gebruiken.

Artefactstreaming inschakelen op ACR

  1. Maak een Azure-resourcegroep om uw ACR-exemplaar op te slaan met behulp van de az group create opdracht.

    az group create --name myStreamingTest --location westus
    
  2. Maak een nieuwe Premium SKU ACR met behulp van de az acr create opdracht met de --sku Premium vlag.

    az acr create --resource-group myStreamingTest --name mystreamingtest --sku Premium
    
  3. Configureer het standaard ACR-exemplaar voor uw abonnement met behulp van de az configure opdracht.

    az configure --defaults acr="mystreamingtest"
    
  4. Push ofwel importeer een image in het register met behulp van de az acr import opdracht.

    az acr import --source docker.io/jupyter/all-spark-notebook --repository jupyter/all-spark-notebook
    
  5. Maak een streaming-artefact van de afbeelding met behulp van de az acr artifact-streaming create-opdracht.

    az acr artifact-streaming create --image jupyter/all-spark-notebook:latest
    
  6. Controleer de gegenereerde artifactstreaming door de az acr manifest list-referrers opdracht.

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

Artefactstreaming inschakelen op AKS

U kunt Artefactstreaming inschakelen voor nieuwe of bestaande knooppuntgroepen in uw AKS-cluster met ACR-integratie.

Notitie

Als u geen Premium-laag ACR hebt geïntegreerd met uw AKS-cluster, kunt u Artefactstreaming niet gebruiken op AKS.

Notitie

Clusters waarvoor NAP (Automatische inrichting van knooppunten) is ingeschakeld, kunnen artefactstreaming inschakelen met behulp van het spec.artifactStreaming.enabled veld van de AKSNodeClass CRD. Stel dit veld in op true om artifactstreaming in te schakelen voor alle nieuwe of bestaande door NAP beheerde knooppunten die aan deze AKSNodeClass CRD zijn gekoppeld.

Artefactstreaming inschakelen voor een nieuwe knooppuntgroep

Maak een nieuwe AKS-knooppuntgroep waarvoor Artifact Streaming is ingeschakeld met behulp van de az aks nodepool add opdracht met de --enable-artifact-streaming vlag.

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

Artefactstreaming inschakelen voor een bestaande knooppuntgroep

Schakel Artefactstreaming in voor een bestaande AKS-knooppuntgroep met behulp van de az aks nodepool update opdracht met de --enable-artifact-streaming vlag.

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

Artefactstreaming op een bestaande knooppuntgroep uitschakelen

Schakel Artefactstreaming uit op een bestaande AKS-knooppuntgroep met behulp van de az aks nodepool update opdracht met de --disable-artifact-streaming vlag.

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

Status van de activering van artefactstreaming controleren

Controleer of Artifact Streaming is ingeschakeld op een AKS-knooppuntgroep met de opdracht az aks nodepool show met de vlag --query ingesteld op artifactStreamingProfile.

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

Controleer het Enabled veld in de uitvoer. true betekent dat Artefactstreaming is ingeschakeld en false betekent dat Artefactstreaming is uitgeschakeld.

In dit artikel wordt beschreven hoe u Artefactstreaming op uw AKS-knooppuntgroepen inschakelt en uitschakelt om artefacten van ACR te streamen en implementatietijden te verminderen. Voor meer informatie over het werken met containerimages in AKS, zie Best practices voor het beheren en beveiligen van containerimages in AKS.