Reduzir o tempo de pull de imagem com o Streaming de Artefatos no AKS (Serviço de Kubernetes do Azure) (versão prévia)

As cargas de trabalho de computação de alto desempenho geralmente envolvem imagens grandes, o que pode causar longos tempos de pull de imagem e diminuir a velocidade das implantações de carga de trabalho. O Streaming de Artefatos no AKS permite transmitir imagens de contêiner do ACR (Registro de Contêiner do Azure) para o AKS. O AKS apenas efetua pull das camadas necessárias para a inicialização inicial do pod, o que reduz o tempo necessário para efetuar pull de imagens e implantar as cargas de trabalho.

O Streaming de Artefatos pode reduzir o tempo de preparação para o pod em mais de 15%, dependendo do tamanho da imagem, e funciona melhor em imagens de <30 GB. Com base em nossos testes, vimos reduções nos tempos de inicialização do pod para imagens de <10 GB de minutos a segundos. Se você tiver um pod que precise de acesso a um arquivo grande (>30 GB), deverá montá-lo como um volume em vez de configurá-lo como uma camada. Isso ocorre porque, se o pod exigir que esse arquivo seja iniciado, ele congestionará o nó. O Streaming de Artefatos não é ideal para ler imagens pesadas do sistema de arquivos, se você precisar disso na inicialização. Com o Streaming de Artefatos, a inicialização do pod torna-se simultânea; sem ele, os pods são iniciados em série.

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

Importante

As versões prévias do recurso AKS estão disponíveis em uma base de autoatendimento e aceitação. As versõ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 versões prévias do AKS são parcialmente cobertas pelo suporte ao cliente em uma base de melhor esforço. Dessa forma, esses recursos não são destinados ao uso em produção. Para obter mais informações, consulte os seguintes artigos:

Pré-requisitos

Observação

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

Instalar a extensão da CLI aks-preview

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

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

    az extension update --name aks-preview
    

Registrar o sinalizador de recurso ArtifactStreamingPreview na assinatura

  • Registre o sinalizador de recurso ArtifactStreamingPreview na assinatura usando o comando az feature register.

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

Habilitar Streaming de Artefatos no ACR

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

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

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

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

    az configure --defaults acr="mystreamingtest"
    
  4. Importe ou efetue push de uma imagem para o Registro usando o comando az acr import.

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

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

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

Habilitar Streaming de Artefatos 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 az aks nodepool add com o --enable-artifact-streaming.

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

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

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

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

Verificar se o Streaming de Artefatos está habilitado

Agora que você habilitou o Streaming de Artefatos em um ACR premium e o conectou a um pool de nós do AKS com o Streaming de Artefatos habilitado, as eventuais novas implantações de pod nesse cluster que efetuam pull de imagem do ACR com o Artifact Streaming habilitado terão tempos de pull de imagem reduzidos.

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

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

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

Próximas etapas

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