Cette page explique comment déployer de nouveaux services et de nouvelles révisions dans Cloud Run for Anthos.
Prérequis
Pour utiliser Google Cloud CLI, vous devez installer et configurer Google Cloud CLI.
Autorisations requises pour déployer
Vous devez disposer des autorisations nécessaires pour créer, mettre à jour et supprimer le groupe d'API serving.knative.dev
et le genre Service
. En outre, vous devez posséder UN des rôles suivants :
- Propriétaire
- Éditeur
- Administrateur GKE
- Développeur GKE
Images que vous pouvez déployer
La taille applicable à l'image de conteneur que vous pouvez déployer est illimitée.
Vous pouvez utiliser des conteneurs de n'importe quel registre de conteneurs, tel que Docker Hub. Pour en savoir plus sur le déploiement d'images privées à partir de registres différents de Container Registry ou Artifact Registry, consultez la page Déployer des images de conteneurs privées à partir d'autres registres de conteneurs.
Déployer un nouveau service
Vous pouvez spécifier une image de conteneur avec un tag (par exemple, gcr.io/my-project/my-image:latest
) ou avec un condensé exact (par exemple, gcr.io/my-project/my-image@sha256:41f34ab970ee...
).
Le déploiement d'un service pour la première fois crée sa première révision. Notez que les révisions sont immuables. Si vous déployez à partir d'un tag d'image de conteneur, il sera transformé en condensé et la révision desservira toujours ce condensé.
Vous pouvez déployer un conteneur à l'aide de la console Google Cloud, de Google Cloud CLI ou d'un fichier de configuration YAML.
Cliquez sur l'onglet pour obtenir des instructions concernant l'utilisation de l'outil de votre choix.
Configuration de l'emplacement par défaut de gcloud
Si vous avez déjà configuré un emplacement dans la configuration default
de Google Cloud CLI, vos commandes gcloud
utilisent ces valeurs par défaut, y compris :
compute/region
compute/zone
run/cluster
run/cluster_location
run/platform
run/region
Exécutez la commande
gcloud
config suivante pour afficher vos paramètres pour la configuration default
:
gcloud config configurations describe default
Console
Pour déployer une image de conteneur, procédez comme suit :
Accédez à Cloud Run for Anthos dans la console Google Cloud :
Cliquez sur Create service (Créer un service) pour afficher la page Créer un service.
Dans le formulaire :
Sélectionnez la plate-forme Cloud Run pour Anthos sur laquelle vous effectuez le déploiement :
- Cloud Run pour Anthos pour déployer sur un cluster GKE ou Anthos sur VMware avec Cloud Run pour Anthos activé.
Dans le menu déroulant, sélectionnez l'un des clusters GKE disponibles pour votre service.
Saisissez le nom de service souhaité. Les noms de service doivent être uniques par région et par projet ou par cluster. Vous ne pourrez pas les modifier par la suite.
Sous Connectivité :
- Sélectionnez Interne si vous souhaitez limiter l'accès aux autres services Cloud Run pour Anthos ou aux services de votre cluster qui utilisent Istio.
- Sélectionnez Externe pour autoriser l'accès externe à votre service.
Sachez que vous pouvez modifier l'option de connectivité à tout moment, comme décrit sur la page Modifier les paramètres de connectivité du service.
Cliquez sur Next (Suivant) pour passer à la deuxième page du formulaire de création de service :
Dans le formulaire :
Dans la zone de texte URL de l'image du conteneur, indiquez l'URL d'une image d'un registre compatible, par exemple :
gcr.io/myproject/my-image:latest
Pour utiliser Artifact Registry avec vos images de conteneurs privées, vous devez utiliser le condensé de l'image. Si vous souhaitez utiliser le tag de vos images de conteneurs privées, vous devez créer et utiliser un élément
imagePullSecret
jusqu'à ce que le problème connu soit résolu.Vous pouvez également cliquer sur Show Advanced Settings (Afficher les paramètres avancés) et sur les onglets suivants pour définir les éléments suivants :
Cliquez sur Create (Créer) pour déployer l'image sur Cloud Run pour Anthos et attendez la fin du déploiement.
Vous venez de déployer un service sur un cluster compatible avec Cloud Run pour Anthos.
Ligne de commande
Pour déployer une image de conteneur, procédez comme suit :
Exécutez la commande
gcloud run deploy
:gcloud run deploy SERVICE --image IMAGE_URL
Remplacez SERVICE par le nom du service sur lequel effectuer le déploiement. Si le service spécifié n'existe pas, un nouveau service est créé.
Remplacez IMAGE_URL par une référence à l'image de conteneur, par exemple
gcr.io/myproject/my-image:latest
.Pour utiliser Artifact Registry avec vos images de conteneurs privées, vous devez utiliser le condensé de l'image.
Si vous souhaitez utiliser le tag de vos images de conteneurs privées, vous devez créer et utiliser un élément
imagePullSecret
jusqu'à ce que le problème connu soit résolu.
Options de déploiement supplémentaires :
Pour effectuer un déploiement dans un espace de noms autre que celui par défaut, vous devez spécifier cet espace de noms à l'aide du paramètre
--namespace
.Pour effectuer un déploiement sur un emplacement autre que la configuration par défaut, vous devez spécifier les éléments
name
etlocation
du cluster avec les paramètres--cluster
et--cluster-location
:gcloud run deploy SERVICE --cluster CLUSTER-NAME --cluster-location CLUSTER-LOCATION
Vous pouvez définir les options de connectivité à l'aide de l'option
--connectivity
, comme décrit dans la section Modifier les paramètres de connectivité du service afin de spécifier un accès interne ou externe.Pour Cloud Run for Anthos sur VMware, vous devez inclure le paramètre
--kubeconfig
et spécifier votre fichier de configuration :gcloud run deploy SERVICE --image IMAGE_URL --kubeconfig KUBECONFIG-FILE
Patientez jusqu'à la fin du déploiement. Une fois l'opération achevée, un message de réussite indiquant l'URL du service déployé s'affiche.
YAML
Vous pouvez stocker votre spécification de service dans un fichier YAML
, puis la déployer à l'aide de Google Cloud CLI.
Créez un fichier
service.yaml
avec le contenu suivant :apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: spec: containers: - image: IMAGE
Remplacer
- SERVICE par le nom de votre service Cloud Run pour Anthos ;
- IMAGE par l'URL de votre image de conteneur. Pour utiliser Artifact Registry avec vos images de conteneurs privées, vous devez utiliser le condensé de l'image.
Si vous souhaitez utiliser le tag de vos images de conteneurs privées, vous devez créer et utiliser un élément
imagePullSecret
jusqu'à ce que le problème connu soit résolu.
Vous pouvez également spécifier d'autres éléments de configuration, tels que des variables d'environnement ou des limites de mémoire.
Déployez le nouveau service à l'aide de la commande suivante :
gcloud beta run services replace service.yaml
Cloud Code
Pour déployer avec Cloud Code, consultez les guides IntelliJ et Visual Studio Code.
Déployer une nouvelle révision d'un service existant
Vous pouvez déployer une nouvelle révision à l'aide de Google Cloud Console, de la ligne de commande gcloud
ou d'un fichier de configuration YAML.
Notez que la modification des paramètres de configuration entraîne la création d'une révision, même si l'image du conteneur ne change pas. Chaque révision créée est immuable.
Cliquez sur l'onglet pour obtenir des instructions concernant l'utilisation de l'outil de votre choix.
Console
Pour déployer une nouvelle révision d'un service existant, procédez comme suit :
Accédez à Cloud Run for Anthos dans la console Google Cloud :
Recherchez le service que vous souhaitez mettre à jour dans la liste des services, puis cliquez dessus pour en afficher les détails.
Cliquez sur MODIFIER ET DÉPLOYER LA NOUVELLE RÉVISION. Le formulaire de déploiement de la révision s'affiche :
Si nécessaire, fournissez l'URL de la nouvelle image de conteneur que vous souhaitez déployer.
Vous pouvez également définir les éléments suivants :
Pour envoyer l'ensemble du trafic vers la nouvelle révision, cochez la case intitulée Diffuser immédiatement la révision. Pour déployer progressivement une nouvelle révision, décochez cette case : le trafic ne sera pas envoyé à la nouvelle révision. Suivez les instructions pour les déploiements progressifs à l'issue du déploiement.
Cliquez sur DÉPLOYER et attendez la fin du déploiement.
Ligne de commande
Pour déployer une image de conteneur, procédez comme suit :
Exécutez la commande
gcloud run services update
:gcloud run services update SERVICE --image IMAGE_URL
- Un suffixe de révision est automatiquement attribué à chaque révision. Si vous souhaitez spécifier votre propre suffixe de révision, ajoutez le paramètre --revision-suffix.
Remplacez SERVICE par le nom du service sur lequel effectuer le déploiement. Si le service spécifié n'existe pas, un nouveau service est créé.
Remplacez IMAGE_URL par une référence à l'image de conteneur, par exemple
gcr.io/myproject/my-image:latest
.Pour utiliser Artifact Registry avec vos images de conteneurs privées, vous devez utiliser le condensé de l'image.
Si vous souhaitez utiliser le tag de vos images de conteneurs privées, vous devez créer et utiliser un élément
imagePullSecret
jusqu'à ce que le problème connu soit résolu.
Options de déploiement supplémentaires :
Pour effectuer un déploiement dans un espace de noms autre que celui par défaut, vous devez spécifier cet espace de noms à l'aide du paramètre
--namespace
.Pour effectuer un déploiement sur un emplacement autre que la configuration par défaut, vous devez spécifier les éléments
name
etlocation
du cluster avec les paramètres--cluster
et--cluster-location
:gcloud run deploy SERVICE --cluster CLUSTER-NAME --cluster-location CLUSTER-LOCATION
Vous pouvez définir les options de connectivité à l'aide de l'option
--connectivity
, comme décrit dans la section Modifier les paramètres de connectivité du service afin de spécifier un accès interne ou externe.Pour Cloud Run for Anthos sur VMware, vous devez inclure le paramètre
--kubeconfig
et spécifier votre fichier de configuration :gcloud run deploy SERVICE --image IMAGE_URL --kubeconfig KUBECONFIG-FILE
Patientez jusqu'à la fin du déploiement. Une fois l'opération achevée, un message de réussite indiquant l'URL du service déployé s'affiche.
YAML
Vous pouvez télécharger la configuration d'un service existant dans un fichier YAML avec la commande gcloud run services describe
à l'aide de l'option --format=export
.
Vous pouvez ensuite modifier ce fichier YAML et déployer ces modifications à l'aide de la commande gcloud beta run services replace
.
Veillez à ne modifier que les attributs spécifiés.
Téléchargez la configuration de votre service dans un fichier nommé
service.yaml
sur l'espace de travail local :gcloud run services describe SERVICE --format export > service.yaml
Remplacez SERVICE par le nom de votre service Cloud Run pour Anthos.
Dans votre fichier local, mettez à jour les paramètres de révision dans n'importe quel attribut enfant de
spec.template
.Déployez la nouvelle révision :
gcloud beta run services replace service.yaml
Cloud Code
Pour déployer une nouvelle révision d'un service existant avec Cloud Code, consultez les guides IntelliJ et Visual Studio Code.
Déployer des images à partir d'autres projets Google Cloud
Vous pouvez déployer des images de conteneurs à partir d'autres projets Google Cloud si vous définissez les autorisations IAM appropriées :
Dans la console Google Cloud, ouvrez le projet de votre service Cloud Run for Anthos.
Si vous déployez sur :
Cloud Run pour Anthos, copiez l'adresse e-mail du compte de service Compute Engine par défaut. Elle porte le suffixe @developer.gserviceaccount.com.
Cloud Run for Anthos sur VMware, créez un compte de service Google Cloud et téléchargez les identifiants. Ajoutez ces identifiants en tant que
imagePullSecrets
par défaut du compte de service Kubernetes.
Ouvrez le projet qui contient le registre de conteneurs que vous souhaitez utiliser.
Cliquez sur Ajouter pour ajouter une entité principale.
Dans la zone de texte Nouveaux comptes principaux, collez l'adresse e-mail du compte de service que vous avez copié précédemment.
Dans la liste déroulante Sélectionner un rôle, sélectionnez le rôle Stockage > Lecteur des objets de l'espace de stockage.
Déployez l'image de conteneur sur le projet contenant votre service Cloud Run pour Anthos.
Déployer des images de conteneurs privées à partir d'autres registres de conteneurs
Cette section décrit la configuration des autorisations appropriées pour déployer des images de conteneurs depuis un registre privé arbitraire vers Cloud Run pour Anthos. Un registre de conteneurs privé nécessite des identifiants pour accéder à l'image de conteneur. Notez que vous n'avez pas besoin de suivre ces étapes pour déployer des images de conteneurs privées à partir de Container Registry ou Artifact Registry dans le même projet que votre cluster.
Pour déployer une image de conteneur privée, vous devez créer un secret Kubernetes de type imagePullSecret
et l'associer à un compte de service :
Créez un secret
imagePullSecret
appelécontainer-registry
:kubectl create secret docker-registry container-registry \ --docker-server=DOCKER_REGISTRY_SERVER \ --docker-email=REGISTRY_EMAIL \ --docker-username=REGISTRY_USER \ --docker-password=REGISTRY_PASSWORD
- Remplacez DOCKER_REGISTRY_SERVER par le nom de domaine complet de votre registre privé (par exemple, https://gcr.io/ pour Container Registry ou https://hub.docker.com pour DockerHub).
- Remplacez REGISTRY_EMAIL par votre adresse e-mail.
Remplacez REGISTRY_USER par votre nom d'utilisateur du registre de conteneurs.
Si vous utilisez Container Registry ou Artifact Registry et que vous souhaitez stocker et extraire des identifiants de longue durée au lieu de transmettre des jetons d'accès de courte durée, consultez la section Méthodes d'authentification : fichier de clé JSON.
Remplacez REGISTRY_PASSWORD par votre mot de passe du registre de conteneurs.
Ouvrez votre compte de service par défaut :
kubectl edit serviceaccount default --namespace default
Chaque espace de noms de votre cluster Kubernetes possède un compte de service par défaut appelé
default
. Ce compte de service par défaut est utilisé, sauf indication contraire, pour extraire votre image de conteneur lorsque vous déployez votre service Cloud Run pour Anthos.Ajoutez le secret nouvellement créé
imagePullSecret
à votre compte de service par défaut :imagePullSecrets: - name: container-registry
Votre compte de service doit maintenant se présenter comme suit :
apiVersion: v1 kind: ServiceAccount metadata: name: default namespace: default ... secrets: - name: default-token-zd84v # The secret we just created: imagePullSecrets: - name: container-registry
Désormais, tout pod créé dans l'espace de noms default
actuel sera associé au secret imagePullSecret
.
Déployer avec l'injection side-car Istio automatique activée
Pour déployer votre service sur l'espace de noms avec l'injection side-car Istio automatique activée, vous devez utiliser une installation Istio distincte.
Déployer des services sur un réseau interne
Le déploiement de services sur un réseau interne est utile pour les entreprises qui fournissent des applications internes à leur personnel, ainsi que pour les services utilisés par des clients et s'exécutant en dehors du cluster Cloud Run pour Anthos.
Pour déployer des services sur un réseau interne, consultez la section Configurer un réseau interne privé.
Étapes suivantes
Après avoir déployé un nouveau service, vous pouvez effectuer les opérations suivantes :
- Déploiements progressifs, révisions de rollback, migration du trafic
- Afficher les journaux du service
- Surveiller les performances du service
- Définir les limites de mémoire
- Définir des variables d'environnement
- Changer la simultanéité du service
- Gérer le service
- Gérer les révisions du service
Vous pouvez automatiser la création et le déploiement de vos services Cloud Run pour Anthos avec les déclencheurs Cloud Build :