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
- Você precisa de um cluster AKS existente com integração ACR. Se você não tiver um, você pode criar um usando Autenticar com ACR do AKS.
- Habilite o Streaming de Artefatos no ACR.
- Esse recurso requer o Kubernetes versão 1.25 ou posterior. Para verificar a versão do cluster AKS, consulte Verificar se há atualizações disponíveis do cluster AKS.
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
Instale a
aks-preview
extensão CLI usando oaz extension add
comando.az extension add --name aks-preview
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
ArtifactStreamingPreview
funcionalidade na sua subscrição utilizando oaz 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.
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
Crie um novo Registro de Contêiner do Azure SKU premium usando o
az acr create
comando com o--sku Premium
sinalizador.az acr create --resource-group myStreamingTest --name mystreamingtest --sku Premium
Configure a instância ACR padrão para sua assinatura usando o
az configure
comando.az configure --defaults acr="mystreamingtest"
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 --repository jupyter/all-spark-notebook:latest
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
Verifique o Streaming de Artefato gerado usando o
az acr manifest list-referrers
comando.az acr manifest list-referrers --name 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
az aks nodepool add
comando com o--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
az aks nodepool update
comando com o--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 comotrue
.
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.
Azure Kubernetes Service