Partilhar via


Cache de artefactos no Registo de Contentores do Azure

O recurso de 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.

O cache de artefatos aprimora o gerenciamento de imagens de contêiner fornecendo uma solução de cache para repositórios públicos e privados.

O cache de artefatos oferece operações de pull mais rápidas e confiáveis por meio do Azure Container Registry (ACR), utilizando recursos como suporte à Replicação Geográfica e à Zona de Disponibilidade para maior disponibilidade e velocidade de extração de imagens.

O cache de artefatos permite que os registros armazenados em cache sejam acessíveis em redes privadas para que os usuários se alinhem perfeitamente com as configurações de firewall e os padrões de conformidade.

O cache de artefatos aborda o desafio dos limites de atração impostos pelos registros públicos. Recomendamos que os usuários autentiquem suas regras de cache com suas credenciais de origem upstream. Em seguida, extraia imagens do ACR local para ajudar a reduzir os limites de taxa.

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:

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

      • Source - O nome do Registro de origem.

      • 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.

      • 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

      • Credenciais - O nome das suas credenciais.

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

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

      • 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 1.000 regras de cache.

Suporte upstream

Atualmente, o cache de artefatos oferece suporte aos seguintes registros upstream:

Aviso

Os clientes devem gerar o conjunto de credenciais para o conteúdo de origem do hub do Docker.

Registos a montante Suporte Disponibilidade
Docker Hub Suporta apenas pulls autenticados. CLI do Azure, portal do Azure
Registro de Artefato da Microsoft Suporta apenas pulls não autenticados. CLI do Azure, portal do Azure
Galeria pública do AWS Elastic Container Registry (ECR) Suporta apenas pulls não autenticados. CLI do Azure, portal do Azure
Registro de contêiner do GitHub Suporta pulls autenticados e não autenticados. CLI do Azure, portal do Azure
Cais Suporta pulls autenticados e não autenticados. CLI do Azure, portal do Azure
registry.k8s.io Suporta pulls autenticados e não autenticados. CLI do Azure
Registro de contêiner do Google Suporta pulls autenticados e 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 permitirá a sobreposição com 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.

Habilitar cache de artefatos - CLI do Azure

Você pode habilitar o cache de Artefatos em seu Registro de Contêiner do Azure com ou sem autenticação usando a CLI do Azure seguindo as etapas.

Pré-requisitos

Configure e crie uma regra de cache sem as credenciais.

  1. Execute o comando az acr Cache create para criar uma regra de cache.

    • Por exemplo, para criar uma regra de Cache sem as credenciais de um determinado MyRegistry Registro de Contêiner do Azure.
    az acr Cache create -r MyRegistry -n MyRule -s docker.io/library/ubuntu -t ubuntu-
    
  2. Execute o comando az acr Cache show para mostrar uma regra de cache.

    • Por exemplo, para mostrar uma regra de Cache para um determinado MyRegistry Registro de Contêiner do Azure.
     az acr Cache show -r MyRegistry -n MyRule
    

Criar as credenciais

Antes de configurar as Credenciais, você precisa criar e armazenar segredos no Azure KeyVault e recuperar os segredos do Cofre da Chave. Saiba mais sobre como criar e armazenar credenciais em um Cofre de Chaves. E para definir e recuperar um segredo do Cofre da Chave..

  1. Execute o comando az acr credential set create para criar as credenciais.

    • Por exemplo, Para criar as credenciais para um determinado MyRegistry Registro de Contêiner do Azure.
    az acr credential-set create 
    -r MyRegistry \
    -n MyDockerHubCredSet \
    -l docker.io \ 
    -u https://MyKeyvault.vault.azure.net/secrets/usernamesecret \
    -p https://MyKeyvault.vault.azure.net/secrets/passwordsecret
    
  2. Execute az acr credential set update para atualizar o nome de usuário ou senha KV secret ID em um conjunto de credenciais.

    • Por exemplo, para atualizar o nome de usuário ou a senha, a ID secreta do KV nas credenciais de um determinado MyRegistry Registro de Contêiner do Azure.
    az acr credential-set update -r MyRegistry -n MyDockerHubCredSet -p https://MyKeyvault.vault.azure.net/secrets/newsecretname
    
  3. Execute az acr credential-set show para mostrar as credenciais.

    • Por exemplo, para mostrar um conjunto de credenciais em um determinado MyRegistry Registro de Contêiner do Azure.
    az acr credential-set show -r MyRegistry -n MyDockerHubCredSet
    

Configurar e criar uma regra de cache com as credenciais

  1. Execute o comando az acr cache create para criar uma regra de cache.

    • Por exemplo, para criar uma regra de cache com as credenciais de um determinado MyRegistry Registro de Contêiner do Azure.
    az acr cache create -r MyRegistry -n MyRule -s docker.io/library/ubuntu -t ubuntu -c MyDockerHubCredSet
    
  2. Execute o comando az acr cache update para atualizar as credenciais em uma regra de cache.

    • Por exemplo, para atualizar as credenciais em uma regra de cache para um determinado MyRegistry Registro de Contêiner do Azure.
    az acr cache update -r MyRegistry -n MyRule -c NewCredSet
    
    • Por exemplo, para remover as credenciais de uma regra de cache existente para um determinado MyRegistry Registro de Contêiner do Azure.
    az acr cache update -r MyRegistry -n MyRule --remove-cred-set
    
  3. Execute o comando az acr cache show para mostrar uma regra de cache.

    • Por exemplo, para mostrar uma regra de cache para um determinado MyRegistry Registro de Contêiner do Azure.
     az acr cache show -r MyRegistry -n MyRule
    

Atribuir permissões ao Cofre da Chave usando políticas de acesso (Legado)

  1. Obtenha o ID principal da identidade do sistema em uso para acessar o Cofre da Chave.

    PRINCIPAL_ID=$(az acr credential-set show 
                    -n MyDockerHubCredSet \ 
                    -r MyRegistry  \
                    --query 'identity.principalId' \ 
                    -o tsv) 
    
  2. Execute o comando az keyvault set-policy para atribuir acesso ao Cofre da Chave, antes de extrair a imagem.

    • Por exemplo, para atribuir permissões para as credenciais, acesse o segredo do KeyVault
    az keyvault set-policy --name MyKeyVault \
    --object-id $PRINCIPAL_ID \
    --secret-permissions get
    

Puxe a sua imagem

  1. Puxe a imagem do cache usando o comando Docker pelo nome do servidor de login do registro, nome do repositório e a tag desejada.

    • Por exemplo, para extrair a imagem do repositório hello-world com a tag latest desejada para um determinado servidor myregistry.azurecr.iode login do registro.
     docker pull myregistry.azurecr.io/hello-world:latest
    

Limpar os recursos

  1. Execute o comando az acr cache list para listar as regras de cache no Registro de Contêiner do Azure.

    • Por exemplo, para listar as regras de cache para um determinado MyRegistry Registro de Contêiner do Azure.
     az acr cache list -r MyRegistry
    
  2. Execute o comando az acr cache delete para excluir uma regra de cache.

    • Por exemplo, para excluir uma regra de cache para um determinado MyRegistry Registro de Contêiner do Azure.
    az acr cache delete -r MyRegistry -n MyRule
    
  3. Executeaz acr credential set list para listar a credencial em um Registro de Contêiner do Azure.

    • Por exemplo, para listar as credenciais de um determinado MyRegistry Registro de Contêiner do Azure.
    az acr credential-set list -r MyRegistry
    
  4. Execute az acr credential-set delete para excluir as credenciais.

    • Por exemplo, para excluir as credenciais de um determinado MyRegistry Registro de Contêiner do Azure.
    az acr credential-set delete -r MyRegistry -n MyDockerHubCredSet
    

Habilitar cache de artefatos - Portal do Azure

Você pode habilitar o cache de Artefatos em seu Registro de Contêiner do Azure com ou sem autenticação usando o portal do Azure seguindo as etapas.

Pré-requisitos

Configurar cache de artefatos sem credenciais

Siga as etapas para criar uma regra de cache no portal do Azure.

  1. Navegue até o Registro de Contêiner do Azure.

  2. No menu lateral, em Serviços, selecione Cache.

    Captura de ecrã para a cache do Registo no portal do Azure.

  3. Selecione Criar regra.

    Captura de ecrã para Criar Regra no portal do Azure.

  4. É apresentada uma janela para Nova regra de cache.

    Captura de ecrã para a nova Regra de Cache no portal do Azure.

  5. Insira o nome da regra.

  6. Selecione Registro de origem no menu suspenso.

  7. Insira o caminho do repositório para os artefatos que você deseja armazenar em cache.

  8. Você pode ignorar a Autenticação, se não estiver acessando um repositório privado ou executando um pull autenticado.

  9. Em Destino, digite o nome do novo namespace do repositório ACR para armazenar artefatos armazenados em cache.

    Captura de ecrã para guardar a Regra de Cache no portal do Azure.

  10. Selecione Salvar.

  11. Puxe a imagem do cache usando o comando Docker pelo nome do servidor de login do registro, nome do repositório e a tag desejada.

    • Por exemplo, para extrair a imagem do repositório hello-world com a tag latest desejada para um determinado servidor myregistry.azurecr.iode login do registro.
     docker pull myregistry.azurecr.io/hello-world:latest
    

Configurar cache de artefatos com autenticação

Siga as etapas para criar uma regra de cache no portal do Azure.

  1. Navegue até o Registro de Contêiner do Azure.

  2. No menu lateral, em Serviços, selecione Cache.

    Captura de ecrã para a cache do Registo no portal do Azure.

  3. Selecione Criar regra.

    Captura de ecrã para Criar Regra no portal do Azure.

  4. É apresentada uma janela para Nova regra de cache.

    Captura de ecrã para a nova Regra de Cache com autenticação no portal do Azure.

  5. Insira o nome da regra.

  6. Selecione Registro de origem no menu suspenso.

  7. Insira o caminho do repositório para os artefatos que você deseja armazenar em cache.

  8. Para adicionar autenticação ao repositório, marque a caixa Autenticação .

  9. Escolha Criar novas credenciais para criar um novo conjunto de credenciais para armazenar o nome de usuário e a senha do registro de origem. Saiba como criar novas credenciais.

  10. Se você tiver as credenciais prontas, selecione as credenciais no menu suspenso.

  11. Em Destino, digite o nome do novo namespace do repositório ACR para armazenar artefatos armazenados em cache.

    Captura de ecrã para guardar a Regra de Cache no portal do Azure.

  12. Selecione Salvar.

  13. Puxe a imagem do cache usando o comando Docker pelo nome do servidor de login do registro, nome do repositório e a tag desejada.

    • Por exemplo, para extrair a imagem do repositório hello-world com a tag latest desejada para um determinado servidor myregistry.azurecr.iode login do registro.
     docker pull myregistry.azurecr.io/hello-world:latest
    

Criar novas credenciais

Antes de configurar as Credenciais, você precisa criar e armazenar segredos no Azure KeyVault e recuperar os segredos do Cofre da Chave. Saiba mais sobre como criar e armazenar credenciais em um Cofre de Chaves. E para definir e recuperar um segredo do Cofre da Chave..

  1. Navegue até Credenciais>Criar credenciais.

    Captura de ecrã para adicionar credenciais no portal do Azure.

    Captura de ecrã para criar novas credenciais no portal do Azure.

  2. Insira Nome para as novas credenciais do seu registro de origem.

  3. Selecione uma autenticação de origem. Atualmente, o cache de artefatos suporta Selecionar do Cofre de Chaves e Inserir URIs secretos.

  4. Para a opção Selecionar do Cofre da Chave, Saiba mais sobre como criar credenciais usando o Cofre de Chaves.

  5. Selecione em Criar.

Próximos passos

  • Avance para o próximo artigo para percorrer o guia de solução de problemas do Cache do Registro.