Esta página foi traduzida pela API Cloud Translation.
Switch to English

Como fazer a transição para repositórios do Artifact Registry

Se você usa o Container Registry atualmente para gerenciar suas imagens de contêiner, esta página explica como configurar um repositório do Artifact Registry e como usar repositórios diferentes do uso do Container Registry.

Estas instruções são principalmente para administradores de repositório. Para saber como a criação, o envio, o pull e a implantação de imagens foram alteradas, consulte as seguintes informações:

Visão geral

Para simplificar, as instruções nesta página presumem que o Container Registry e o Artifact Registry estão no mesmo projeto do Google Cloud. É possível continuar nos dois serviços durante a transição para o Artifact Registry, de modo que seja possível executar gradualmente as etapas de configuração e atualizar sua automação.

Se necessário, configure o Artifact Registry em um projeto separado e execute as mesmas etapas gerais.

Etapas da transição

Neste guia, você verá como concluir as etapas a seguir:

  1. Saiba mais sobre os preços do Artifact Registry antes de iniciar a transição.
  2. Ative a API do Artifact Registry.
  3. Atualize o SDK do Cloud e saiba mais sobre os novos comandos gcloud. Opcionalmente, configure padrões para comandos gcloud.
  4. Crie um repositório do Docker para seus contêineres. É preciso criar um repositório antes de enviar imagens para ele.
  5. Conceda permissões ao repositório.
  6. Configure a autenticação para se conectar ao novo repositório.
  7. Se necessário, copie as imagens do Container Registry que você quer usar no novo repositório.
  8. Tente enviar e extrair seus contêineres.
  9. Tente implantar as imagens em um ambiente de execução.
  10. Configure recursos adicionais.
  11. Limpe as imagens no Container Registry quando a transição for concluída.

Ativar serviço

Para usar o Artifact Registry, ative a API do Artifact Registry no Console do Cloud ou com o comando:

gcloud services enable artifactregistry.googleapis.com

Atualizar e configurar o SDK do Cloud

O Container Registry usa comandos gcloud container images.

O Artifact Registry usa comandos gcloud artifacts para imagens.

  1. Instale o SDK do Cloud, se ele ainda não estiver instalado.

  2. Atualize os componentes da gcloud.

    gcloud components update
    

gcloud command comparison

A tabela a seguir resume os comandos do Container Registry e os comandos equivalentes do Artifact Registry na ferramenta gcloud. Clique em um link na tabela para visualizar a página de referência do comando.

A tabela não inclui todos os comandos do Artifact Registry disponíveis que não têm equivalente no Container Registry. Consulte a documentação do gcloud artifacts para ver a referência completa do comando Artifact Registry.

Operação Container Registry Artifact Registry
Crie um repositório Não relevante. gcloud artifacts repositories create
Excluir um repositório. Não relevante. gcloud artifacts repositories delete
Listar imagens gcloud container images list gcloud artifacts docker images list
Listar tags gcloud container images list-tags gcloud artifacts docker tags list
Adicionar uma tag gcloud container images add-tag gcloud artifacts docker tags add
Excluir uma tag gcloud container images untag gcloud artifacts docker tags delete
Descrever imagens gcloud container images describe gcloud artifacts docker image list --include-tags

Criar repositórios

O Container Registry cria automaticamente um bucket de armazenamento em uma multirregião, se você já não tiver enviado uma imagem para a multirregião.

No Artifact Registry, é preciso criar um repositório antes de fazer upload de imagens. Ao criar um repositório, você precisa especificar:

  • O formato do repositório. O Artifact Registry armazena contêineres em repositórios do Docker.
  • Um local regional ou multirregional para o repositório.

    Ao escolher um local para os repositórios do Artifact Registry, considere a proximidade deles à outra infraestrutura e seus usuários. Se você pretende copiar imagens do Container Registry para o Artifact Registry, as diferenças no local podem afetar o custo da cópia.

  • Uma chave do Cloud Key Management Service, se você estiver usando chaves de criptografia gerenciadas pelo cliente (CMEK, na sigla em inglês) para criptografia.

    No Container Registry, configure o bucket de armazenamento do Container Registry para usar CMEK. No Artifact Registry, você configura repositórios para usar CMEK ao criá-los. Para mais informações sobre o uso de CMEK com o Artifact Registry, consulte Como ativar chaves de criptografia gerenciadas pelo cliente.

O Container Registry hospeda contêineres no domínio gcr.io. O Artifact Registry hospeda contêineres no domínio pkg.dev.

Para informações sobre como criar repositórios, incluindo repositórios que usam CMEK para criptografia, consulte Como criar repositórios.

Conceder permissões

No Container Registry, o controle de acesso é baseado em papéis e permissões do Cloud Storage. Se você não quiser conceder um papel em todo o projeto, conceda permissões no bucket de armazenamento específico que o Container Registry usa.

O Artifact Registry tem seus próprios papéis do IAM. É possível conceder papéis no nível do projeto ou definir permissões em repositórios individuais. Use vários repositórios do Docker em combinação com permissões específicas do repositório para controlar o acesso a diferentes tipos de artefatos. Por exemplo, é possível colocar controles mais rígidos em um repositório de produção ou conceder acesso a repositórios específicos da equipe com base na assinatura.

As contas de serviço dos serviços de CI/CD do Google Cloud são pré-configuradas com acesso a repositórios no mesmo projeto. Se você usa um serviço do Google Cloud em um projeto diferente ou uma ferramenta de terceiros para enviar ou extrair imagens, é necessário configurar as permissões apropriadas manualmente.

Para instruções sobre como conceder permissões, consulte Como conceder permissões.

Autenticar no repositório

O Artifact Registry é compatível com os mesmos métodos de autenticação do Container Registry.

Se estiver usando o auxiliar de credenciais do Docker:

  • Você precisa usar a versão 2.0 ou posterior para interagir com os repositórios do Artifact Registry. A versão independente está disponível no GitHub.
  • Configure o auxiliar de credenciais com os locais do Artifact Registry que você pretende usar. Por padrão, o auxiliar de credenciais só configura o acesso aos hosts do Container Registry.

Para detalhes sobre como configurar a autenticação, consulte Como configurar a autenticação para o Docker.

Copiar contêineres do Container Registry

Se houver contêineres do Container Registry que você quer continuar usando no Artifact Registry, há várias opções para copiá-los. Para instruções detalhadas, consulte Como copiar imagens do Container Registry.

Enviar e extrair imagens

Os comandos do Docker que você usa para marcar, enviar e extrair imagens no Artifact Registry são semelhantes aos usados no Container Registry. Há duas diferenças principais:

  • O nome do host para os repositórios do Docker do Artifact Registry incluem um prefixo de local seguido por -docker.pkg.dev. Os exemplos incluem australia-southeast1-docker.pkg.dev, europe-north1-docker.pkg.dev e europe-docker.pkg.dev.
  • Como o Artifact Registry é compatível com vários repositórios do Docker em um único projeto, você precisa especificar o nome do repositório nos comandos.

Por exemplo, no Container Registry, esse comando envia a imagem my-image para o registro eu.gcr.io no projeto my-project.

docker push eu.gcr.io/my-project/my-image

No Artifact Registry, esse comando envia a imagem my-image para o repositório regional europe-north1-docker.pkg.dev no repositório my-repo e no projeto my-project.

docker push europe-north1-docker.pkg.dev/my-project/my-repo/my-image

Para detalhes sobre como enviar e extrair imagens no Artifact Registry, consulte Como enviar e extrair imagens.

Implantar imagens

As contas de serviço para integrações comuns do Google Cloud são configuradas para funcionar com repositórios do Artifact Registry por padrão.

Criar imagens e enviá-las a um repositório com o Cloud Build geralmente funciona da mesma maneira que o Container Registry. A principal diferença no Artifact Registry é que precisa existir um repositório de destino antes de enviar imagens para ele, incluindo a primeira imagem a ser enviada.

Certifique-se de criar os repositórios necessários antes de executar comandos que enviam imagens, incluindo o comando docker push do Docker e o comando gcloud builds submit do Cloud Build.

Os builders do Cloud Build ainda estão hospedados em gcr.io. Para mais informações, consulte Como integrar com o Cloud Build.

Outros recursos

Nesta seção, descrevemos a configuração de outros recursos que você pode ter configurado no Container Registry.

Análise de contêiner

O Container Analysis é compatível com Container Registry e Artifact Registry. A documentação do Container Analysis inclui os dois produtos.

  • Os dois produtos usam as mesmas APIs do Container Analysis. Ao ativar as APIs do Container Analysis no Container Registry ou no Artifact Registry, as APIs são ativadas para os dois produtos.
  • Os dois produtos usam os mesmos tópicos Pub/Sub para notificações do Container Analysis. As assinaturas atuais incluirão notificações para o Artifact Registry e o Container Registry.
  • Os comandos do SDK do Cloud para trabalhar com notas e ocorrências estão no grupo gcloud artifact docker.

Notificações do Pub/Sub

O Artifact Registry publica alterações no mesmo tópico gcr do Container Registry. Nenhuma outra configuração é necessária se você já usa o Pub/Sub com o Container Registry no mesmo projeto que o Artifact Registry.

Se você configurar o Artifact Registry em um projeto separado, o tópico gcr poderá não existir. Para instruções de configuração, consulte Como configurar notificações do Pub/Sub.

Perímetros de serviço

Com VPC Service Controls, é possível configurar os perímetros de segurança em torno dos recursos dos serviços gerenciados pelo Google e controlar a movimentação de dados por todo o limite do perímetro.

Para mais instruções, consulte Como proteger repositórios em um perímetro de serviço.

Limpar imagens do Container Registry

Quando você estiver pronto para interromper o uso do Container Registry, execute as seguintes etapas:

  1. Exclua as imagens restantes no Container Registry.
  2. Desative a API Container Registry.

A seguir