Passer aux dépôts standards

Si vous utilisez actuellement Container Registry pour gérer vos images de conteneurs, cette page explique comment configurer un dépôt Artifact Registry standard et comment utiliser des dépôts différemment de Container Registry.

Ces instructions sont principalement destinées aux administrateurs du dépôt. Pour en savoir plus sur les modifications apportées à la création, à l'envoi, à l'extraction et au déploiement d'images, consultez les pages suivantes:

Présentation

Les dépôts standards sont des dépôts Artifact Registry standards compatibles avec toutes les fonctionnalités.

Par souci de simplicité, les instructions de cette page partent du principe que Container Registry et Artifact Registry se trouvent dans le même projet Google Cloud. Vous pouvez continuer à utiliser les deux services pendant la transition vers Artifact Registry afin de pouvoir effectuer progressivement les étapes de configuration et mettre à jour l'automatisation. Si nécessaire, vous pouvez configurer Artifact Registry dans un projet distinct et effectuer les mêmes étapes globales.

Artifact Registry propose également des dépôts gcr.io. Ces dépôts peuvent rediriger le trafic gcr.io de vos registres existants vers les dépôts Artifact Registry correspondants. Elles offrent une compatibilité ascendante avec Container Registry, mais présentent également certaines limites. Toutefois, si vous disposez d'une grande quantité de configurations d'outils, de scripts ou de code avec des références gcr.io, une approche plus tactique peut être nécessaire pour passer à Artifact Registry. Consultez la documentation de la transition pour les dépôts compatibles avec le domaine gcr.io afin de prendre une décision appropriée.

Étapes de transition

Ce guide vous explique comment effectuer les étapes suivantes:

  1. En savoir plus sur les tarifs d'Artifact Registry avant de commencer la transition.
  2. Activer l'API Artifact Registry.
  3. Mettre à jour le SDK Cloud et découvrir les nouvelles commandes gcloud. Vous pouvez également configurer des valeurs par défaut pour les commandes gcloud.
  4. Créer un dépôt Docker pour vos conteneurs. Vous devez créer un dépôt pour pouvoir y transférer des images.
  5. Accorder des autorisations sur le dépôt.
  6. Configurer l'authentification afin de pouvoir vous connecter au nouveau dépôt.
  7. Si nécessaire, copiez les images Container Registry que vous souhaitez utiliser dans votre nouveau dépôt.
  8. Essayer de transférer et récupérer vos conteneurs.
  9. Essayer de déployer vos images dans un environnement d'exécution.
  10. Configurer des fonctionnalités supplémentaires.
  11. Nettoyez les images dans Container Registry une fois la transition terminée.

Activer le service

Pour utiliser Artifact Registry, activez l'API Artifact Registry depuis Cloud Console ou avec la commande suivante :

gcloud services enable artifactregistry.googleapis.com

Mettre à jour et configurer le SDK Cloud

Container Registry utilise les commandes gcloud container images.

Artifact Registry utilise les commandes gcloud artifacts pour les images.

  1. Installez le SDK Cloud si ce n'est pas déjà fait.

  2. Mettez à jour les composants gcloud.

    gcloud components update
    

Comparaison des commandes gcloud

Le tableau suivant récapitule les commandes Container Registry et les commandes Artifact Registry équivalentes dans l'outil gcloud. Cliquez sur un lien dans le tableau pour afficher la page de référence de la commande.

Le tableau n'inclut pas les commandes Artifact Registry disponibles qui n'ont pas d'équivalent dans Container Registry. Consultez la documentation de gcloud artifacts pour obtenir la documentation de référence complète sur les commandes Artifact Registry.

Opération Container Registry Artifact Registry
Créer un dépôt Non applicable. gcloud artifacts repositories create
Supprimer un dépôt Non applicable. gcloud artifacts repositories delete
Obtenir la liste des images gcloud container images list gcloud artifacts docker images list
Répertorier les tags gcloud container images list-tags gcloud artifacts docker tags list
Taguer gcloud container images add-tag gcloud artifacts docker tags add
Supprimer un tag gcloud container images untag gcloud artifacts docker tags delete
Décrire les images gcloud container images describe gcloud artifacts docker image list --include-tags

Créer des dépôts

Container Registry crée automatiquement un bucket de stockage dans un emplacement multirégional si vous n'y avez pas encore stocké d'image.

Dans Artifact Registry, vous devez créer un dépôt avant de pouvoir importer des images. Lorsque vous créez un dépôt, vous devez spécifier les éléments suivants :

  • Le format du dépôt. Artifact Registry stocke les conteneurs dans des dépôts Docker.
  • Un emplacement régional ou multirégional pour le dépôt.

    Lorsque vous choisissez un emplacement pour vos dépôts Artifact Registry, tenez compte de la proximité des dépôts avec votre autre infrastructure et vos utilisateurs. Si vous envisagez de copier des images depuis Container Registry vers Artifact Registry, les différences d'emplacement peuvent avoir une incidence sur le coût de la copie.

  • Une clé Cloud Key Management Service, si vous utilisez des clés de chiffrement gérées par le client (CMEK) pour le chiffrement.

    Dans Container Registry, vous configurez le bucket de stockage Container Registry pour qu'il utilise des CMEK. Dans Artifact Registry, vous configurez les dépôts pour qu'ils utilisent des CMEK lors de leur création. Pour en savoir plus sur l'utilisation des CMEK avec Artifact Registry, consultez la section Activer les clés de chiffrement gérées par le client.

Container Registry héberge les conteneurs sur le domaine gcr.io. Artifact Registry héberge les conteneurs sur le domaine pkg.dev.

Pour en savoir plus sur la création de dépôts, notamment les dépôts qui utilisent des CMEK pour le chiffrement, consultez la page Créer des dépôts.

Octroyer des autorisations

Dans Container Registry, le contrôle des accès est basé sur les rôles et les autorisations Cloud Storage. Si vous ne souhaitez pas accorder un rôle à l'échelle du projet, vous devez accorder des autorisations sur le bucket de stockage spécifique utilisé par Container Registry.

Artifact Registry dispose de ses propres rôles IAM. Vous pouvez attribuer des rôles au niveau du projet ou définir des autorisations sur des dépôts individuels. Utilisez plusieurs dépôts Docker conjointement avec des autorisations spécifiques au dépôt pour contrôler l'accès à différents types d'artefacts. Par exemple, vous pouvez appliquer des contrôles plus stricts sur un dépôt de production ou accorder l'accès à des dépôts spécifiques à une équipe en fonction de l'appartenance à une équipe.

Les comptes de service pour les intégrations courantes avec Artifact Registry disposent d'autorisations par défaut pour les dépôts d'un même projet. Si vous utilisez un service Google Cloud dans un autre projet ou un outil tiers pour transférer ou extraire des images, vous devez configurer les autorisations appropriées manuellement.

Pour savoir comment accorder des autorisations, consultez la page Accorder des autorisations.

S'authentifier auprès du dépôt

Artifact Registry est compatible avec les mêmes méthodes d'authentification que Container Registry.

Si vous utilisez l'assistant d'identification Docker :

  • Vous devez utiliser la version 2.0 ou une version ultérieure pour interagir avec les dépôts Artifact Registry. La version autonome est disponible dans GitHub.
  • Vous devez configurer l'assistant d'identification avec les emplacements Artifact Registry que vous souhaitez utiliser. Par défaut, l'assistant d'identification configure uniquement l'accès aux hôtes Container Registry.

Pour en savoir plus sur la configuration de l'authentification, consultez la page Configurer l'authentification pour Docker.

Copier des conteneurs depuis Container Registry

Si vous souhaitez continuer à utiliser des conteneurs de Container Registry dans Artifact Registry, plusieurs options s'offrent à vous pour les copier. Pour obtenir des instructions détaillées, consultez la page Copier des images à partir de Container Registry.

Transférer et extraire des images

Les commandes Docker que vous utilisez pour ajouter des tags, transférer et extraire des images dans Artifact Registry sont semblables à celles que vous utilisez dans Container Registry. Il existe deux différences principales :

  • Le nom d'hôte des dépôts Docker Artifact Registry comprend un préfixe d'emplacement suivi de -docker.pkg.dev. Par exemple, il peut s'agir de australia-southeast1-docker.pkg.dev, europe-north1-docker.pkg.dev et europe-docker.pkg.dev.
  • Comme Artifact Registry accepte plusieurs dépôts Docker dans un même projet, vous devez spécifier le nom du dépôt dans les commandes.

Par exemple, dans Container Registry, cette commande transfère l'image my-image vers le registre eu.gcr.io du projet my-project.

docker push eu.gcr.io/my-project/my-image

Dans Artifact Registry, cette commande transfère l'image my-image vers le dépôt régional europe-north1-docker.pkg.dev du dépôt my-repo et du projet my-project.

docker push europe-north1-docker.pkg.dev/my-project/my-repo/my-image

Pour plus d'informations sur le transfert et l'extraction d'images dans Artifact Registry, consultez la section Transférer et extraire des images.

Déployer des images

Les comptes de service pour les intégrations Google Cloud courantes sont configurés avec les autorisations par défaut pour les dépôts d'un même projet.

La création d'images et leur transfert dans un dépôt avec Cloud Build fonctionnent généralement de la même manière que pour Container Registry. La principale différence dans Artifact Registry réside dans le fait qu'un dépôt cible doit exister pour y transférer des images, y compris la première image que vous transférez.

Assurez-vous de créer les dépôts dont vous avez besoin avant d'exécuter des commandes qui transfèrent des images, y compris la commande Docker docker push et la commande Cloud Build gcloud builds submit.

Les compilateurs Cloud Build sont toujours hébergés sur gcr.io. Pour en savoir plus, consultez la page Intégrer à Cloud Build.

Autres fonctionnalités

Cette section décrit la configuration d'autres fonctionnalités que vous avez peut-être configurées dans Container Registry.

Container Analysis

Container Analysis est compatible avec Container Registry et Artifact Registry. La documentation de Container Analysis comprend les deux produits.

  • Les deux produits utilisent les mêmes API Container Analysis. Lorsque vous activez les API Container Analysis dans Container Registry ou Artifact Registry, elles sont activées pour les deux produits.
  • Les deux produits utilisent les mêmes sujets Pub/Sub pour les notifications Container Analysis. Vos abonnements existants incluront des notifications pour Artifact Registry et Container Registry.
  • Les commandes du SDK Cloud permettant d'utiliser des notes et des occurrences se trouvent sous le groupe gcloud artifacts docker.

Notifications Pub/Sub

Artifact Registry publie les modifications apportées dans le même sujet gcr que Container Registry. Aucune configuration supplémentaire n'est requise si vous utilisez déjà Pub/Sub avec Container Registry dans le même projet qu'Artifact Registry.

Si vous configurez Artifact Registry dans un projet distinct, le sujet gcr peut ne pas exister. Pour obtenir des instructions de configuration, consultez la section Configurer les notifications Pub/Sub.

Périmètres de service

VPC Service Controls vous permet de configurer des périmètres de sécurité autour des ressources de vos services gérés par Google et de contrôler le déplacement des données au-delà des limites des périmètres.

Pour savoir comment procéder, consultez la section Sécuriser les dépôts dans un périmètre de service.

Nettoyer les images Container Registry

Lorsque vous êtes prêt à arrêter d'utiliser Container Registry, procédez comme suit:

  1. Supprimez les images restantes dans Container Registry.
  2. Désactivez l'API Container Registry.

Étape suivante