Migrar automaticamente do Container Registry para o Artifact Registry

Usar a ferramenta de migração automática para fazer a transição do Container Registry para o Repositórios gcr.io hospedados no Artifact Registry ou no Artifact Registry padrão repositórios.

A ferramenta de migração automática pode realizar as ações a seguir, dependendo da o caminho de transição escolhido:

  • Criar repositórios gcr.io ou repositórios padrão no Artifact Registry para cada um dos projetos gcr.io listados na região correspondente.
  • Sugira uma política do IAM para cada repositório e aplique a política ou pular a aplicação dependendo da preferência do usuário.
  • Redirecionar todo o tráfego dos endpoints gcr.io para o Artifact Registry.
  • Copiar todas as imagens de contêiner armazenadas no Container Registry para o Artifact Registry repositórios gcr.io ou repositórios padrão, mesmo que você já tenha ativado redirecionamento.

Antes de começar

  1. Instale a CLI do Google Cloud.
  2. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  3. Escolha uma opção de transição.
    • Ao fazer a transição para repositórios gcr.io hospedados no Artifact Registry, ativar a API Artifact Registry nos projetos do Container Registry que você quer migram. A ferramenta também vai solicitar que você ative a API Artifact Registry se pule esta etapa.

      Ative a API Artifact Registry.

      Ative a API

    • Se você estiver fazendo a transição para repositórios padrão do Artifact Registry, ative a API Artifact Registry no projeto que será migrado imagens de contêiner do Container Registry. É possível usar o mesmo projeto o Container Registry está ativado ou um projeto diferente.

      Ative a API Artifact Registry.

      Ative a API

Funções exigidas

Os papéis a seguir são necessários para todas as opções de transição que usam o ferramenta de migração.

Papéis exigidos pela conta de serviço do Artifact Registry:

Para garantir que a conta de serviço do Artifact Registry tenha as permissões para copiar imagens do Container Registry para o Artifact Registry; peça ao administrador para conceder à conta de serviço do Artifact Registry o Papel do IAM Leitor de objetos do Storage (roles/storage.objectViewer) no projeto do Container Registry. Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.

Talvez o administrador também consiga conceder à conta de serviço do Artifact Registry as permissões necessárias por meio de tags personalizadas ou outras funções predefinidas de rede.

Papéis necessários para gerar recomendações do IAM:

Para ter as permissões necessárias para analisar uma política de permissão, peça ao administrador para conceder a você seguintes papéis do IAM nos projetos do Container Registry que você quer migrar:

Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.

Esses papéis predefinidos têm as permissões necessárias para analisar uma política de permissão. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As seguintes permissões são necessárias para analisar uma política de permissão:

  • cloudasset.assets.analyzeIamPolicy
  • cloudasset.assets.searchAllResources
  • cloudasset.assets.searchAllIamPolicies
  • Para analisar políticas com papéis personalizados do IAM: iam.roles.get
  • Para usar a Google Cloud CLI para analisar políticas: serviceusage.services.use

Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.

Os papéis a seguir são concedidos a recursos diferentes, dependendo da sua opção de transição.

Repositórios gcr.io

Para receber as permissões necessárias para fazer a transição para repositórios gcr.io hospedados no Artifact Registry, peça ao administrador para conceder a você os seguintes papéis do IAM:

  • Crie repositórios do Artifact Registry e conceda acesso a repositórios individuais: Administrador do Artifact Registry (roles/artifactregistry.admin) no projeto do Google Cloud que contém as imagens do Container Registry
  • Veja e gerencie as configurações atuais do Container Registry aplicadas aos buckets de armazenamento do Cloud Storage: Administrador do Storage (roles/storage.admin) no projeto do Google Cloud que contém as imagens do Container Registry

Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.

Também é possível conseguir as permissões necessárias com papéis personalizados ou outros papéis predefinidos.

repositórios padrão

Para receber as permissões necessárias para fazer a transição para os repositórios padrão do Artifact Registry, peça ao administrador para conceder a você os seguintes papéis do IAM:

  • Crie repositórios do Artifact Registry e conceda acesso a repositórios individuais: Administrador do Artifact Registry (roles/artifactregistry.admin) no projeto do Google Cloud em que a API Artifact Registry está ativada
  • Veja e gerencie as configurações atuais do Container Registry aplicadas aos buckets de armazenamento do Cloud Storage: Administrador do Storage (roles/storage.admin) no projeto do Google Cloud que contém as imagens do Container Registry

Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.

Também é possível conseguir as permissões necessárias com papéis personalizados ou outros papéis predefinidos.

Migrar para repositórios gcr.io hospedados no Artifact Registry

É possível migrar um ou vários projetos do Google Cloud ao mesmo tempo, usando gcloud artifacts docker upgrade migrate. kubectl.

Para migrar para repositórios gcr.io, execute o seguinte comando.

gcloud artifacts docker upgrade migrate \
    --projects=PROJECTS

Em que PROJECTS é o ID do projeto de um único projeto que você quer migrar para repositórios gcr.io hospedados no Artifact Registry ou separados por vírgula lista de IDs de projeto que você quer migrar para os repositórios gcr.io hospedados em o Artifact Registry.

A ferramenta de migração conclui as seguintes etapas:

  • Cria repositórios gcr.io no Artifact Registry para cada um seus projetos gcr.io listados na região correspondente.
  • sugere uma política do IAM para cada repositório e aplica a ou ignora o aplicativo dependendo da preferência do usuário.
  • Redireciona todo o tráfego do endpoint gcr.io para o Artifact Registry. O Artifact Registry exibe temporariamente imagens ausentes copiando elas de Container Registry no momento da solicitação, até que todas as imagens do contêiner sejam copiadas o Artifact Registry.
  • Copia todas as imagens de contêiner armazenadas nos buckets gcr.io para os arquivos recém-criados Repositórios gcr.io hospedados no Artifact Registry.
  • Desativa a cópia do horário da solicitação. O repositório gcr.io hospedado em O Artifact Registry não depende mais do Container Registry.

Se você quiser copiar apenas imagens extraídas do Container Registry nos últimos 30 para 150 dias, será possível incluir a flag --recent-images=DAYS. Substitua DAYS pelo número de dias, entre 30 e 150, que o deve verificar se há pulls dentro.

Se quiser copiar um número específico de versões enviadas recentemente de cada é possível incluir a --last-uploaded-versions=VERSIONS . Substitua VERSIONS pelo número de versões que você quer copiar para cada imagem. Se novas imagens forem enviadas durante a cópia, mais do que o número das versões especificadas podem ser copiadas.

As sinalizações --recent-images e --last-uploaded-versions são mutuamente exclusivos e não podem ser usados juntos.

Se você encontrar erros ou tempos limite, execute novamente o comando com segurança. etapas concluídas são ignoradas.

Migrar para repositórios padrão do Artifact Registry

  1. Para migrar seu projeto gcr.io para um repositório do Artifact Registry, execute o comando a seguir.

    gcloud artifacts docker upgrade migrate \
        --from-gcr=GCR_HOSTNAME/GCR_PROJECT \
        --to-pkg-dev=AR_PROJECT/AR_REPOSITORY
    

    Substitua:

    • GCR_HOSTNAME pelo nome do host do Container Registry. O nome do host depende de onde as imagens do contêiner são armazenadas:

      • gcr.io hospeda as imagens nos Estados Unidos.
      • us.gcr.io hospeda as imagens nos Estados Unidos, em um bucket de armazenamento de imagens hospedadas por gcr.io.
      • eu.gcr.io hospeda as imagens em estados-membros da União Europeia.
      • asia.gcr.io hospeda as imagens na Ásia.
    • GCR_PROJECT pelo Container Registry Google Cloud ID do projeto. Se o ID do projeto contiver dois pontos (:), consulte Projetos com escopo de domínio.

    • AR_PROJECT pelo ID do projeto do Google Cloud em que você ativou a API Artifact Registry.

    • AR_REPOSITORY pelo nome do repositório do Artifact Registry.

A ferramenta de migração conclui as seguintes etapas:

  • Cria o repositório do Artifact Registry, caso ainda não tenha feito isso existem.
  • Sugere uma política do IAM para o repositório e aplica a ou ignora o aplicativo dependendo da preferência do usuário.
  • Copia imagens na região especificada do Container Registry e projeto para o repositório do Artifact Registry.

Se você quiser copiar apenas imagens extraídas do Container Registry nos últimos 30 para 150 dias, será possível incluir a flag --recent-images=DAYS. Substitua DAYS pelo número de dias, entre 30 e 150, que o deve verificar se há pulls dentro.

Se você encontrar erros ou tempos limite, execute novamente o comando com segurança. etapas concluídas são ignoradas.

Copiar imagens

A ferramenta de migração copia automaticamente as imagens de contêiner quando executada. mas se quiser pular todas as outras etapas da migração automática e usar o método ferramenta para copiar imagens no Artifact Registry, transmita o parâmetro --copy-only .

Para copiar imagens do Container Registry para um repositório gcr.io hospedado em Artifact Registry, execute o seguinte comando:

gcloud artifacts docker upgrade migrate \
    --projects=PROJECTS \
    --copy-only

Em que PROJECTS é o ID do projeto de um único projeto que você quer migrar para repositórios gcr.io hospedados no Artifact Registry ou separados por vírgula lista de IDs de projeto que você quer migrar para os repositórios gcr.io hospedados em o Artifact Registry.

A ferramenta ignora todas as etapas de migração e copia imagens no projetos do Container Registry para repositórios gcr.io hospedados em o Artifact Registry.

Para copiar imagens do Container Registry para um repositório padrão do Artifact Registry, faça o seguinte: execute o seguinte comando:

gcloud artifacts docker upgrade migrate \
    --from-gcr=GCR_HOSTNAME/GCR_PROJECT \
    --to-pkg-dev=AR_PROJECT/AR_REPOSITORY \
    --copy-only

Substitua:

  • GCR_HOSTNAME pelo nome do host do Container Registry. O nome do host depende de onde as imagens do contêiner são armazenadas:

    • gcr.io hospeda as imagens nos Estados Unidos.
    • us.gcr.io hospeda as imagens nos Estados Unidos, em um bucket de armazenamento de imagens hospedadas por gcr.io.
    • eu.gcr.io hospeda as imagens em estados-membros da União Europeia.
    • asia.gcr.io hospeda as imagens na Ásia.
  • GCR_PROJECT pelo Container Registry Google Cloud ID do projeto. Se o ID do projeto contiver dois pontos (:), consulte Projetos com escopo de domínio.

  • AR_PROJECT pelo ID do projeto do Google Cloud em que você ativou a API Artifact Registry.

  • AR_REPOSITORY pelo nome do repositório do Artifact Registry.

A ferramenta ignora todas as etapas de migração e copia imagens da local e projeto do Container Registry para o repositório do Artifact Registry.

Também é possível usar a flag --copy-only para reiniciar a cópia de imagens se você tiver uma erro ou tempo limite durante o processo.

A seguir