Pour simplifier vos workflows de compilation et de déploiement, certains comptes de service et environnements d'exécution Google Cloud sont préconfigurés avec des autorisations d'accès aux conteneurs stockés dans le même projet.
Cette page récapitule les intégrations courantes avec les produits Google Cloud et les conditions requises pour accéder aux conteneurs.
Conditions générales d'accès
Par défaut, les comptes de service pour certaines intégrations courantes sont configurés avec les autorisations Cloud Storage pour accéder à Container Registry au sein du même projet.
Pour le compte de service utilisé par les VM Compute Engine, y compris les VM des clusters Google Kubernetes Engine, l'accès est basé sur les autorisations IAM et les niveaux d'accès à l'espace de stockage.
Vous devez configurer ou modifier vous-même les autorisations dans les cas suivants :
- Vous utilisez un compte de service dans un projet pour accéder à Container Registry dans un autre projet.
- Vous utilisez un compte de service par défaut avec un accès en lecture seule au stockage, mais vous souhaitez extraire et stocker des images.
- Vous utilisez un compte de service personnalisé pour interagir avec Container Registry.
Pour en savoir plus, consultez les sections spécifiques aux produits.
Cloud Build
Par défaut, le compte de service Cloud Build est autorisé à stocker et à extraire des images lorsque Container Registry se trouve dans le même projet.
Vous devez configurer vous-même les autorisations appropriées dans les cas suivants :
- Cloud Build se trouve dans un projet différent de celui des dépôts auxquels vous souhaitez que les compilations accèdent.
- Vos compilations utilisent un compte de service autre que le compte de service Cloud Build par défaut. Dans ce cas, vous devez autoriser le compte de service à accéder à Container Registry.
Compute Engine
Vous pouvez créer des instances de VM à l'aide d'images stockées dans Container Registry.
Autorisations requises
Si l'instance de VM et Container Registry se trouvent dans le même projet Google Cloud, le compte de service par défaut Compute Engine est configuré avec des autorisations pour extraire des images.
Si l'instance de VM se trouve dans un projet différent ou si elle utilise un autre compte de service, vous devez accorder au compte de service les autorisations appropriées pour accéder au bucket de stockage utilisé par Container Registry.
Par défaut, le niveau d'accès read-only
est configuré sur une VM Compute Engine pour les buckets de stockage. Pour stocker des images Docker privées, l'instance de VM doit disposer du niveau d'accès à l'espace de stockage read-write
.
Pour en savoir plus sur les autorisations et les champs d'application des accès, consultez la section Intégration aux services Google Cloud.
Déployer des images
Lorsque vous créez une VM, vous pouvez y déployer une image. Pour en savoir plus, consultez la documentation Compute Engine sur le déploiement de conteneurs et la création de modèles d'instances de VM.
Instances Compute Engine optimisées pour les conteneurs
Pour découvrir comment démarrer une instance Compute Engine optimisée pour les conteneurs à l'aide d'une image de votre registre, consultez la section Démarrer un conteneur Docker via cloud-config.
Pour en savoir plus, consultez également la page Créer et configurer des instances.
Google Kubernetes Engine
Google Kubernetes Engine utilise le compte de service configuré sur les instances de VM des nœuds de cluster pour stocker et extraire des images.
Autorisations requises
Si le cluster Google Kubernetes Engine et le bucket de stockage Container Registry se trouvent dans le même projet Google Cloud, le compte de service par défaut Compute Engine est configuré avec les autorisations appropriées pour stocker ou extraire des images.
Si le cluster se trouve dans un projet différent ou si les VM du cluster utilisent un autre compte de service, vous devez accorder au compte de service les autorisations appropriées pour accéder au bucket de stockage utilisé par Container Registry
Par défaut, le niveau d'accès read-only
est configuré sur une VM Compute Engine pour les buckets de stockage. Pour stocker des images Docker privées, l'instance de VM doit disposer du niveau d'accès à l'espace de stockage read-write
.
Pour en savoir plus sur les autorisations et les champs d'application des accès, consultez la section Intégration aux services Google Cloud.
Exécuter une image
Vous pouvez exécuter une image Container Registry sur un cluster Google Kubernetes Engine à l'aide de la commande suivante :
kubectl run [NAME] --image=[HOSTNAME]/[PROJECT-ID]/[IMAGE]:[TAG]
où :
[NAME]
est le nom de la ressource.[HOSTNAME]
est répertorié sousLocation
dans la console. Il s'agit de l'une des quatre options suivantes :gcr.io
,us.gcr.io
,eu.gcr.io
ouasia.gcr.io
.[PROJECT-ID]
est l'ID du projet dans la console Google Cloud. Si l'ID du projet contient le signe deux-points (:
), consultez la section Projets à l'échelle du domaine.[IMAGE]
est le nom de l'image dans Container Registry.[TAG]
est le tag qui identifie la version de l'image dans Container Registry. Si vous ne spécifiez pas de tag, Container Registry utilise la valeur du tag par défaut,latest
.
Pour en savoir plus sur les commandes Kubernetes, consultez la présentation de kubectl.
Cloud Run
Vous pouvez déployer des images stockées dans Container Registry dans Cloud Run.
Autorisations requises
Pour effectuer un déploiement dans Cloud Run, vous devez disposer du rôle "Propriétaire" ou "Éditeur", ou des rôles "Administrateur Cloud Run" et "Utilisateur du compte de service", ou un autre rôle personnalisé incluant cette liste spécifique d'autorisations.
Déployer des images
Pour en savoir plus sur le déploiement d'une image sur Cloud Run, consultez la documentation de Cloud Run.
Environnement flexible App Engine
Vous pouvez utiliser l'environnement flexible App Engine afin de personnaliser un environnement d'exécution existant (par exemple Java 8) ou de fournir votre propre environnement d'exécution en utilisant une image Docker ou un fichier Dockerfile personnalisés.
Cloud Build vous permet d'automatiser la création de vos conteneurs, de les transférer vers Container Registry et de les déployer sur App Engine.
Autorisations requises
Par défaut, le compte de service par défaut App Engine est autorisé à extraire depuis des dépôts et à transférer vers des dépôts dans le même projet.
Si App Engine se trouve dans un projet différent, vous devez accorder au compte de service App Engine des autorisations pour accéder au dépôt Container Registry.
Déployer sur App Engine
Vous pouvez déployer une image hébergée par Container Registry sur App Engine à l'aide de la Google Cloud CLI.
- Créez le fichier de configuration App Engine de votre application.
- Créez une image Docker et transférez-la vers votre dépôt. Vous pouvez utiliser Cloud Build pour créer et transférer votre conteneur vers le dépôt.
Déployez votre image sur App Engine en exécutant la commande suivante :
gcloud app deploy --image-url=[HOSTNAME]/[PROJECT-ID]/[IMAGE]:[TAG]
où :
[HOSTNAME]
est répertorié sousLocation
dans la console. Il s'agit de l'une des quatre options suivantes :gcr.io
,us.gcr.io
,eu.gcr.io
ouasia.gcr.io
.[PROJECT-ID]
est l'ID du projet dans la console Google Cloud. Si l'ID du projet contient le signe deux-points (:
), consultez la section Projets à l'échelle du domaine.[IMAGE]
est le nom de l'image dans Container Registry.[TAG]
est le tag qui identifie la version de l'image dans Container Registry. Si vous ne spécifiez pas de tag, Container Registry utilise la valeur du tag par défaut,latest
.