Use a ferramenta de migração automática para fazer a transição do Container Registry para repositórios alojados no Artifact Registry.gcr.io
A migração para repositórios do Artifact Registry gcr.io
pode ser realizada em pontos finais do Container Registry que recebem tráfego sem exigir qualquer tempo de inatividade ou interrupção do serviço.
A ferramenta de migração automática pode realizar as seguintes ações:
- Crie
gcr.io
repositórios no Artifact Registry para cada um dos seus projetosgcr.io
listados na região correspondente. - Sugira uma política IAM para cada repositório e aplique a política ou ignore a aplicação consoante a preferência do utilizador.
- Redirecione todo o tráfego dos pontos finais
gcr.io
para o Artifact Registry. - Copie todas as imagens de contentores armazenadas no Container Registry para os seus repositórios do Artifact Registry
gcr.io
, mesmo que já tenha ativado o redirecionamento.
Antes de começar
-
Install the Google Cloud CLI.
-
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro, tem de iniciar sessão na CLI gcloud com a sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
-
A ferramenta de migração automática pede-lhe que ative a API Artifact Registry se ignorar este passo.
Funções necessárias
As seguintes funções são necessárias para a transição para gcr.io
repositórios
no Artifact Registry através da ferramenta de migração automática.
Funções da conta de serviço:
Pode usar a gcr.io
conta de serviço de migração com o endereço de email de
[email protected]
ou a conta de serviço do Artifact Registry para fazer a transição para os repositórios gcr.io
no Artifact Registry.
Para garantir que a conta de serviço que está a usar para a migração tem as autorizações necessárias para copiar imagens do Container Registry para o Artifact Registry,
peça ao seu administrador para conceder à conta de serviço que está a usar para a migração a função de IAM
Visualizador 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 que está a usar para a migração as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.
Funções de utilizador:
Para receber as autorizações de que
precisa para fazer a transição para repositórios gcr.io
alojados no Artifact Registry,
peça ao seu administrador para lhe conceder a
função de administrador de migração do Container Registry do Artifact Registry (roles/artifactregistry.containerRegistryMigrationAdmin
)
função de IAM na Google Cloud organização ou no projeto que quer migrar.
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.
Migre para gcr.io
repositórios alojados no Artifact Registry
Pode migrar um único Google Cloud projeto ou vários Google Cloud projetos
em simultâneo através do comando
gcloud 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 quer migrar para repositórios gcr.io
alojados no Artifact Registry ou uma lista de IDs de projetos separados por vírgulas que quer migrar para repositórios gcr.io
alojados no Artifact Registry.
A ferramenta de migração conclui os seguintes passos:
- Cria
gcr.io
repositórios no Artifact Registry para cada um dos seus projetosgcr.io
indicados na região correspondente. - Sugere uma política de IAM para cada repositório e aplica a política ou ignora a aplicação consoante a preferência do utilizador.
- Redireciona todo o tráfego do ponto final
gcr.io
para o Artifact Registry. O Artifact Registry disponibiliza temporariamente as imagens em falta copiando-as do Container Registry no momento do pedido até que todas as imagens de contentores sejam copiadas para o Artifact Registry. - Copia todas as imagens de contentores armazenadas nos seus contentores
gcr.io
para os repositóriosgcr.io
criados recentemente e alojados no Artifact Registry. - Desativa a cópia no momento do pedido. O repositório
gcr.io
alojado no Artifact Registry já não depende do Container Registry.
Se só quiser copiar imagens extraídas do Container Registry nos últimos 30 a 180 dias, pode incluir a flag --recent-images=DAYS
.
Substitua DAYS pelo número de dias, entre 30 e 180, durante os quais a ferramenta deve verificar se existem retiradas.
Se quiser copiar um número específico de versões carregadas recentemente de cada imagem, pode incluir a flag --last-uploaded-versions=VERSIONS
. Substitua VERSIONS pelo número de versões que quer copiar
para cada imagem. Se forem carregadas novas imagens durante a cópia, podem ser copiadas mais versões do que o número especificado.
O indicador --recent-images
e o indicador --last-uploaded-versions
são mutuamente
exclusivos e não podem ser usados em conjunto.
Se encontrar erros ou limites de tempo, pode executar novamente o comando em segurança e os passos concluídos são ignorados.
Migre mais lentamente com leituras
Pode usar a flag --canary-reads
para implementar apenas uma percentagem de leituras e nenhuma gravação no Artifact Registry. As imagens em falta extraídas do Artifact Registry são copiadas do Container Registry no momento do pedido.
A migração com leituras de teste tem duas vantagens:
- A implementação no Artifact Registry pode ser testada primeiro num número muito menor de pedidos.
- As imagens continuam a ser enviadas para o Container Registry durante a maior parte do processo, pelo que é mais seguro reverter.
Recomendamos o seguinte procedimento:
Para definir a percentagem de leituras de teste canary para 1%, execute o seguinte comando:
gcloud artifacts docker upgrade migrate \ --projects=PROJECTS \ --canary-reads=1
Confirme se tudo continua a funcionar corretamente.
Para definir a percentagem de leituras de teste beta para 10%, execute o seguinte comando :
gcloud artifacts docker upgrade migrate \ --projects=PROJECTS \ --canary-reads=10
Confirme se tudo continua a funcionar corretamente.
Para definir as leituras de teste beta para 100%, execute o seguinte comando:
gcloud artifacts docker upgrade migrate \ --projects=PROJECTS \ --canary-reads=100
Neste ponto, todas as leituras são enviadas para o Artifact Registry e todas as escritas continuam a ser enviadas para o Container Registry.
Para concluir a migração, envie também gravações para o Artifact Registry executando o comando artifacts docker upgrade migrate
sem a flag --canary-reads
:
gcloud artifacts docker upgrade migrate \
--projects=PROJECTS
Reverte leituras de teste
Para reverter as leituras de teste canary, execute o seguinte comando:
gcloud artifacts docker upgrade migrate \
--projects=PROJECTS \
--canary-reads=0
A leitura de canários também está desativada quando executa os comandos gcloud artifacts settings disable-upgrade-redirection
ou gcloud artifacts settings enable-upgrade-redirection
.
Quota de AnalyzeIamPolicy
Se estiver a migrar um grande número de projetos e ficar sem a quota AnalyzeIamPolicy, pode usar a flag --no-use-analyze-iam
. A utilização da flag --no-use-analyze-iam
para a migração é mais lenta do que sem a usar, mas evita o envio de pedidos em relação à quota de AnalyzeIamPolicy.