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.
A migração para repositórios do Artifact Registry gcr.io
pode ser realizada em
endpoints do Container Registry que recebem tráfego sem exigir tempo de inatividade ou
interrupção do serviço.
A ferramenta de migração automática pode realizar as seguintes ações:
- Crie repositórios
gcr.io
no Artifact Registry para cada um dos seus projetosgcr.io
listados na região correspondente. - Sugerir uma política do IAM para cada repositório e aplicar a política ou pular a aplicação, dependendo da preferência do usuário.
- Redirecione todo o tráfego dos endpoints
gcr.io
para o Artifact Registry. - Copie todas as imagens de contêiner armazenadas no Container Registry para os repositórios do Artifact Registry
gcr.io
, mesmo que você já tenha ativado o redirecionamento.
Antes de começar
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Enable the Artifact Registry API.
A ferramenta de migração automática pede que você ative a API Artifact Registry se pular esta etapa.
Funções exigidas
As seguintes funções são necessárias para a transição para repositórios gcr.io
no Artifact Registry usando a ferramenta de migração automática.
Papéis da conta de serviço:
Você pode usar a conta de serviço de migração do gcr.io
com o endereço de e-mail
artifact-registry-same-project-copier@system.gserviceaccount.com
ou a conta de serviço do Artifact Registry para fazer a transição para repositórios do gcr.io
no Artifact Registry.
Para garantir que a conta de serviço usada na migração 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 usada na migração o papel do IAM
Leitor de objetos do Storage (roles/storage.objectViewer
)
no projeto, na pasta ou na organização do Container Registry.
O administrador também pode conceder à conta de serviço usada para a migração as permissões necessárias por meio de papéis personalizados ou outros papéis predefinidos.
Funções do usuário:
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ê o
papel do IAM de Administrador da migração do Container Registry para o Artifact Registry (roles/artifactregistry.containerRegistryMigrationAdmin
)
na organização ou no projeto Google Cloud que você quer migrar.
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 único projeto Google Cloud ou vários projetos Google Cloud ao mesmo tempo usando o comandogcloud artifacts docker upgrade migrate
.
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 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 de migração conclui as seguintes etapas:
- Cria repositórios
gcr.io
no Artifact Registry para cada um dos projetosgcr.io
listados na região correspondente. - Sugere uma política do IAM para cada repositório e aplica ou pula a aplicação dependendo da preferência do usuário.
- Redireciona todo o tráfego do endpoint
gcr.io
para o Artifact Registry. O Artifact Registry veicula temporariamente as imagens ausentes copiando-as do Container Registry no momento da solicitação até que todas as imagens de contêiner sejam copiadas para o Artifact Registry. - Copia todas as imagens de contêiner armazenadas nos seus intervalos
gcr.io
para os repositóriosgcr.io
recém-criados hospedados no Artifact Registry. - Desativa a cópia no momento da solicitação. O repositório
gcr.io
hospedado no Artifact Registry não depende mais do Container Registry.
Se você quiser copiar apenas as imagens extraídas do Container Registry nos últimos 30 a 180 dias, inclua a flag --recent-images=DAYS
.
Substitua DAYS pelo número de dias, entre 30 e 180, em que a
ferramenta deve verificar os pull requests.
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 de versões especificado poderá ser copiado.
As flags --recent-images
e --last-uploaded-versions
são mutuamente exclusivas e não podem ser usadas juntas.
Se você encontrar erros ou tempos limite, poderá executar o comando novamente com segurança, e as etapas concluídas serão ignoradas.
Migração mais lenta com leituras canário
É possível usar a flag --canary-reads
para lançar apenas uma porcentagem de leituras, e nenhuma gravação, no Artifact Registry. As imagens ausentes extraídas do
Artifact Registry são copiadas do Container Registry no momento da solicitação.
A migração com leituras canário tem duas vantagens:
- A implantação no Artifact Registry pode ser testada primeiro em um número muito menor de solicitações.
- As imagens ainda são enviadas para o Container Registry durante a maior parte do processo, então é mais seguro fazer o rollback.
Recomendamos o seguinte procedimento:
Para definir a porcentagem de leituras canário como 1%, execute o seguinte comando:
gcloud artifacts docker upgrade migrate \ --projects=PROJECTS \ --canary-reads=1
Confirme se tudo ainda está funcionando corretamente.
Para definir a porcentagem de leituras canário como 10%, execute o seguinte comando :
gcloud artifacts docker upgrade migrate \ --projects=PROJECTS \ --canary-reads=10
Confirme se tudo ainda está funcionando corretamente.
Para definir leituras canário em 100%, execute o seguinte comando:
gcloud artifacts docker upgrade migrate \ --projects=PROJECTS \ --canary-reads=100
Nesse ponto, todas as leituras são enviadas ao Artifact Registry e todas as gravações ainda são enviadas ao Container Registry.
Para concluir a migração, envie gravações para o Artifact Registry também executando o comando artifacts docker upgrade migrate
sem a flag --canary-reads
:
gcloud artifacts docker upgrade migrate \
--projects=PROJECTS
Reverter leituras canário
Para reverter leituras canário, execute o seguinte comando:
gcloud artifacts docker upgrade migrate \
--projects=PROJECTS \
--canary-reads=0
As leituras canário também são desativadas ao executar os comandos gcloud artifacts settings disable-upgrade-redirection
ou gcloud artifacts settings enable-upgrade-redirection
.
Cota do AnalyzeIamPolicy
Se você estiver migrando um grande número de projetos e ficar sem a cota AnalyzeIamPolicy, use a flag --no-use-analyze-iam
. Usar a flag --no-use-analyze-iam
para migração é mais lento do que sem ela, mas evita o envio de solicitações à cota "AnalyzeIamPolicy".