Cache de Artefatos - Visão geral

O recurso Cache de Artefatos permite que os usuários armazenem em cache imagens de contêiner em um registro de contêiner privado. O Cache de Artefatos está disponível nas camadas de serviço Basic, Standard e Premium.

Este artigo é a primeira parte de uma série de tutoriais de seis partes. O tutorial abrange:

  1. Cache de artefatos
  2. Habilitar cache de artefatos - Portal do Azure
  3. Habilitar o Cache de Artefatos com autenticação - Portal do Azure
  4. Habilitar cache de artefatos - CLI do Azure
  5. Habilitar o cache de artefatos com autenticação - CLI do Azure
  6. Guia de solução de problemas para o Cache de Artefatos

Cache de artefatos

O Cache de Artefatos permite armazenar em cache imagens de contêiner de repositórios públicos e privados.

A implementação do Cache de Artefatos oferece os seguintes benefícios:

Operações de pull mais confiáveis: pulls mais rápidos de imagens de contêiner são possíveis armazenando em cache as imagens de contêiner no ACR. Como a Microsoft gerencia a rede do Azure, as operações pull são mais rápidas fornecendo suporte à Replicação Geográfica e à Zona de Disponibilidade aos clientes.

Redes privadas: Os registos em cache estão disponíveis em redes privadas. Portanto, os usuários podem configurar seu firewall para atender aos padrões de conformidade.

Garantir que o conteúdo upstream seja entregue: todos os registros, especialmente os públicos, como o Docker Hub e outros, têm limites de atração anônimos para garantir que possam fornecer serviços a todos. O Cache de Artefatos permite que os usuários extraiam imagens do ACR local em vez do registro upstream. O Cache de Artefatos garante a entrega de conteúdo do upstream e os usuários obtêm o benefício de extrair as imagens de contêiner do cache sem contar até os limites de receção.

Terminologia

  • Regra de cache - Uma regra de cache é uma regra que você pode criar para extrair artefatos de um repositório suportado para o cache.

    • Uma regra de cache contém quatro partes:

      1. Nome da regra - O nome da regra de cache. Por exemplo, Hello-World-Cache.

      2. Source - O nome do Registro de origem.

      3. Caminho do repositório - O caminho de origem do repositório para localizar e recuperar artefatos que você deseja armazenar em cache. Por exemplo, docker.io/library/hello-world.

      4. New ACR Repository Namespace - O nome do novo caminho do repositório para armazenar artefatos. Por exemplo, hello-world. O repositório ainda não pode existir dentro da instância ACR.

  • Credenciais

    • As credenciais são um conjunto de nome de usuário e senha para o registro de origem. Você precisa de credenciais para autenticar com um repositório público ou privado. As credenciais contêm quatro partes

      1. Credenciais - O nome das suas credenciais.

      2. Servidor de login do registro de origem - O servidor de login do seu registro de origem.

      3. Autenticação de origem - Os locais do cofre de chaves para armazenar credenciais.

      4. Segredos de nome de usuário e senha- Os segredos que contêm o nome de usuário e senha.

Limitações

  • O cache só ocorrerá depois que pelo menos uma extração de imagem for concluída na imagem de contêiner disponível. Para cada nova imagem disponível, um novo pull de imagem deve ser concluído. O Cache de Artefatos não extrai automaticamente novas tags de imagens quando uma nova tag está disponível. Ele está no roteiro, mas não é suportado nesta versão.

  • O Cache de Artefatos suporta apenas 1000 regras de cache.

Suporte upstream

Atualmente, o Cache de Artefatos oferece suporte aos seguintes registros upstream:

Registos a montante Suporte Disponibilidade
Docker Hub Suporta pulls autenticados e pulls não autenticados. CLI do Azure, portal do Azure
Registro de Artefato da Microsoft Suporta apenas pulls não autenticados. CLI do Azure, portal do Azure
ECR Público Suporta apenas pulls não autenticados. CLI do Azure, portal do Azure
Registro de contêiner do GitHub Suporta pulls autenticados e pulls não autenticados. CLI do Azure, portal do Azure
Nvidia Suporta pulls autenticados e pulls não autenticados. CLI do Azure
Cais Suporta pulls autenticados e pulls não autenticados. CLI do Azure, portal do Azure
registry.k8s.io Suporta pulls autenticados e pulls não autenticados. CLI do Azure
Registro de contêiner do Google Suporta pulls autenticados e pulls não autenticados. CLI do Azure

Carateres universais

O curinga usa asteriscos (*) para corresponder a vários caminhos dentro do registro de imagem de contêiner. Atualmente, o Cache de Artefatos oferece suporte aos seguintes curingas:

Nota

As regras de cache são mapeadas do Repositório de Destino => Repositório de Origem.

Curinga de Nível de Registro

O curinga de nível de registro permite armazenar em cache todos os repositórios de um registro upstream.

Regra de cache Mapeamento Exemplo
contoso.azurecr.io/* => mcr.microsoft.com/* Mapeamento para todas as imagens em ACR para MCR. contoso.azurecr.io/myapp/image1 => mcr.microsoft.com/myapp/image1
contoso.azurecr.io/myapp/image2 => mcr.microsoft.com/myapp/image2

Curinga de nível de repositório

O curinga de nível de repositório permite armazenar em cache todos os repositórios de um mapeamento de registro upstream para o prefixo do repositório.

Regra de cache Mapeamento Exemplo
contoso.azurecr.io/dotnet/* => mcr.microsoft.com/dotnet/* Mapeamento de repositórios específicos em ACR para repositórios correspondentes em MCR. contoso.azurecr.io/dotnet/sdk => mcr.microsoft.com/dotnet/sdk
contoso.azurecr.io/dotnet/runtime => mcr.microsoft.com/dotnet/runtime
contoso.azurecr.io/library/dotnet/* => mcr.microsoft.com/dotnet/*
contoso.azurecr.io/library/python/* => docker.io/library/python/*
Mapeamento de repositórios específicos sob ACR para repositórios de diferentes registros upstream. contoso.azurecr.io/library/dotnet/app1 => mcr.microsoft.com/dotnet/app1
contoso.azurecr.io/library/python/app3 => docker.io/library/python/app3

Limitações para regras de cache baseadas em curinga

As regras de cache curinga usam asteriscos (*) para corresponder a vários caminhos dentro do registro de imagem de contêiner. Essas regras não podem se sobrepor a outras regras de cache curinga. Em outras palavras, se você tiver uma regra de cache curinga para um determinado caminho do Registro, não poderá adicionar outra regra curinga que se sobreponha a ela.

Eis alguns exemplos de sobreposição de regras:

Exemplo 1:

Regra de cache existente: contoso.azurecr.io/* => mcr.microsoft.com/*
Novo cache sendo adicionado: contoso.azurecr.io/library/* => docker.io/library/*

A adição da nova regra de cache é bloqueada porque o caminho contoso.azurecr.io/library/* do repositório de destino se sobrepõe à regra contoso.azurecr.io/*curinga existente.

Exemplo 2:

Regra de cache existente: contoso.azurecr.io/library/* =>mcr.microsoft.com/library/*
Novo cache sendo adicionado: contoso.azurecr.io/library/dotnet/* =>docker.io/library/dotnet/*

A adição da nova regra de cache é bloqueada porque o caminho contoso.azurecr.io/library/dotnet/* do repositório de destino se sobrepõe à regra contoso.azurecr.io/library/*curinga existente.

Limitações para regras de cache estático/fixo

As regras de cache fixo ou estático são mais específicas e não usam curingas. Eles podem se sobrepor a regras de cache baseadas em curinga. Se uma regra de cache especificar um caminho de repositório fixo, ela poderá se sobrepor a uma regra de cache baseada em curinga.

Exemplo 1:

Regra de cache existente: contoso.azurecr.io/* =>mcr.microsoft.com/*
Novo cache sendo adicionado: contoso.azurecr.io/library/dotnet =>docker.io/library/dotnet

A adição da nova regra de cache é permitida porque contoso.azurecr.io/library/dotnet é um caminho estático e pode se sobrepor à regra contoso.azurecr.io/*de cache curinga.

Próximos passos