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 visualizações são fornecidas "como estão" e "conforme disponíveis" e estão excluídas dos acordos 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
- Você precisa de um cluster do AKS existente integrado ao ACR. Se você não o tiver, poderá criá-lo usando Autenticar com o ACR do AKS.
- Habilitar Streaming de Artefatos no ACR.
- Esse recurso requer o Kubernetes versão 1.25 ou posterior. Para verificar a versão do cluster do AKS, consulte Verificar se há atualizações de cluster do AKS disponíveis.
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
Instale a extensão da CLI
aks-preview
usando o comandoaz extension add
.az extension add --name aks-preview
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 comandoaz 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.
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
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
Configure a instância padrão do ACR para sua assinatura usando o comando
az configure
.az configure --defaults acr="mystreamingtest"
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 --repository jupyter/all-spark-notebook:latest
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
Verifique o Streaming de Artefatos gerado na CLI do Azure usando o comando
az acr manifest list-referrers
.az acr manifest list-referrers --name 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 comotrue
.
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.
Azure Kubernetes Service