Migrer automatiquement de Container Registry vers Artifact Registry

Utilisez l'outil de migration automatique pour passer de Container Registry aux dépôts gcr.io hébergés sur Artifact Registry ou aux dépôts Artifact Registry standards.

Selon le chemin de transition choisi, l'outil de migration automatique peut effectuer les actions suivantes:

  • Créez des dépôts gcr.io ou des dépôts standards dans Artifact Registry pour chacun de vos projets gcr.io répertoriés dans la région correspondante.
  • Suggérez une stratégie IAM pour chaque dépôt, puis appliquez-la ou ignorez 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 dans vos dépôts gcr.io Artifact Registry ou vos dépôts standards, même si vous avez déjà activé la redirection.

Avant de commencer

  1. Installez Google Cloud CLI.
  2. Pour initialiser gcloudCLI, exécutez la commande suivante :

    gcloud init
  3. Choisissez une option de transition.
    • Si vous effectuez la transition vers des dépôts gcr.io hébergés sur Artifact Registry, activez l'API Artifact Registry dans les projets Container Registry que vous souhaitez migrer. Si vous ignorez cette étape, l'outil vous invite également à activer l'API Artifact Registry.

      Activez l'API Artifact Registry

      Activer l'API

    • Si vous effectuez la transition vers des dépôts Artifact Registry standards, activez l'API Artifact Registry dans le projet vers lequel vous souhaitez migrer vos images de conteneurs Container Registry. Vous pouvez utiliser le projet dans lequel Container Registry est activé, ou un autre projet.

      Activez l'API Artifact Registry

      Activer l'API

Rôles requis

Les rôles suivants sont requis pour toutes les options de transition utilisant l'outil de migration automatique.

Rôles requis par le compte de service Artifact Registry :

Pour vous assurer que le compte de service Artifact Registry dispose des autorisations nécessaires pour copier des images de Container Registry vers Artifact Registry, demandez à votre administrateur d'attribuer au compte de service Artifact Registry le rôle IAM Lecteur des objets Storage (roles/storage.objectViewer) sur le projet Container Registry. Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.

Votre administrateur peut également accorder les autorisations requises au compte de service Artifact Registry via des rôles personnalisés ou d'autres rôles prédéfinis.

Rôles requis pour générer des recommandations IAM:

Afin d'obtenir les autorisations dont vous avez besoin pour analyser une stratégie d'autorisation, demandez à votre administrateur de vous attribuer les rôles IAM suivants sur le ou les projets Container Registry que vous souhaitez migrer:

Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.

Ces rôles prédéfinis contiennent les autorisations requises pour analyser une règle d'autorisation. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour analyser une règle d'autorisation:

  • cloudasset.assets.analyzeIamPolicy
  • cloudasset.assets.searchAllResources
  • cloudasset.assets.searchAllIamPolicies
  • Pour analyser des stratégies à l'aide de rôles IAM personnalisés : iam.roles.get
  • Pour analyser des règles à l'aide de la Google Cloud CLI, procédez comme suit : serviceusage.services.use

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Les rôles suivants sont attribués sur différentes ressources en fonction de votre option de transition.

Dépôts gcr.io

Pour obtenir les autorisations dont vous avez besoin pour effectuer la transition vers des dépôts gcr.io hébergés sur Artifact Registry, demandez à votre administrateur de vous accorder les rôles IAM suivants:

  • Créez des dépôts Artifact Registry et accordez l'accès à des dépôts individuels : Administrateur Artifact Registry (roles/artifactregistry.admin) sur le projet Google Cloud qui contient vos images Container Registry
  • Affichez et gérez la configuration Container Registry existante appliquée aux buckets de stockage Cloud Storage : Administrateur Storage (roles/storage.admin) sur le projet Google Cloud qui contient vos images Container Registry.

Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.

Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.

dépôts standards

Pour obtenir les autorisations dont vous avez besoin pour effectuer la transition vers les dépôts Artifact Registry standards, demandez à votre administrateur de vous attribuer les rôles IAM suivants:

  • Créez des dépôts Artifact Registry et accordez l'accès à des dépôts individuels : Administrateur Artifact Registry (roles/artifactregistry.admin) sur le projet Google Cloud où l'API Artifact Registry est activée
  • Affichez et gérez la configuration Container Registry existante appliquée aux buckets de stockage Cloud Storage : Administrateur Storage (roles/storage.admin) sur le projet Google Cloud qui contient vos images Container Registry.

Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.

Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.

Migrer vers des dépôts gcr.io hébergés sur Artifact Registry

Vous pouvez migrer un seul projet Google Cloud ou plusieurs projets Google Cloud à la fois à 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

PROJECTS correspond à 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 projets gcr.io répertoriés dans la région correspondante.
  • Suggère une stratégie IAM pour chaque dépôt et applique la stratégie ou ignore l'application 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 demande, jusqu'à ce que toutes les images de conteneur soient copiées dans Artifact Registry.
  • Copie toutes les images de conteneur stockées dans vos buckets gcr.io vers les dépôts gcr.io nouvellement créés 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 ne copier que les images extraites de Container Registry au cours des 30 à 90 derniers jours, vous pouvez inclure l'option --recent-images=DAYS. Remplacez DAYS par le nombre de jours (entre 30 et 90) pendant lesquels l'outil doit vérifier la présence d'extractions.

Si vous souhaitez copier un nombre spécifique de versions récemment importées de chaque image, vous pouvez inclure l'option --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, le nombre de versions copiées peut dépasser le nombre spécifié.

Les options --recent-images et --last-uploaded-versions sont mutuellement exclusives et ne peuvent pas être utilisées ensemble.

Si vous rencontrez des erreurs ou des délais avant expiration, vous pouvez réexécuter la commande en toute sécurité. Les étapes terminées sont ignorées.

Migrer vers des dépôts Artifact Registry standards

  1. Pour migrer votre projet gcr.io vers un dépôt Artifact Registry, exécutez la commande suivante.

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

    Remplacez les éléments suivants :

    • GCR_HOSTNAME par le nom d'hôte de Container Registry. Le nom d'hôte dépend de l'emplacement de stockage de vos images de conteneur:

      • gcr.io héberge les images aux États-Unis.
      • us.gcr.io héberge les images aux États-Unis, dans un bucket de stockage distinct de celui des images hébergées par gcr.io.
      • eu.gcr.io héberge les images dans les États membres de l'Union européenne.
      • asia.gcr.io héberge les images en Asie.
    • GCR_PROJECT par votre ID de projet Google Cloud Container Registry. Si l'ID du projet contient le signe deux-points (:), consultez la section Projets à l'échelle du domaine.

    • AR_PROJECT par l'ID du projet Google Cloud sur lequel vous avez activé l'API Artifact Registry.

    • AR_REPOSITORY par le nom de votre dépôt Artifact Registry.

L'outil de migration effectue les étapes suivantes:

  • Il crée le dépôt Artifact Registry si le dépôt n'existe pas déjà.
  • Suggère une stratégie IAM pour le dépôt, et applique la stratégie ou ignore l'application selon les préférences de l'utilisateur.
  • copie les images situées dans la région et le projet Container Registry spécifiés dans votre dépôt Artifact Registry ;

Si vous souhaitez ne copier que les images extraites de Container Registry au cours des 30 à 90 derniers jours, vous pouvez inclure l'option --recent-images=DAYS. Remplacez DAYS par le nombre de jours (entre 30 et 90) pendant lesquels l'outil doit vérifier la présence d'extractions.

Si vous rencontrez des erreurs ou des délais avant expiration, vous pouvez réexécuter la commande en toute sécurité. Les étapes terminées sont ignorées.

Copier les images

L'outil de migration copie automatiquement vos images de conteneurs lorsque vous l'exécutez. Toutefois, si vous souhaitez ignorer toutes les autres étapes de la migration automatique et utiliser l'outil pour copier les images dans Artifact Registry, vous pouvez transmettre l'option --copy-only.

Pour copier des images de Container Registry vers un dépôt gcr.io hébergé sur Artifact Registry, exécutez la commande suivante:

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

PROJECTS correspond à 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 ignore toutes les étapes de migration et copie les images des projets spécifiés depuis Container Registry vers des dépôts gcr.io hébergés sur Artifact Registry.

Pour copier des images de Container Registry vers un dépôt Artifact Registry standard, exécutez la commande suivante:

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

Remplacez les éléments suivants :

  • GCR_HOSTNAME par le nom d'hôte de Container Registry. Le nom d'hôte dépend de l'emplacement de stockage de vos images de conteneur:

    • gcr.io héberge les images aux États-Unis.
    • us.gcr.io héberge les images aux États-Unis, dans un bucket de stockage distinct de celui des images hébergées par gcr.io.
    • eu.gcr.io héberge les images dans les États membres de l'Union européenne.
    • asia.gcr.io héberge les images en Asie.
  • GCR_PROJECT par votre ID de projet Google Cloud Container Registry. Si l'ID du projet contient le signe deux-points (:), consultez la section Projets à l'échelle du domaine.

  • AR_PROJECT par l'ID du projet Google Cloud sur lequel vous avez activé l'API Artifact Registry.

  • AR_REPOSITORY par le nom de votre dépôt Artifact Registry.

L'outil ignore toutes les étapes de migration et copie les images de l'emplacement et du projet spécifiés dans Container Registry vers votre dépôt Artifact Registry.

Vous pouvez également utiliser l'indicateur --copy-only pour redémarrer la copie des images si une erreur ou un délai d'inactivité s'est produit pendant le processus.

Étapes suivantes