Use a ferramenta de migração automática para fazer a transição do Container Registry para repositórios gcr.io hospedados no Artifact Registry ou para repositórios padrão do Artifact Registry.
A migração para o repositório gcr.io
do Artifact Registry pode ser realizada em
endpoints do Container Registry que recebem tráfego sem exigir inatividade ou
e a interrupção do serviço.
A ferramenta de migração automática pode realizar as ações a seguir, dependendo da o caminho de transição escolhido:
- Crie repositórios gcr.io ou padrão no Artifact Registry para cada um dos seus projetos gcr.io listados na região correspondente.
- Sugerir uma política do IAM para cada repositório e aplicá-la ou pular a aplicação de acordo com a 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
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- 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
você pular esta etapa.
Enable the Artifact Registry 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.
Enable the Artifact Registry 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
necessárias 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 de visualizador de objetos do Storage (roles/storage.objectViewer
) no projeto do Container Registry.
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
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 papéis.
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:
-
Leitor de recursos do Cloud (
roles/cloudasset.viewer
) -
Para analisar políticas com papéis personalizados do IAM:
Leitor de papéis (
roles/iam.roleViewer
) -
Para usar a CLI do Google Cloud para analisar políticas:
Consumidor de uso de serviço (
roles/serviceusage.serviceUsageConsumer
)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Esses papéis predefinidos contê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 CLI do Google Cloud 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 suas imagens do Container Registry -
Visualize 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 a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de outros papéis predefinidos.
repositórios padrão
Para receber as permissões necessárias para fazer a transição para 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 -
Acessar e gerenciar a configuração atual do Container Registry aplicada aos buckets do Cloud Storage:
Administrador do Storage (
roles/storage.admin
) no projeto do Google Cloud que contém suas imagens do Container Registry
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de 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 os repositórios do gcr.io, execute o comando a seguir.
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 política 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 no 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, em que a
ferramenta vai verificar as solicitações.
Se você quiser copiar um número específico de versões enviadas recentemente de cada
imagem, inclua a flag
--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 flags --recent-images
e --last-uploaded-versions
são mutuamente
exclusivas e não podem ser usadas juntas.
Se você encontrar erros ou tempo limite, será possível executar o comando novamente com segurança, e as etapas concluídas serão ignoradas.
Migrar para repositórios padrão do Artifact Registry
Para migrar seu projeto gcr.io para um repositório do Artifact Registry, execute o comando abaixo.
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 separado das imagens hospedadas porgcr.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 ID do projeto do Container Registry do Google Cloud. Caso o ID do projeto contenha 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 política 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, em que a
ferramenta vai verificar as solicitações.
Se você encontrar erros ou tempo limite, será possível executar o comando novamente com segurança, e as etapas concluídas serão ignoradas.
Copiar imagens
A ferramenta de migração copia automaticamente as imagens do contêiner quando é executada.
No entanto, se você quiser pular todas as outras etapas da migração automática e usar a
ferramenta para copiar imagens para o Artifact Registry, transmita a flag --copy-only
.
Para copiar imagens do Container Registry para um repositório gcr.io hospedado no Artifact Registry, execute o seguinte comando:
gcloud artifacts docker upgrade migrate \
--projects=PROJECTS \
--copy-only
Em que PROJECTS é o ID de um único projeto que você quer migrar para repositórios gcr.io hospedados no Artifact Registry ou uma lista separada por vírgulas de IDs de projetos que você quer migrar para repositórios gcr.io hospedados no Artifact Registry.
A ferramenta pula todas as etapas de migração e copia imagens nos projetos especificados do Container Registry para os repositórios gcr.io hospedados no 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 separado das imagens hospedadas porgcr.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 ID do projeto do Container Registry do Google Cloud. 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 houver um
erro ou um tempo limite durante o processo.