Partilhar via


Streaming de artefactos no Registo de Contentores do Azure (Pré-visualização)

O streaming de artefactos (pré-visualização) é uma funcionalidade no Azure Container Registry que pode usar para armazenar e gerir imagens de contentores dentro de um único registo. Pode transmitir as imagens dos contentores para clusters Azure Kubernetes Service (AKS) em várias regiões. Esta funcionalidade acelera cargas de trabalho containerizadas para clientes Azure que utilizam AKS. Ao usar o streaming de artefactos, pode escalar cargas de trabalho sem esperar por tempos de transferência lentos para o seu nó.

Importante

O streaming de artefatos está atualmente em pré-visualização. Consulte os Termos de Utilização Complementares das Visualizações Prévias do Microsoft Azure para obter os termos legais que se aplicam às funcionalidades do Azure que estão em beta, em pré-visualização ou que ainda não foram lançadas para disponibilidade geral.

Como funciona o streaming de artefatos

Os clientes com registros novos e existentes podem iniciar o streaming de artefatos para repositórios ou tags específicos. Podes guardar tanto o artefacto original como o artefacto de streaming no mesmo registo de contentores. Mantém o acesso ao original e ao artefacto de streaming mesmo depois de desligar o streaming de artefactos.

O streaming de artefactos pode ser particularmente útil nos seguintes cenários:

Implementação de aplicações containerizadas em múltiplas regiões: Ao usar streaming de artefactos, pode armazenar imagens de contentores dentro de um único registo e transmiti-las para clusters AKS em várias regiões.

Redução da latência de pull da imagem: O streaming de artefactos pode reduzir o tempo de prontidão para o pod em mais de 15%, dependendo do tamanho da imagem. Esta redução é especialmente útil para imagens superiores a 30 GB. Esta funcionalidade reduz a latência de pull da imagem e ajuda os contentores a arrancar mais rapidamente.

Escalabilidade eficaz de aplicações containerizadas: O streaming de artefactos facilita o desenho, construção e implementação de aplicações containerizadas em grande escala.

O streaming de artefactos funciona entre regiões, independentemente de a geo-replicação ser iniciada ou não. Também pode usar streaming de artefactos com endpoints privados.

O estado do streaming de artefactos num repositório (inativo ou ativo) determina se as imagens compatíveis recém-lançadas são automaticamente convertidas. Por padrão, todos os repositórios estão em um estado inativo para streaming de artefatos. Isto significa que, quando novas imagens compatíveis são enviadas para o repositório, o streaming de artefactos não é ativado e as imagens não são convertidas automaticamente. Para permitir a conversão automática das imagens recém-enviadas, defina o fluxo de artefactos do repositório para o estado ativo. Uma vez que o repositório está no estado ativo, quaisquer novas imagens de contentores compatíveis que sejam enviadas para o repositório são automaticamente convertidas.

Preços e disponibilidade

O streaming de artefactos está atualmente disponível apenas para o nível de serviçoPremium (SKU).

O uso de streaming de artefactos pode aumentar o consumo total de armazenamento do registo. Se o consumo exceder o limiar de SKU Premium de 500 GiB incluído, poderá incorrer em custos adicionais, conforme indicado nos preços.

Limitações e requisitos atuais

O streaming de artefatos está atualmente em fase de teste. Aplicam-se as seguintes limitações:

  • Apenas imagens com arquitetura Linux AMD64 são suportadas na versão de visualização.
  • A versão de pré-visualização não suporta imagens de contentores baseadas em Windows e imagens ARM64.
  • A versão de pré-visualização suporta parcialmente imagens multi-arquitetura; apenas a arquitetura AMD64 é suportada.
  • Para criar um pool de nós baseado em Ubuntu no AKS, deve usar o Ubuntu versão 20.04 ou superior.
  • Para Kubernetes, deve usar Kubernetes versão 1.26 ou superior.
  • Os registos CMK (Customer-Managed Keys) não são atualmente suportados.
  • O Kubernetes regcred não é atualmente suportado.

Use o portal Azure ou a linha de comando do Azure para gerir o streaming de artefactos. Para o Azure CLI, pode usar o Azure Cloud Shell ou uma instalação local do Azure CLI para executar os exemplos de comandos neste artigo. Para instalar ou atualizar, consulte Instalar a CLI do Azure. Recomendamos a utilização da versão mais recente da CLI do Azure. Os comandos neste artigo requerem Azure CLI versão 2.54.0 ou superior.

Nota

Se usares streaming de artefactos com uma política de eliminação suave ativada, e apagares um artefacto, tanto a versão original como a de streaming de artefactos são eliminadas. No entanto, apenas a versão original pode ser visualizada ou restaurada durante o período de retenção.

Permitir e gerir a transmissão de artefactos

Inicie o streaming de artefactos para permitir o envio, importação e geração de artefactos de streaming para imagens de contentores num registo de contentores do Azure. Estas instruções descrevem o processo para gerar um artefacto de streaming e gerir a conversão automática de artefactos de streaming.

Para ativar o streaming de artefactos, deve usar um registo de nível de serviço Premium (SKU). Se ainda não tiver, crie um novo registo e selecione o nível de serviço Premium , ou altere o SKU para um registo existente.

Estes exemplos utilizam o Azure CLI para trabalhar com um Azure Container Registry Premium chamado mystreamingtest no grupo de recursos my-streaming-test localizado na região Oeste dos Estados Unidos, juntamente com uma imagem de exemplo do Jupyter Notebook. Substitua estes nomes pelos teus próprios valores.

Importar uma imagem e criar streaming de artefactos

Primeiro, executa o comando az config para definir o nome do registo como padrão para os az acr comandos:

az config set defaults.acr="mystreamingtest"

Se ainda não tens uma imagem que queiras usar, executa o comando az acr import para importar uma imagem do Jupyter Notebook a partir do Docker Hub:

az acr import --source docker.io/jupyter/all-spark-notebook:latest -t jupyter/all-spark-notebook:latest

Nota

Se vires um erro no registo do Docker, poderá dever-se a limitação de taxa. Para evitar este erro, considere autenticar com o Docker Hub fornecendo o seu ID do Docker e a palavra-passe usando os parâmetros --username e --password no comando az acr import.

Para criar um artefato de streaming a partir da imagem, execute o comando az acr artifact-streaming create:

az acr artifact-streaming create --image jupyter/all-spark-notebook:latest

Um ID de operação é gerado durante este processo. Se quiser parar o processo de criação do artefacto de streaming, execute az acr artifact-streaming operation cancel com o ID da operação:

az acr artifact-streaming operation cancel --repository jupyter/all-spark-notebook --id c015067a-7463-4a5a-9168-3b17dbe42ca3

Depois de gerado o artefacto de streaming, pode confirmar a sua criação usando o comando az acr manifest list-referrers para listar os artefactos de streaming:

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

Gerir o streaming de artefactos para novas imagens no repositório

Por defeito, imagens recém-enviadas ou importadas num repositório não estão automaticamente ativadas para streaming de artefactos. Para garantir que as novas imagens inseridas no repositório desencadeiam automaticamente a geração de artefactos de streaming, use o comando az acr artefact-streaming update no repositório:

az acr artifact-streaming update --repository jupyter/all-spark-notebook --enable-streaming true

Nota

As imagens existentes no repositório não são convertidas automaticamente quando executas este comando.

Para verificar se a conversão automática está a funcionar, faça push de uma nova imagem para o repositório e depois execute o comando az acr artifact-streaming operation show:

az acr artifact-streaming operation show --image jupyter/all-spark-notebook:newtag

Depois de confirmar que a conversão está a funcionar, pode transmitir imagens do ACR para clusters Azure Kubernetes Service (AKS).

Para desativar a conversão automática de artefactos de streaming no repositório, execute o azacr artefact-streaming update e defina --enable-streaming para false:

az acr artifact-streaming update --repository jupyter/all-spark-notebook --enable-streaming false