Reduza o tempo de extração de imagem com o Streaming de Artefatos no Serviço Kubernetes do Azure (AKS) (Visualização)

As cargas de trabalho de computação de alto desempenho geralmente envolvem imagens grandes, o que pode causar longos tempos de extração de imagem e retardar suas implantações de carga de trabalho. O Streaming de Artefactos no AKS permite-lhe transmitir imagens de contentor do Azure Container Registry (ACR) para o AKS. O AKS apenas extrai as camadas necessárias para a inicialização inicial do pod, reduzindo o tempo necessário para extrair imagens e implantar suas cargas de trabalho.

O Artifact Streaming pode reduzir o tempo de preparação do pod em mais de 15%, dependendo do tamanho da imagem, e funciona melhor para imagens <de 30GB. Com base em nossos testes, vimos reduções nos tempos de inicialização do pod para imagens <de 10 GB de minutos para segundos. Se você tem um pod que precisa de acesso a um arquivo grande (>30GB), então você deve montá-lo como um volume em vez de construí-lo como uma camada. Isso ocorre porque se o seu pod requer que o arquivo inicie, ele congestiona o nó. O Artifact Streaming não é ideal para ler imagens pesadas do seu sistema de arquivos se você precisar disso na inicialização. Com o Artifact Streaming, o arranque de pods torna-se simultâneo, enquanto que, sem ele, os pods começam em série.

Este artigo descreve como habilitar o recurso Streaming de Artefatos em seus pools de nós AKS para transmitir artefatos do ACR.

Importante

Os recursos de visualização do AKS estão disponíveis em uma base de autosserviço e opt-in. As visualizações prévias são fornecidas "como estão" e "conforme disponíveis" e são excluídas dos contratos de nível de serviço e da garantia limitada. As visualizações do AKS são parcialmente cobertas pelo suporte ao cliente com base no melhor esforço. Como tal, estas funcionalidades não se destinam a utilização em produção. Para obter mais informações, consulte os seguintes artigos de suporte:

Pré-requisitos

Nota

O Streaming de Artefatos só é suportado nos pools de nós do Ubuntu 22.04, Ubuntu 20.04 e Azure Linux. Não há suporte para pools de nós do Windows.

Instalar a aks-preview extensão CLI

  1. Instale a aks-preview extensão CLI usando o az extension add comando.

    az extension add --name aks-preview
    
  2. Atualize a extensão para garantir que você tenha a versão mais recente instalada usando o az extension update comando.

    az extension update --name aks-preview
    

Registar o sinalizador de ArtifactStreamingPreview funcionalidades na sua subscrição

  • Registe o sinalizador de funcionalidade na sua subscrição utilizando o ArtifactStreamingPreviewaz feature register comando.

    az feature register --namespace Microsoft.ContainerService --name ArtifactStreamingPreview
    

Habilitar o streaming de artefatos no ACR

A ativação no ACR é um pré-requisito para o Artifact Streaming no AKS. Para obter mais informações, consulte Streaming de artefatos no ACR.

  1. Crie um grupo de recursos do Azure para manter sua instância do ACR usando o az group create comando.

    az group create --name myStreamingTest --location westus
    
  2. Crie um novo Registro de Contêiner do Azure SKU premium usando o comando com o az acr create--sku Premium sinalizador.

    az acr create --resource-group myStreamingTest --name mystreamingtest --sku Premium
    
  3. Configure a instância ACR padrão para sua assinatura usando o az configure comando.

    az configure --defaults acr="mystreamingtest"
    
  4. Envie ou importe uma imagem para o registro usando o az acr import comando.

    az acr import --source docker.io/jupyter/all-spark-notebook:latest -t jupyter/all-spark-notebook:latest
    
  5. Crie um artefato de streaming a partir da imagem usando o az acr artifact-streaming create comando.

    az acr artifact-streaming create --image jupyter/all-spark-notebook:latest
    
  6. Verifique o Streaming de Artefato gerado usando o az acr manifest list-referrers comando.

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

Ativar Streaming de Artefactos no AKS

Habilitar o Streaming de Artefatos em um novo pool de nós

  • Crie um novo pool de nós com o Streaming de Artefatos habilitado usando o comando com o az aks nodepool add--enable-artifact-streaming.

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

Habilitar o Streaming de Artefatos em um pool de nós existente

  • Atualize um pool de nós existente para habilitar o Streaming de Artefatos usando o comando com o az aks nodepool update--enable-artifact-streaming.

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

Verifique se o Streaming de Artefactos está ativado

Agora que você habilitou o Streaming de Artefato em um ACR premium e o conectou a um pool de nós AKS com o Streaming de Artefato habilitado, qualquer nova implantação de pod neste cluster com um pull de imagem do ACR com o Artifact Streaming habilitado verá reduções nos tempos de pull de imagem.

  • Verifique se o pool de nós tem o Streaming de Artefatos habilitado usando o az aks nodepool show comando.

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

    Na saída, verifique se o Enabled campo está definido como true.

Próximos passos

Este artigo descreveu como habilitar o Streaming de Artefatos em seus pools de nós AKS para transmitir artefatos do ACR e reduzir o tempo de extração de imagem. Para saber mais sobre como trabalhar com imagens de contêiner no AKS, consulte Práticas recomendadas para gerenciamento e segurança de imagens de contêiner no AKS.