Melhores práticas do Azure Container Registry

Seguindo essas práticas recomendadas, você pode ajudar a maximizar o desempenho e o uso econômico do seu registro privado no Azure para armazenar e implantar imagens de contêiner e outros artefatos.

Para obter informações básicas sobre conceitos de registro, consulte Sobre registros, repositórios e imagens. Consulte também Recomendações para marcação e controle de versão de imagens de contêiner para estratégias de marcação e versão de imagens em seu registro.

Implementação sem rede

Crie o registo de contentor na mesma região do Azure em que implementa contentores. Colocar o seu registo numa região sem rede para os anfitriões do seu contentor pode ajudar a reduzir a latência e o custo.

A implementação sem rede é uma das principais razões para utilizar um registo de contentor privado. As imagens do Docker têm uma construção em camadas eficiente que permite implementações incrementais. No entanto, os novos nós têm de solicitar todas as camadas necessárias para uma determinada imagem. Este docker pull inicial pode adicionar rapidamente até vários gigabytes. Ter um registo privado próximo à sua implementação minimiza a latência de rede. Além disso, todas as clouds públicas, o Azure incluído, implementam as taxas de saída da rede. Extrair imagens de um datacenter para outro, adiciona taxas de saída da rede além da latência.

Georreplicar implementações em várias regiões

Utilize a funcionalidade de georreplicação do Azure Container Registry, se estiver a implementar contentores em várias regiões. Se estiver a servir clientes globais de datacenters locais ou a sua equipa de desenvolvimento estiver em diferentes localizações, pode simplificar a gestão dos registos e minimizar a latência através da georreplicação do seu registo. Você também pode configurar webhooks regionais para notificá-lo de eventos em réplicas específicas, como quando as imagens são enviadas por push.

A replicação geográfica está disponível com registros Premium . Para saber como utilizar a georreplicação, veja o tutorial de três partes Geo-replication in Azure Container Registry (Georreplicação no Azure Container Registry).

Maximize o desempenho de tração

Além de colocar imagens perto de suas implantações, as características das próprias imagens podem afetar o desempenho de pull.

  • Tamanho da imagem - Minimize o tamanho das suas imagens removendo camadas desnecessárias ou reduzindo o tamanho das camadas. Uma maneira de reduzir o tamanho da imagem é usar a abordagem de compilação do Docker de vários estágios para incluir apenas os componentes de tempo de execução necessários.

    Verifique também se a sua imagem pode incluir uma imagem de base do SO mais leve. E se você usar um ambiente de implantação, como Instâncias de Contêiner do Azure, que armazena em cache determinadas imagens base, verifique se é possível trocar uma camada de imagem por uma das imagens armazenadas em cache.

  • Número de camadas - Equilibre o número de camadas usadas. Se você tiver muito pouco, não se beneficiará da reutilização de camada e do cache no host. Demasiados, e o seu ambiente de implementação passa mais tempo a puxar e a descomprimir. Cinco a 10 camadas é o ideal.

Escolha também uma camada de serviço do Registro de Contêiner do Azure que atenda às suas necessidades de desempenho. A camada Premium fornece a maior largura de banda e a maior taxa de operações simultâneas de leitura e gravação quando você tem implantações de alto volume.

Espaços de nomes do repositório

Usando namespaces de repositório, você pode permitir o compartilhamento de um único registro entre vários grupos dentro da sua organização. Os registos podem ser partilhados em implementações e equipas. O Azure Container Registry suporta espaços de nomes aninhados, ao ativar o isolamento de grupo. No entanto, o registro gerencia todos os repositórios de forma independente, não como uma hierarquia.

Por exemplo, considere as seguintes etiquetas da imagem de contentor. As imagens usadas em toda a empresa, como aspnetcore, são colocadas no namespace raiz, enquanto as imagens de contêiner pertencentes aos grupos Produtos e Marketing usam seus próprios namespaces.

  • contoso.azurecr.io/aspnetcore:2.0
  • contoso.azurecr.io/products/widget/web:1
  • contoso.azurecr.io/products/bettermousetrap/refundapi:12.3
  • contoso.azurecr.io/marketing/2017-fall/concertpromotions/campaign:218.42

Grupo de recursos dedicado

Como os registros de contêiner são recursos usados em vários hosts de contêiner, um registro deve residir em seu próprio grupo de recursos.

Embora você possa experimentar um tipo de host específico, como Instâncias de Contêiner do Azure, provavelmente desejará excluir a instância de contêiner quando terminar. No entanto, também pode manter a coleção de imagens enviadas para o Azure Container Registry. Ao colocar o seu registo no seu próprio grupo de recursos, está a minimizar o risco de eliminar acidentalmente a coleção de imagens no registo, ao eliminar o grupo de recursos de instância do contentor.

Autenticação e autorização

Ao autenticar com um registo de contentor do Azure, existem dois cenários principais: autenticação individual e autenticação de serviço (ou "sem interface"). A tabela seguinte apresenta uma breve descrição geral destes cenários e o método de autenticação recomendado para cada um.

Type Cenário de exemplo Método recomendado
Identidade individual Um programador a extrair imagens ou enviar imagens a partir da respetiva máquina de desenvolvimento. az acr login
Identidade de serviço/sem interface Compile e implemente pipelines onde o utilizador não esteja diretamente envolvido. Principal de serviço

Para obter informações detalhadas sobre esses e outros cenários de autenticação do Registro de Contêiner do Azure, consulte Autenticar com um Registro de contêiner do Azure.

O Registo de Contentores do Azure suporta práticas de segurança na sua organização para distribuir funções e privilégios a identidades diferentes. Usando o controle de acesso baseado em função, atribua permissões apropriadas a diferentes usuários, entidades de serviço ou outras identidades que executam operações de registro diferentes. Por exemplo, atribua permissões por push a uma entidade de serviço usada em um pipeline de compilação e atribua permissões de pull a uma identidade diferente usada para implantação. Crie tokens para acesso refinado e limitado no tempo a repositórios específicos.

Gerir o tamanho do registo

As restrições de armazenamento de cada camada de serviço de registro de contêiner destinam-se a se alinhar a um cenário típico: Básico para introdução, Padrão para a maioria dos aplicativos de produção e Premium para desempenho em hiperescala e replicação geográfica. Ao longo da vida do registo, deve gerir o tamanho eliminando periodicamente o conteúdo não utilizado.

Use o comando az acr show-usage da CLI do Azure para exibir o consumo atual de armazenamento e outros recursos em seu registro:

az acr show-usage --resource-group myResourceGroup --name myregistry --output table

Saída de exemplo:

NAME                        LIMIT         CURRENT VALUE    UNIT
--------------------------  ------------  ---------------  ------
Size                        536870912000  215629144        Bytes
Webhooks                    500           1                Count
Geo-replications            -1            3                Count
IPRules                     100           1                Count
VNetRules                   100           0                Count
PrivateEndpointConnections  10            0                Count

Você também pode encontrar o uso atual do armazenamento na Visão geral do seu registro no portal do Azure:

Informações de utilização do registo no portal do Azure

Nota

Em um registro replicado geograficamente , o uso do armazenamento é mostrado para a região inicial. Multiplique pelo número de replicações para o armazenamento total do Registro consumido.

Excluir dados de imagem

O Registro de Contêiner do Azure dá suporte a vários métodos para excluir dados de imagem do seu Registro de contêiner. Você pode excluir imagens por tag ou resumo de manifesto, ou excluir um repositório inteiro.

Para obter detalhes sobre como excluir dados de imagem do seu Registro, incluindo imagens não marcadas (às vezes chamadas de "penduradas" ou "órfãs"), consulte Excluir imagens de contêiner no Registro de Contêiner do Azure. Você também pode definir uma política de retenção para manifestos não marcados.

Próximos passos

O Registro de Contêiner do Azure está disponível em várias camadas (também chamadas de SKUs) que fornecem recursos diferentes. Para obter detalhes sobre as camadas de serviço disponíveis, consulte Camadas de serviço do Registro de Contêiner do Azure.

Para obter recomendações para melhorar a postura de segurança de seus registros de contêiner, consulte Linha de base de segurança do Azure para o Registro de contêiner do Azure.