Partilhar via


Melhores práticas do Azure Container Registry

Ao seguir estas melhores práticas, pode ajudar a maximizar o desempenho e a utilização económica do seu registo privado no Azure para armazenar e implementar imagens de contentor e outros artefactos.

Para obter informações sobre conceitos de registo, veja Acerca de registos, repositórios e imagens. Veja também Recomendações para etiquetar e controlo de versões de imagens de contentor para estratégias de etiquetagem e imagens de versão no seu registo.

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. Também pode configurar webhooks regionais para notificá-lo de eventos em réplicas específicas, como quando as imagens são enviadas.

A georreplicação está disponível com registos 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).

Maximizar o desempenho de solicitação

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

  • Tamanho da imagem – minimize os tamanhos das suas imagens ao remover camadas desnecessárias ou ao reduzir o tamanho das camadas. Uma forma de reduzir o tamanho da imagem é utilizar a abordagem de compilação do Docker em várias fases para incluir apenas os componentes de runtime necessários.

    Verifique também se a sua imagem pode incluir uma imagem de SO base mais leve. Se utilizar um ambiente de implementação, como Azure Container Instances que coloca em cache determinadas imagens de base, verifique se pode trocar uma camada de imagem por uma das imagens em cache.

  • Número de camadas – balancee o número de camadas utilizadas. Se tiver poucos, não beneficiará da reutilização da camada e da colocação em cache no anfitrião. Demasiados e o seu ambiente de implementação passa mais tempo a solicitar e a descomprimir. Cinco a 10 camadas é ideal.

Escolha também um escalão de serviço de Azure Container Registry que satisfaça as suas necessidades de desempenho. O escalão Premium fornece a maior largura de banda e a taxa mais elevada de operações simultâneas de leitura e escrita quando tem implementações de grande volume.

Espaços de nomes do repositório

Ao utilizar espaços de nomes de repositórios, pode permitir a partilha de um único registo em vários grupos na 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 registo gere todos os repositórios de forma independente e não como uma hierarquia.

Por exemplo, considere as seguintes etiquetas da imagem de contentor. As imagens que são utilizadas em toda a empresa, como aspnetcore, são colocadas no espaço de nomes de raiz, enquanto as imagens de contentor pertencentes aos grupos Produtos e Marketing utilizam cada um os seus próprios espaços de nomes.

  • 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

Uma vez que os registos de contentores são recursos que são utilizados em vários anfitriões de contentores, um registo deve residir no seu próprio grupo de recursos.

Embora possa experimentar um tipo de anfitrião específico, como Azure Container Instances, é provável que queira eliminar a instância do contentor 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.

Tipo 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. Service principal (Principal de serviço)

Para obter informações aprofundadas sobre estes e outros cenários de autenticação Azure Container Registry, veja Autenticar com um registo de contentor do Azure.

Azure Container Registry suporta práticas de segurança na sua organização para distribuir deveres e privilégios por diferentes identidades. Ao utilizar o controlo de acesso baseado em funções, atribua permissões adequadas a diferentes utilizadores, principais de serviço ou outras identidades que efetuem diferentes operações de registo. Por exemplo, atribua permissões push a um principal de serviço utilizado num pipeline de compilação e atribua permissões pull a uma identidade diferente utilizada para implementação. Crie tokens para acesso detalhado e limitado ao tempo a repositórios específicos.

Gerir o tamanho do registo

As restrições de armazenamento de cada escalão de serviço de registo de contentor destinam-se a alinhar-se com um cenário típico: Básico para começar, Standard para a maioria das aplicações de produção e Premium para desempenho e georreplicação de hiperescamas. Ao longo da vida do registo, deve gerir o tamanho eliminando periodicamente o conteúdo não utilizado.

Utilize o comando da CLI do Azure az acr show-usage para apresentar o consumo atual de armazenamento e outros recursos no seu registo:

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

Resultado do 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

Também pode encontrar a utilização atual do armazenamento na Descrição Geral do seu registo no portal do Azure:

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

Nota

Num registo georreplicado , a utilização do armazenamento é apresentada para a região principal. Multiplique pelo número de replicaçãos para o armazenamento total do registo consumido.

Eliminar dados de imagem

Azure Container Registry suporta vários métodos para eliminar dados de imagem do seu registo de contentor. Pode eliminar imagens por resumo de etiquetas ou manifestos ou eliminar um repositório inteiro.

Para obter detalhes sobre a eliminação de dados de imagem do seu registo, incluindo imagens não agendadas (por vezes denominadas "pendentes" ou "órfãs"), consulte Eliminar imagens de contentor no Azure Container Registry. Também pode definir uma política de retenção para manifestos não marcados.

Passos seguintes

Azure Container Registry está disponível em várias camadas (também denominadas SKUs) que fornecem diferentes capacidades. Para obter detalhes sobre os escalões de serviço disponíveis, veja Azure Container Registry escalões de serviço.

Para obter recomendações para melhorar a postura de segurança dos registos de contentores, veja Linha de Base de Segurança do Azure para Azure Container Registry.