Utilisez l'outil de migration automatique pour passer de Container Registry aux dépôts gcr.io
hébergés sur Artifact Registry.
La migration vers les dépôts gcr.io
Artifact Registry peut être effectuée sur les points de terminaison Container Registry qui reçoivent du trafic, sans nécessiter de temps d'arrêt ni d'interruption de service.
L'outil de migration automatique peut effectuer les actions suivantes :
- Créez des dépôts
gcr.io
dans Artifact Registry pour chacun des projetsgcr.io
listés dans la région correspondante. - Suggérer une stratégie IAM pour chaque dépôt et appliquer la stratégie ou ignorer l'application en fonction des préférences de l'utilisateur.
- Redirigez tout le trafic des points de terminaison
gcr.io
vers Artifact Registry. - Copiez toutes les images de conteneur stockées dans Container Registry vers vos dépôts
gcr.io
Artifact Registry, même si vous avez déjà activé la redirection.
Avant de commencer
-
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.
L'outil de migration automatique vous invite à activer l'API Artifact Registry si vous ignorez cette étape.
Rôles requis
Les rôles suivants sont requis pour passer aux dépôts gcr.io
dans Artifact Registry à l'aide de l'outil de migration automatique.
Rôles de compte de service :
Vous pouvez utiliser le compte de service de migration gcr.io
avec l'adresse e-mail artifact-registry-same-project-copier@system.gserviceaccount.com
ou le compte de service Artifact Registry pour passer aux dépôts gcr.io
dans Artifact Registry.
Pour vous assurer que le compte de service que vous utilisez pour la migration dispose des autorisations nécessaires pour copier des images de Container Registry vers Artifact Registry, demandez à votre administrateur d'attribuer au compte de service que vous utilisez pour la migration le rôle IAM Lecteur des objets de l'espace de stockage (roles/storage.objectViewer
) sur le projet, le dossier ou l'organisation Container Registry.
Votre administrateur peut également attribuer au compte de service que vous utilisez pour la migration les autorisations requises à l'aide de rôles personnalisés ou d'autres rôles prédéfinis.
Rôles utilisateur :
Pour obtenir les autorisations nécessaires pour migrer vers des dépôts gcr.io
hébergés sur Artifact Registry, demandez à votre administrateur de vous accorder le rôle IAM Administrateur de la migration Container Registry vers Artifact Registry (roles/artifactregistry.containerRegistryMigrationAdmin
) sur l'organisation ou le projet Google Cloud que vous souhaitez migrer.
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.
Migrer vers les dépôts gcr.io
hébergés sur Artifact Registry
Vous pouvez migrer un seul projet Google Cloud ou plusieurs projets Google Cloud en même temps à l'aide de la commande gcloud artifacts docker upgrade migrate
.
Pour migrer vers les dépôts gcr.io
, exécutez la commande suivante.
gcloud artifacts docker upgrade migrate \
--projects=PROJECTS
Où PROJECTS est l'ID d'un seul projet que vous souhaitez migrer vers des dépôts gcr.io
hébergés sur Artifact Registry, ou une liste d'ID de projets séparés par une virgule que vous souhaitez migrer vers des dépôts gcr.io
hébergés sur Artifact Registry.
L'outil de migration effectue les étapes suivantes :
- Crée des dépôts
gcr.io
dans Artifact Registry pour chacun de vos projetsgcr.io
listés dans la région correspondante. - Suggère une stratégie IAM pour chaque dépôt et l'applique ou l'ignore selon les préférences de l'utilisateur.
- Redirige tout le trafic du point de terminaison
gcr.io
vers Artifact Registry. Artifact Registry diffuse temporairement les images manquantes en les copiant depuis Container Registry au moment de la requête, jusqu'à ce que toutes les images de conteneur soient copiées vers Artifact Registry. - Copie toutes les images de conteneur stockées dans vos buckets
gcr.io
vers les dépôtsgcr.io
nouvellement créés et hébergés sur Artifact Registry. - Désactive la copie au moment de la requête. Le dépôt
gcr.io
hébergé sur Artifact Registry ne dépend plus de Container Registry.
Si vous souhaitez uniquement copier les images extraites de Container Registry au cours des 30 à 180 derniers jours, vous pouvez inclure le tag --recent-images=DAYS
.
Remplacez DAYS par le nombre de jours (entre 30 et 180) pendant lesquels l'outil doit rechercher les extractions.
Si vous souhaitez copier un nombre spécifique de versions récemment importées de chaque image, vous pouvez inclure l'indicateur --last-uploaded-versions=VERSIONS
. Remplacez VERSIONS par le nombre de versions que vous souhaitez copier pour chaque image. Si de nouvelles images sont importées pendant la copie, il est possible que plus de versions que celles spécifiées soient copiées.
Les indicateurs --recent-images
et --last-uploaded-versions
sont mutuellement exclusifs et ne peuvent pas être utilisés ensemble.
Si vous rencontrez des erreurs ou des délais d'attente, vous pouvez réexécuter la commande en toute sécurité. Les étapes effectuées sont ignorées.
Migrer plus lentement avec les lectures Canary
Vous pouvez utiliser l'indicateur --canary-reads
pour déployer uniquement un pourcentage de lectures, et aucune écriture, dans Artifact Registry. Les images manquantes extraites d'Artifact Registry sont copiées depuis Container Registry au moment de la requête.
La migration avec des lectures Canary présente deux avantages :
- Le déploiement vers Artifact Registry peut d'abord être testé sur un nombre de requêtes beaucoup plus petit.
- Les images sont toujours transférées vers Container Registry pendant la majeure partie du processus. Il est donc plus sûr d'effectuer un rollback.
Nous vous recommandons de suivre la procédure suivante :
Pour définir le pourcentage de lectures Canary sur 1 %, exécutez la commande suivante :
gcloud artifacts docker upgrade migrate \ --projects=PROJECTS \ --canary-reads=1
Vérifiez que tout fonctionne toujours correctement.
Pour définir le pourcentage de lectures Canary sur 10 %, exécutez la commande suivante :
gcloud artifacts docker upgrade migrate \ --projects=PROJECTS \ --canary-reads=10
Vérifiez que tout fonctionne toujours correctement.
Pour définir les lectures Canary sur 100 %, exécutez la commande suivante :
gcloud artifacts docker upgrade migrate \ --projects=PROJECTS \ --canary-reads=100
À ce stade, toutes les lectures sont envoyées à Artifact Registry, et toutes les écritures sont toujours envoyées à Container Registry.
Pour terminer la migration, envoyez également des écritures à Artifact Registry en exécutant la commande artifacts docker upgrade migrate
sans l'option --canary-reads
:
gcloud artifacts docker upgrade migrate \
--projects=PROJECTS
Effectuer un rollback des lectures Canary
Pour effectuer un rollback des lectures Canary, exécutez la commande suivante :
gcloud artifacts docker upgrade migrate \
--projects=PROJECTS \
--canary-reads=0
La lecture Canary est également désactivée lorsque vous exécutez les commandes gcloud artifacts settings disable-upgrade-redirection
ou gcloud artifacts settings enable-upgrade-redirection
.
Quota AnalyzeIamPolicy
Si vous migrez un grand nombre de projets et que vous manquez de quota AnalyzeIamPolicy, vous pouvez utiliser l'indicateur --no-use-analyze-iam
. L'utilisation de l'indicateur --no-use-analyze-iam
pour la migration est plus lente que sans l'utiliser, mais évite d'envoyer des requêtes par rapport au quota AnalyzeIamPolicy.