Zkrácení doby nasazení s využitím streamování artefaktů na Azure Kubernetes Service (AKS) s využitím služby Azure Container Registry (ACR)

Velké obrazy kontejnerů mohou prodloužit dobu stahování obrazů a zpozdit nasazení úloh aplikace. Streamování artefaktů umožňuje streamovat image kontejnerů z Azure Container Registry (ACR) do Azure Kubernetes Service (AKS). AKS načítá jenom potřebné vrstvy pro počáteční spuštění podu, což zkracuje dobu potřebnou k nasazení úloh.

Tento článek popisuje, jak povolit a zakázat funkci Streamování artefaktů ve fondech uzlů AKS pro streamování artefaktů z ACR.

Požadavky

Omezení

  • Podporují se jenom image s architekturou LINUX AMD64.
  • Image kontejnerů založené na systému Windows a image pro ARM64 nejsou podporovány.
  • U imagí s více architekturami se podporuje pouze architektura AMD64.
  • Fondy uzlů založené na Ubuntu v AKS musí používat Ubuntu verze 20.04 nebo vyšší.
  • Podporovány jsou pouze registry ACR s SKU Premium.
  • Registry používající CMK (klíče spravované zákazníkem) nejsou podporovány.
  • Kubernetes regcred, například imagePullSecrets, se nepodporuje. Stahování imagí z ACR pomocí přihlašovacích údajů tokenu mapovaného na rozsah, který není Entra nebo přihlašovacích údajů uživatele správce ACR standardně používá stahování bez Artifact Streaming, i když jsou fond uzlů i image pro streamování povolené.
  • Artifact Streaming podporuje pouze stahování imagí podle tagu. Streamování artefaktů funguje tak, že požadavky na stažení obrazu podle tagu přesměrovává na streamovanou variantu obrazu. Pokud se image stahují podle digestu, nemůžete použít Artifact Streaming.

Povolení streamování artefaktů v ACR

  1. Pomocí příkazu az group create vytvořte skupinu prostředků Azure, která bude uchovávat vaši instanci ACR.

    az group create --name myStreamingTest --location westus
    
  2. Vytvořte novou Premium SKU ACR pomocí příkazu az acr create s příznakem --sku Premium.

    az acr create --resource-group myStreamingTest --name mystreamingtest --sku Premium
    
  3. Pomocí příkazu nakonfigurujte výchozí instanci ACR pro vaše předplatné az configure .

    az configure --defaults acr="mystreamingtest"
    
  4. Přeneste nebo naimportujte obraz do registru pomocí příkazu az acr import.

    az acr import --source docker.io/jupyter/all-spark-notebook --repository jupyter/all-spark-notebook
    
  5. Vytvořte za použití příkazu az acr artifact-streaming create artefakt streamování z obrazu.

    az acr artifact-streaming create --image jupyter/all-spark-notebook:latest
    
  6. Ověřte streamování artefaktů pomocí příkazu az acr manifest list-referrers.

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

Povolení streamování artefaktů v AKS

Streamování artefaktů můžete povolit u nových nebo existujících fondů uzlů ve clusteru AKS s integrací ACR.

Poznámka:

Pokud nemáte službu ACR úrovně Premium integrovanou s clusterem AKS, nemůžete použít streamování artefaktů v AKS.

Poznámka:

Clustery s povoleným automatickým zřizováním uzlů (NAP) můžou povolit streamování artefaktů pomocí spec.artifactStreaming.enabled pole CRD třídy AKSNodeClass. Nastavením tohoto pole na true povolíte streamování artefaktů pro všechny nové nebo existující uzly spravované službou NAP přidružené k tomuto CRD AKSNodeClass.

Povolení streamování artefaktů v novém fondu uzlů

Vytvořte nový fond uzlů AKS s povoleným streamováním artefaktů pomocí příkazu az aks nodepool add s příznakem --enable-artifact-streaming.

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

Povolte streamování artefaktů ve stávajícím fondu uzlů

Povolte streamování artefaktů ve stávajícím fondu uzlů v AKS pomocí příkazu az aks nodepool update s příznakem --enable-artifact-streaming.

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

Zakázání streamování artefaktů ve stávajícím fondu uzlů

Ve stávajícím fondu uzlů v AKS zakažte streamování artefaktů pomocí příkazu az aks nodepool update s příznakem --disable-artifact-streaming.

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

Zkontrolujte, zda je Artifact Streaming povoleno

Pomocí příkazu az aks nodepool show s příznakem --query nastaveným na artifactStreamingProfile zkontrolujte, zda je ve fondu uzlů AKS povolené streamování artefaktů.

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

Ve výstupu zaškrtněte Enabled políčko. true znamená, že je povolené streamování artefaktů a false znamená, že streamování artefaktů je zakázané.

Tento článek popisuje, jak povolit a zakázat funkci Artifact Streaming ve fondech uzlů služby AKS tak, aby bylo možné streamovat artefakty z ACR a zkrátit dobu nasazení. Další informace o práci s imagemi kontejnerů v AKS najdete v tématu Osvědčené postupy pro správu a zabezpečení imagí kontejnerů v AKS.