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
- Você pode usar o Azure Cloud Shell ou uma instalação local da CLI do Azure para executar os exemplos de comando neste artigo. Se você quiser usá-lo localmente, a versão 2.46.0 ou posterior é necessária. Execute
az --version
para encontrar a versão. Se precisar de instalar ou atualizar, veja Install Azure CLI (Instalar o Azure CLI). - Você tem um Cofre de Chaves existente para armazenar as credenciais. Saiba mais sobre como criar e armazenar credenciais em um Cofre de Chaves.
- Você pode definir e recuperar segredos do seu Cofre de Chaves. Saiba mais sobre como definir e recuperar um segredo do Cofre de Chaves.
Configure e crie uma regra de cache sem as credenciais.
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-
- Por exemplo, para criar uma regra de Cache sem as credenciais de um determinado
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
- Por exemplo, para mostrar uma regra de Cache para um determinado
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..
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
- Por exemplo, Para criar as credenciais para um determinado
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
- Por exemplo, para atualizar o nome de usuário ou a senha, a ID secreta do KV nas credenciais de um determinado
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
- Por exemplo, para mostrar um conjunto de credenciais em um determinado
Configurar e criar uma regra de cache com as credenciais
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
- Por exemplo, para criar uma regra de cache com as credenciais de um determinado
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
- Por exemplo, para atualizar as credenciais em uma regra de cache para um determinado
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
- Por exemplo, para mostrar uma regra de cache para um determinado
Atribuir permissões ao Cofre da Chave usando políticas de acesso (Legado)
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)
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
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 taglatest
desejada para um determinado servidormyregistry.azurecr.io
de login do registro.
docker pull myregistry.azurecr.io/hello-world:latest
- Por exemplo, para extrair a imagem do repositório
Limpar os recursos
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
- Por exemplo, para listar as regras de cache para um determinado
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
- Por exemplo, para excluir uma regra de cache para um determinado
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
- Por exemplo, para listar as credenciais de um determinado
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
- Por exemplo, para excluir as credenciais de um determinado
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
- Inicie sessão no portal do Azure
- Você tem um Cofre de Chaves existente para armazenar credenciais. Saiba mais sobre como criar e armazenar credenciais em um Cofre de Chaves.
- Você tem os cofres de chave existentes sem os controles RBAC (acesso baseado em função).
Configurar cache de artefatos sem credenciais
Siga as etapas para criar uma regra de cache no portal do Azure.
Navegue até o Registro de Contêiner do Azure.
No menu lateral, em Serviços, selecione Cache.
Selecione Criar regra.
É apresentada uma janela para Nova regra de cache.
Insira o nome da regra.
Selecione Registro de origem no menu suspenso.
Insira o caminho do repositório para os artefatos que você deseja armazenar em cache.
Você pode ignorar a Autenticação, se não estiver acessando um repositório privado ou executando um pull autenticado.
Em Destino, digite o nome do novo namespace do repositório ACR para armazenar artefatos armazenados em cache.
Selecione Salvar.
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 taglatest
desejada para um determinado servidormyregistry.azurecr.io
de login do registro.
docker pull myregistry.azurecr.io/hello-world:latest
- Por exemplo, para extrair a imagem do repositório
Configurar cache de artefatos com autenticação
Siga as etapas para criar uma regra de cache no portal do Azure.
Navegue até o Registro de Contêiner do Azure.
No menu lateral, em Serviços, selecione Cache.
Selecione Criar regra.
É apresentada uma janela para Nova regra de cache.
Insira o nome da regra.
Selecione Registro de origem no menu suspenso.
Insira o caminho do repositório para os artefatos que você deseja armazenar em cache.
Para adicionar autenticação ao repositório, marque a caixa Autenticação .
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.
Se você tiver as credenciais prontas, selecione as credenciais no menu suspenso.
Em Destino, digite o nome do novo namespace do repositório ACR para armazenar artefatos armazenados em cache.
Selecione Salvar.
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 taglatest
desejada para um determinado servidormyregistry.azurecr.io
de login do registro.
docker pull myregistry.azurecr.io/hello-world:latest
- Por exemplo, para extrair a imagem do repositório
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..
Navegue até Credenciais>Criar credenciais.
Insira Nome para as novas credenciais do seu registro de origem.
Selecione uma autenticação de origem. Atualmente, o cache de artefatos suporta Selecionar do Cofre de Chaves e Inserir URIs secretos.
Para a opção Selecionar do Cofre da Chave, Saiba mais sobre como criar credenciais usando o Cofre de Chaves.
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.