Déployer des conteneurs dans Cloud Run
Si vous utilisez le gestionnaire de services Linux amélioré proposé par défaut pour migrer vos charges de travail de conteneur, vous pouvez déployer le conteneur sur Cloud Run sans avoir à apporter de modifications supplémentaires au conteneur.
Pour déployer votre conteneur sur Cloud Run, procédez comme suit :
Ajoutez une source de migration, puis créez une migration comme vous le faites aujourd'hui avec l'environnement d'exécution existant.
Personnalisez votre plan de migration si nécessaire.
Téléchargez le plan de migration. Le plan de migration est représenté par un objet AppXGenerateArtifactsFlow.
Par exemple, pour une migration nommée "my-migration" :
migctl migration get my-migration
Ouvrez le plan de migration téléchargé,
my-migration.yaml
, dans un éditeur de texte.Vérifier le gestionnaire de services Linux amélioré L'option
v2kServiceManager
est définie surtrue
par défaut. Cependant, si Migrate to Containers détecte un service système non compatible avec le gestionnaire de services, vous êtes averti et l'optionv2kServiceManager
est définie surfalse
. Lorsque l'option estfalse
, la migration utilise un ancien environnement d'exécution compatible avec votre service.L'alerte suivante est fournie avec le service non compatible :
Service is not supported by v2k service manager, therefore legacy runtime will be used instead of v2k service manager, and migrated workload would not fit running on Autopilot clusters of Cloudrun.
Lorsqu'un service non compatible est détecté, vous pouvez également définir manuellement l'option sur
true
. Dans cette instance, vous pouvez choisir de conserver le service non compatible sur l'image générée où il ne s'exécutera pas, ou d'exclure le service en le supprimant du plan de migration.Pour activer le nouveau gestionnaire de services, définissez l'option sur
true
:v2kServiceManager: true
Effectuez toutes les autres personnalisations nécessaires à votre migration, comme décrit dans la section Personnaliser le plan de migration.
Une fois les modifications terminées, enregistrez le fichier modifié.
Importez le plan de migration modifié :
migctl migration update my-migration --main-config my-migration.yaml
Générez et examinez les artefacts de migration comme vous le faites actuellement avec l'environnement d'exécution existant.
Modifiez le nouveau fichier
services-config.yaml
pour configurer les propriétés d'initialisation du conteneur. Enregistrez le fichier et recréez votre image de conteneur pour appliquer les modifications.Pour plus d'informations sur la modification de fichier
services.yaml
, consultez la page Utiliser services-config.yaml.Après avoir généré les artefacts de migration, ouvrez le fichier
deployment_spec.yaml
dans un éditeur pour déterminer l'emplacement de l'image de conteneur. Par exemple, vous devriez voir s'afficher un résultat semblable au suivant :spec: containers: - image: gcr.io/PROJECT_NAME/IMAGE_NAME:LABEL
Où
gcr.io/PROJECT_NAME/IMAGE_NAME:LABEL
spécifie l'emplacement de l'image de conteneur.Utilisez la commande suivante pour déployer le conteneur sur Cloud Run :
gcloud run deploy my-runtime --image gcr.io/PROJECT_NAME/IMAGE_NAME:LABEL --region REGION --platform managed --set-env-vars=HC_V2K_SERVICE_MANAGER=true --port PORT
La propriété
--set-env-vars
définit la variable d'environnementHC_V2K_SERVICE_MANAGER
surtrue
pour activer le gestionnaire de services Linux amélioré.La propriété
--port
spécifie le port d'envoi des requêtes au conteneur. Le port par défaut est 8080.
Exemple : Déploiement du conteneur de démarrage rapide sur Cloud Run
Utilisez le guide de démarrage rapide actuel pour migrer un conteneur contenant un serveur Web simple, puis le déployer sur Cloud Run. Les seules modifications que vous devez apporter au processus de démarrage rapide sont les suivantes :
À l'étape 3 de la migration de la VM, où vous examinez le plan de migration, définissez
v2kServiceManager
surtrue
dans le plan de migration, puis enregistrez le plan :v2kServiceManager: true
Une fois la migration terminée, ouvrez le fichier
deployment_spec.yaml
dans un éditeur pour déterminer l'emplacement du conteneur. Par exemple, vous devriez voir s'afficher un résultat semblable au suivant :spec: containers: - image: gcr.io/PROJECT_NAME/quickstart-instance:LABEL
Dans la section Déployer la charge de travail migrée, déployez l'image de conteneur dans Cloud Run à l'aide de la commande suivante :
gcloud run deploy my-runtime --image gcr.io/PROJECT_NAME/quickstart-instance:LABEL --region REGION --platform managed --set-env-vars=HC_V2K_SERVICE_MANAGER=true --port 80
Le serveur Web du conteneur migré écoute les requêtes sur le port 80. Assurez-vous donc de spécifier ce port lors du déploiement du conteneur.
Vous devriez voir la réponse suivante, qui inclut l'URL du service Cloud Run :
Allow unauthenticated invocations to [my-runtime] (y/N)? y Deploying container to Cloud Run service [my-runtime] in project [PROJECT_NAME] region [REGION] Deploying new service... Done. ✓ Creating Revision… ✓ Routing traffic… Setting IAM Policy… Done. Service [my-runtime] revision [my-runtime-00001-sas] has been deployed and is serving 100 percent of traffic. Service URL: https://my-runtime-s5ahdq-uc.a.run.app
Depuis Cloud Shell, envoyez une requête au conteneur en utilisant son URL de service, en transmettant vos identifiants :
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" https://my-runtime-s5ahdq-uc.a.run.app
La page "Hello World!" doit s'afficher.
Étapes suivantes
- Découvrez comment utiliser services-config.yaml.