GSP682
Présentation
Les instances de VM peuvent exister sur site, être gérées par des produits tels que VMware vSphere, et se trouver dans des clouds publics comme AWS ou Azure, en plus des instances Google Cloud Compute Engine.
Anthos est une plate-forme d'applications Open Source qui vous permet de moderniser vos applications existantes dans votre environnement hybride ou multicloud. Vous pouvez créer de nouvelles VM et les exécuter n'importe où de manière sécurisée. Anthos repose sur des technologies Open Source élaborées par Google, comme Kubernetes, Istio et Knative, et garantit la cohérence entre les environnements cloud et sur site.
Comme les charges de travail sont converties en conteneurs, les équipes informatiques n'ont plus besoin d'effectuer de maintenance ni d'appliquer des correctifs de sécurité au niveau du système d'exploitation pour les VM. Par ailleurs, les mises à jour de stratégie et de sécurité sont automatisées et effectuées à grande échelle. La surveillance des environnements cloud et sur site s'effectue à l'aide d'une seule interface dans la console Cloud.
Migrate to Containers permet de convertir quasiment instantanément une VM existante en pod hébergé sur Kubernetes, avec toutes les valeurs associées à l'exécution de vos applications dans un cluster Kubernetes.
Dans cet atelier, vous allez créer une machine virtuelle (VM) Compute Engine simple, puis utiliser Migrate to Containers pour migrer la VM vers un cluster de traitement GKE dans le cloud.
Vous pouvez effectuer les étapes à l'aide de l'outil migctl
ou de la console Cloud. migctl
est un outil de ligne de commande permettant de configurer et de gérer un environnement de migration Migrate to Containers sur Google Cloud. migctl
est disponible dans Cloud Shell.
Migrate to Containers accélère la conteneurisation :
Objectifs
Vous allez apprendre à :
- créer une instance Compute Engine hébergeant un serveur Web ;
- créer un cluster GKE pour héberger l'instance Compute Engine migrée ;
- migrer l'instance Compute Engine à l'aide de Migrate to Containers ;
- tester le serveur Web existant dans GKE.
Préparation
Avant de cliquer sur le bouton "Démarrer l'atelier"
Lisez ces instructions. Les ateliers sont minutés, et vous ne pouvez pas les mettre en pause. Le minuteur, qui démarre lorsque vous cliquez sur Démarrer l'atelier, indique combien de temps les ressources Google Cloud resteront accessibles.
Cet atelier pratique vous permet de suivre vous-même les activités dans un véritable environnement cloud, et non dans un environnement de simulation ou de démonstration. Nous vous fournissons des identifiants temporaires pour vous connecter à Google Cloud le temps de l'atelier.
Pour réaliser cet atelier :
- vous devez avoir accès à un navigateur Internet standard (nous vous recommandons d'utiliser Chrome) ;
Remarque : Ouvrez une fenêtre de navigateur en mode incognito/navigation privée pour effectuer cet atelier. Vous éviterez ainsi les conflits entre votre compte personnel et le temporaire étudiant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.
- vous disposez d'un temps limité ; une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
Remarque : Si vous possédez déjà votre propre compte ou projet Google Cloud, veillez à ne pas l'utiliser pour réaliser cet atelier afin d'éviter que des frais supplémentaires ne vous soient facturés.
Démarrer l'atelier et se connecter à la console Google Cloud
-
Cliquez sur le bouton Démarrer l'atelier. Si l'atelier est payant, un pop-up s'affiche pour vous permettre de sélectionner un mode de paiement.
Sur la gauche, vous trouverez le panneau Détails concernant l'atelier, qui contient les éléments suivants :
- Le bouton Ouvrir la console Google Cloud
- Le temps restant
- Les identifiants temporaires que vous devez utiliser pour cet atelier
- Des informations complémentaires vous permettant d'effectuer l'atelier
-
Cliquez sur Ouvrir la console Google Cloud (ou effectuez un clic droit et sélectionnez Ouvrir le lien dans la fenêtre de navigation privée si vous utilisez le navigateur Chrome).
L'atelier lance les ressources, puis ouvre la page Se connecter dans un nouvel onglet.
Conseil : Réorganisez les onglets dans des fenêtres distinctes, placées côte à côte.
Remarque : Si la boîte de dialogue Sélectionner un compte s'affiche, cliquez sur Utiliser un autre compte.
-
Si nécessaire, copiez le nom d'utilisateur ci-dessous et collez-le dans la boîte de dialogue Se connecter.
{{{user_0.username | "Username"}}}
Vous trouverez également le nom d'utilisateur dans le panneau Détails concernant l'atelier.
-
Cliquez sur Suivant.
-
Copiez le mot de passe ci-dessous et collez-le dans la boîte de dialogue Bienvenue.
{{{user_0.password | "Password"}}}
Vous trouverez également le mot de passe dans le panneau Détails concernant l'atelier.
-
Cliquez sur Suivant.
Important : Vous devez utiliser les identifiants fournis pour l'atelier. Ne saisissez pas ceux de votre compte Google Cloud.
Remarque : Si vous utilisez votre propre compte Google Cloud pour cet atelier, des frais supplémentaires peuvent vous être facturés.
-
Accédez aux pages suivantes :
- Acceptez les conditions d'utilisation.
- N'ajoutez pas d'options de récupération ni d'authentification à deux facteurs (ce compte est temporaire).
- Ne vous inscrivez pas à des essais gratuits.
Après quelques instants, la console Cloud s'ouvre dans cet onglet.
Remarque : Pour afficher un menu contenant la liste des produits et services Google Cloud, cliquez sur le menu de navigation en haut à gauche.
Activer Cloud Shell
Cloud Shell est une machine virtuelle qui contient de nombreux outils pour les développeurs. Elle comprend un répertoire d'accueil persistant de 5 Go et s'exécute sur Google Cloud. Cloud Shell vous permet d'accéder via une ligne de commande à vos ressources Google Cloud.
- Cliquez sur Activer Cloud Shell en haut de la console Google Cloud.
Une fois connecté, vous êtes en principe authentifié et le projet est défini sur votre ID_PROJET. Le résultat contient une ligne qui déclare YOUR_PROJECT_ID (VOTRE_ID_PROJET) pour cette session :
Your Cloud Platform project in this session is set to YOUR_PROJECT_ID
gcloud
est l'outil de ligne de commande pour Google Cloud. Il est préinstallé sur Cloud Shell et permet la complétion par tabulation.
- (Facultatif) Vous pouvez lister les noms des comptes actifs à l'aide de cette commande :
gcloud auth list
-
Cliquez sur Autoriser.
-
Vous devez à présent obtenir le résultat suivant :
Résultat :
ACTIVE: *
ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- (Facultatif) Vous pouvez lister les ID de projet à l'aide de cette commande :
gcloud config list project
Résultat :
[core]
project = <ID_Projet>
Exemple de résultat :
[core]
project = qwiklabs-gcp-44776a13dea667a6
Remarque : Pour consulter la documentation complète sur gcloud
, dans Google Cloud, accédez au guide de présentation de la gcloud CLI.
- Définissez une variable d'environnement pour votre ID de projet :
export PROJECT_ID=$DEVSHELL_PROJECT_ID
Tâche 1 : Créer l'instance Compute Engine source
- Exécutez la commande suivante pour créer et configurer une instance Compute Engine qui servira de source pour la VM à migrer :
gcloud compute instances create source-vm --zone={{{project_0.startup_script.lab_zone | zone}}} --machine-type=e2-standard-2 --subnet=default --scopes="cloud-platform" --tags=http-server,https-server --image=ubuntu-minimal-1604-xenial-v20210119a --image-project=ubuntu-os-cloud --boot-disk-size=10GB --boot-disk-type=pd-standard --boot-disk-device-name=source-vm \
--metadata startup-script={{{project_0.startup_script.metadata_script|METADATA_SCRIPT}}}
Vous avez installé le serveur Web Apache et créé une page Web de base avec le script de démarrage.
Exemple de résultat :
Created [https://www.googleapis.com/compute/beta/projects/qwiklabs-gcp-02-ace18e67a4ba/zones/{{{project_0.startup_script.lab_zone | zone}}}/instances/source-vm].
NAME: source-vm
ZONE: {{{project_0.startup_script.lab_zone | zone}}}
MACHINE_TYPE: e2-standard-2
PREEMPTIBLE:
INTERNAL_IP: 10.128.0.2
EXTERNAL_IP: 34.70.249.10
STATUS: RUNNING
- Créez une règle de pare-feu pour autoriser le protocole HTTP :
gcloud compute firewall-rules create default-allow-http --direction=INGRESS --priority=1000 --network=default --action=ALLOW --rules=tcp:80 --source-ranges=0.0.0.0/0 --target-tags=http-server
Exemple de résultat :
Creating firewall...working..Created [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-04-1126b7a391de/global/firewalls/default-allow-http].
Creating firewall...done.
NAME: default-allow-http
NETWORK: default
DIRECTION: INGRESS
PRIORITY: 1000
ALLOW: tcp:80
DENY:
DISABLED: False
Cliquez sur Vérifier ma progression pour valider l'objectif.
Créer l'instance Compute Engine source
-
Dans Cloud Console, accédez à Compute Engine > VM instances (Instances de VM). Repérez la ligne de l'instance que vous avez créée et copiez l'adresse IP externe.
-
Collez l'adresse IP de l'instance dans la barre d'adresse de votre navigateur. Ajoutez le préfixe http://
.
La page "Hello World" doit s'afficher.
Pour migrer la VM, commencez par arrêter son exécution.
- Dans la console Cloud, accédez à Compute Engine > Instances de VM. Cochez la case située à gauche de
source-vm
, puis cliquez sur le bouton ARRÊTER qui se trouve en haut.
Remarque : Si vous ne voyez pas le bouton Arrêter, sélectionnez le bouton Autres actions (trois points verticaux) et choisissez "Arrêter" dans le menu déroulant.
- Confirmez l'arrêt en cliquant sur Arrêter dans la fenêtre pop-up. Vous pouvez passer à la section suivante pendant l'arrêt de la VM.
Remarque : La VM doit être arrêtée pour que vous puissiez la migrer. Vous pouvez la redémarrer après avoir créé la migration (voir ci-dessous), soit à l'aide de l'interface utilisateur, soit à l'aide de la commande migctl migration create
.
Tâche 2 : Créer un cluster de traitement
Dans les étapes suivantes, vous allez créer un cluster GKE dans le cloud que vous utiliserez comme cluster de traitement. C'est dans ce cluster que vous installerez Migrate to Containers et que vous exécuterez la migration.
- Dans Cloud Shell, utilisez la commande ci-dessous pour créer un cluster Kubernetes qui servira de cluster de traitement :
gcloud container clusters create migration-processing --project=$PROJECT_ID --zone={{{project_0.startup_script.lab_zone | zone}}} --machine-type e2-standard-4 --image-type ubuntu_containerd --num-nodes 3 --enable-stackdriver-kubernetes --subnetwork "projects/$PROJECT_ID/regions/{{{project_0.startup_script.lab_region | region}}}/subnetworks/default"
Remarque : Veillez à indiquer la même zone que celle que vous avez spécifiée lors de la création de la VM.
Exemple de résultat :
Creating cluster migration-processing in {{{project_0.startup_script.lab_zone | zone}}} ...done.
Created [https://container.googleapis.com/v1/projects/qwiklabs-gcp-04-1126b7a391de/zones/{{{project_0.startup_script.lab_zone | zone}}}/clusters/migration-processing].
To inspect the contents of your cluster, go to: https://console.cloud.google.com/kubernetes/workload_/gcloud/{{{project_0.startup_script.lab_zone | zone}}}/migration-processing?project=qwiklabs-gcp-04-1126b7a391de
kubeconfig entry generated for migration-processing.
NAME: migration-processing
LOCATION: {{{project_0.startup_script.lab_zone | zone}}}
MASTER_VERSION: 1.20.10-gke.301
MASTER_IP: 35.202.0.171
MACHINE_TYPE: e2-standard-4
NODE_VERSION: 1.20.10-gke.301
NUM_NODES: 3
STATUS: RUNNING
Cliquez sur Vérifier ma progression pour valider l'objectif.
Créer un cluster de traitement
Tâche 3 : Installer Migrate to Containers
Pour autoriser Migrate to Containers à accéder à Container Registry et à Cloud Storage, vous devez créer un compte de service doté du rôle storage.admin
.
- Dans Cloud Shell, créez le compte de service
m4a-install
:
gcloud iam service-accounts create m4a-install \
--project=$PROJECT_ID
- Accordez le rôle
storage.admin
au compte de service :
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:m4a-install@$PROJECT_ID.iam.gserviceaccount.com" \
--role="roles/storage.admin"
- Téléchargez le fichier de clé du compte de service :
gcloud iam service-accounts keys create m4a-install.json \
--iam-account=m4a-install@$PROJECT_ID.iam.gserviceaccount.com \
--project=$PROJECT_ID
- Connectez-vous au cluster :
gcloud container clusters get-credentials migration-processing --zone {{{project_0.startup_script.lab_zone | zone}}}
- Configurez les composants Migrate to Containers sur votre cluster de traitement à l'aide de l'outil de ligne de commande
migctl
inclus dans Migrate to Containers :
migctl setup install --json-key=m4a-install.json --gcp-project $PROJECT_ID --gcp-region {{{project_0.startup_script.lab_region | region}}}
- Validez l'installation de Migrate to Containers. Utilisez la commande
migctl doctor
pour confirmer le déploiement :
migctl doctor
Il peut s'écouler plus d'une minute avant que la commande ne renvoie le résultat ci-dessous :
Exemple de résultat :
[✓] Deployment
[✓] Docker registry
[✓] Artifacts repo
[x] Source Status
Remarque : La section "Source Status" (État de la source) affiche [x] jusqu'à ce que vous définissiez votre première source de migration ci-dessous.
- Réexécutez la commande jusqu'à ce que le déploiement soit réussi.
Tâche 4 : Migrer la VM
Vous allez maintenant créer un plan de migration avec les informations sur la migration, puis l'utiliser pour migrer la VM.
Pour utiliser Compute Engine en tant que source de migration, vous devez d'abord créer un compte de service avec les rôles compute.viewer
et compute.storageAdmin
:
- Dans Cloud Shell, créez le compte de service
m4a-ce-src
:
gcloud iam service-accounts create m4a-ce-src \
--project=$PROJECT_ID
- Accordez le rôle
compute.viewer
au compte de service :
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:m4a-ce-src@$PROJECT_ID.iam.gserviceaccount.com" \
--role="roles/compute.viewer"
- Accordez le rôle
compute.storageAdmin
au compte de service :
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:m4a-ce-src@$PROJECT_ID.iam.gserviceaccount.com" \
--role="roles/compute.storageAdmin"
- Téléchargez le fichier de clé du compte de service :
gcloud iam service-accounts keys create m4a-ce-src.json \
--iam-account=m4a-ce-src@$PROJECT_ID.iam.gserviceaccount.com \
--project=$PROJECT_ID
- Créez la source de la migration :
migctl source create ce source-vm --project $PROJECT_ID --json-key=m4a-ce-src.json
Dans cette commande, m4a-ce-src.json
correspond au compte de service que vous avez créé ci-dessus.
Créer une migration
Pour commencer à migrer des VM, vous devez créer une migration. Cela vous permet d'obtenir un objet de plan de migration.
Une migration est l'objet central via lequel vous effectuez des actions de migration et surveillez les activités/l'état de la migration à l'aide de l'outil migctl ou dans la console Cloud. L'objet de migration est implémenté en tant que définition de ressource personnalisée (CRD, Custom Resource Definition) Kubernetes.
Vous allez ensuite créer une migration en exécutant l'outil migctl
.
- Créez le plan de migration qui définit les éléments à migrer :
migctl migration create my-migration --source source-vm --vm-id source-vm --type linux-system-container
Exemple de résultat :
Migration my-migration was created. Run `migctl migration status my-migration` to see its status.
- Exécutez la commande suivante pour vérifier l'état :
migctl migration status my-migration
Lorsque l'état indique que la migration est terminée, vous pouvez passer à l'étape suivante.
NAME CURRENT-OPERATION PROGRESS STEP STATUS AGE
my-migration GenerateMigrationPlan [3/3] Discovery Completed 1m30s
Examiner le plan de migration
- Pour cet atelier, vous utiliserez le plan de migration par défaut. Vous allez à présent télécharger le plan de migration uniquement pour l'examiner :
migctl migration get my-migration
- Ouvrez le fichier
my-migration.yaml
dans l'éditeur de texte de votre choix ou dans l'éditeur de code de Cloud Shell pour l'examiner.
Si vous devez apporter des modifications, importez le nouveau plan à l'aide de la commande migctl migration update my-migration
.
Tâche 5 : Migrer la VM à l'aide du plan de migration
- La commande suivante permet de migrer la VM et de générer des artefacts que vous pouvez utiliser pour déployer la charge de travail :
migctl migration generate-artifacts my-migration
Remarque : Si vous obtenez le résultat Error: Migration plan generation is not completed (Erreur : le plan de migration n'a pas été généré), réexécutez la commande jusqu'à ce que vous obteniez le résultat décrit dans l'exemple.
Exemple de résultat :
Generate Artifacts task started for Migration my-migration. Run `migctl migration status my-migration` to see its status.
- Une fois la migration lancée, vérifiez son état en exécutant la commande suivante :
migctl migration status my-migration
La migration peut prendre plusieurs minutes.
- Réexécutez la commande jusqu'à ce que l'état "Completed" (Terminé) apparaisse.
NAME CURRENT-OPERATION PROGRESS STEP STATUS AGE
my-migration GenerateArtifacts [3/3] GenerateDeploymentFiles Completed 7m35s
- Vous pouvez ajouter l'option
-v
pour la verbosité :
migctl migration status my-migration -v
Tâche 6 : Déployer la charge de travail migrée
Dans les étapes ci-dessous, vous allez obtenir les artefacts de déploiement que vous avez générés lors de la migration, puis les utiliser pour déployer votre charge de travail migrée sur le cluster. Pour terminer, vérifiez que la page Web "Hello World!" est disponible depuis votre application migrée.
- Une fois la migration terminée, récupérez les artefacts YAML générés :
migctl migration get-artifacts my-migration
La commande télécharge les fichiers générés lors de la migration :
-
deployment_spec.yaml : le fichier YAML qui configure votre charge de travail
-
Dockerfile : le fichier utilisé pour créer l'image pour votre VM migrée
-
migration.yaml : une copie du plan de migration
-
blocklist.yaml : la liste des services de conteneurs à désactiver en fonction de vos paramètres dans le plan de migration
-
Si l'éditeur Cloud Shell n'est pas déjà ouvert, cliquez sur le bouton Ouvrir l'éditeur.
-
Ouvrez le fichier deployment_spec.yaml et recherchez l'objet Service
appelé source-vm
.
-
Sous la définition Service
suivante, ajoutez à la fin un autre Service
qui exposera le port 80 pour l'accès à votre serveur Web via HTTP :
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app: source-vm
ports:
- protocol: TCP
port: 80
targetPort: 80
type: LoadBalancer
Votre fichier devrait se présenter comme suit :
apiVersion: v1
kind: Service
metadata:
creationTimestamp: null
name: source-vm
spec:
clusterIP: None
selector:
app: source-vm
type: ClusterIP
status:
loadBalancer: {}
---
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app: source-vm
ports:
- protocol: TCP
port: 80
targetPort: 80
type: LoadBalancer
-
Enregistrez le fichier.
-
Appliquez deployment_spec.yaml
pour déployer la charge de travail :
kubectl apply -f deployment_spec.yaml
Exemple de résultat :
deployment.apps/source-vm created
service/source-vm created
service/my-service created
Le déploiement peut prendre quelques minutes.
- À présent, recherchez une adresse IP externe :
kubectl get service
Exemple de résultat :
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
hello-service LoadBalancer 10.23.253.140 35.184.157.83 80:31060/TCP 11m
kubernetes ClusterIP 10.23.240.1 443/TCP 31m
my-service LoadBalancer 10.23.244.80 104.197.196.94 80:31026/TCP 2m3s
source-vm ClusterIP None 11m
Lorsque le serveur Web est prêt, une adresse IP externe s'affiche pour le service my-service
que vous avez ajouté.
Tâche 7 : Tester la migration
- Pour tester la migration, ouvrez un navigateur et rendez-vous sur la page Web à l'adresse IP externe de
my-service
(veillez à utiliser HTTP plutôt que HTTPS).
Exemple :
http://<my-service-external-IP>
Cliquez sur Vérifier ma progression pour valider l'objectif.
Vérifier la création de my-service via la migration
Félicitations !
Vous avez migré une instance Compute Engine vers un pod Kubernetes à l'aide de Migrate to Containers. Vous pouvez utiliser cette technique pour d'autres sources de VM, telles que VMware vSphere, AWS et Azure entre autres.
Terminer votre quête
Cet atelier d'auto-formation fait partie de la quête VM Migration. Une quête est une série d'ateliers associés qui constituent un parcours de formation. Si vous terminez une quête, vous obtenez un badge attestant de votre réussite. Vous pouvez rendre publics les badges que vous recevez et ajouter leur lien dans votre CV en ligne ou sur vos comptes de réseaux sociaux. Inscrivez-vous à n'importe quelle quête contenant cet atelier pour obtenir immédiatement les crédits associés. Découvrez toutes les quêtes disponibles dans le catalogue Google Cloud Skills Boost.
Atelier suivant
Étapes suivantes et informations supplémentaires
Terminer l'atelier
Une fois l'atelier terminé, cliquez sur Terminer l'atelier. Votre compte et les ressources utilisées sont alors supprimés de la plate-forme d'atelier.
Si vous le souhaitez, vous pouvez noter l'atelier. Sélectionnez un nombre d'étoiles, saisissez un commentaire, puis cliquez sur Envoyer.
Voici à quoi correspond le nombre d'étoiles que vous pouvez attribuer à un atelier :
- 1 étoile = très insatisfait(e)
- 2 étoiles = insatisfait(e)
- 3 étoiles = ni insatisfait(e), ni satisfait(e)
- 4 étoiles = satisfait(e)
- 5 étoiles = très satisfait(e)
Si vous ne souhaitez pas donner votre avis, vous pouvez fermer la boîte de dialogue.
Pour soumettre des commentaires, suggestions ou corrections, veuillez accéder à l'onglet Assistance.
Dernière mise à jour du manuel : 18 novembre 2022
Dernier test de l'atelier : 6 juin 2022
Copyright 2025 Google LLC Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms d'entreprises et de produits peuvent être des marques des entreprises auxquelles ils sont associés.