Guide de démarrage rapide : créer une VM dans des clusters Google Distributed Cloud
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Ce guide de démarrage rapide explique comment utiliser l'environnement d'exécution de VM sur GDC pour créer une machine virtuelle (VM) sur Google Distributed Cloud. L'environnement d'exécution de VM sur GDC utilise KubeVirt pour orchestrer les VM sur des clusters, ce qui vous permet de travailler avec vos applications et charges de travail basées sur des VM dans un environnement de développement uniforme.
Avant de commencer
Pour suivre ce guide de démarrage rapide, vous devez avoir accès à Google Distributed Cloud version 1.12 (anthosBareMetalVersion: 1.12) ou cluster supérieur. Vous pouvez utiliser n'importe quel type de cluster capable d'exécuter des charges de travail. Si nécessaire, essayez Google Distributed Cloud sur Compute Engine ou consultez la présentation de la création de clusters.
Activer l'environnement d'exécution de VM sur GDC
L'environnement d'exécution des VM sur GDC est automatiquement installé sur la version 1.10 ou ultérieure de Google Distributed Cloud, mais il est désactivé par défaut. Avant de pouvoir exécuter des ressources de VM dans votre Google Distributed Cloud, vous devez activer l'environnement d'exécution de VM sur GDC.
bmctl
Google Distributed Cloud version 1.11 ou ultérieure peut utiliser l'outil de ligne de commande bmctl:
Pour activer l'environnement d'exécution, utilisez l'outil bmctl :
bmctlenablevmruntime--kubeconfigKUBECONFIG_PATH
Indiquez le chemin d'accès au fichier kubeconfig du cluster.
Google Distributed Cloud génère le fichier kubeconfig sur la station de travail administrateur lorsque vous créez un cluster. Par défaut, le chemin d'accès est bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME-kubeconfig.
Si l'environnement d'exécution de VM sur GDC est déjà activé, la commande renvoie une erreur.
Ressource personnalisée
La version 1.10 ou ultérieure de Google Distributed Cloud peut utiliser une définition de ressource personnalisée pour activer l'environnement d'exécution des VM sur GDC. Cette ressource personnalisée est installée par défaut.
Modifiez la ressource personnalisée VMRuntime :
kubectleditvmruntime
Définissez enabled:true dans la spécification :
apiVersion:vm.cluster.gke.io/v1kind:VMRuntimemetadata:name:vmruntimespec:enabled:true# useEmulation defaults to "false" if not set.useEmulation:true# vmImageFormat defaults to "qcow2" if not set.vmImageFormat:qcow2
Dans la section spec précédente, les valeurs suivantes peuvent être définies :
enabled : défini sur "true" pour activer l'environnement d'exécution des VM sur GDC
useEmulation : si votre nœud n'est pas compatible avec la virtualisation matérielle, ou si vous n'êtes pas sûr, définissez la valeur sur "true". Si elle est disponible, la virtualisation matérielle offre de meilleures performances que l'émulation logicielle. Le champ useEmulation est défini par défaut sur false s'il n'est pas spécifié.
vmImageFormat : accepte deux valeurs de format d'image disque : raw et qcow2. Si vous ne définissez pas vmImageFormat, l'environnement d'exécution de VM sur GDC utilise le format d'image disque raw pour créer des VM. Le format raw peut améliorer les performances par rapport à qcow2, un format qui utilise la copie sur écriture, mais peut utiliser plus d'espace disque. Pour en savoir plus sur les formats d'image de votre VM, consultez la section Formats de fichiers d'image disque dans la documentation de QEMU.
Enregistrez la ressource personnalisée dans votre éditeur.
Vérifiez que la ressource personnalisée VMRuntime est activée :
kubectldescribevmruntimevmruntime
Les détails de la ressource personnalisée VMRuntime incluent une section Status.
L'environnement d'exécution de VM sur GDC est activé et fonctionne lorsque VMRuntime.Status.Ready affiche l'état true.
Les identifiants vous permettent de vous authentifier et de télécharger l'outil client virtctl, puis d'installer cet outil sur /usr/bin/kubectl-virt sur votre ordinateur local.
Vérifiez que le plug-in virtctl est installé :
kubectlpluginlist
Si kubectl-virt est répertorié dans la réponse, le plug-in est correctement installé.
Si kubectl-virt n'est pas répertorié, vérifiez le fichier install-virtctl.log comme indiqué dans le résultat de la commande bmctl install précédente (bmctl-workspace/log/install-virtctl-[date]/install-virtctl.log, par exemple).
Créer une VM
Dans ce guide de démarrage rapide, vous allez utiliser la CLI kubectl pour créer une VM qui utilise une image de VM publique et des identifiants par défaut.
Créez une VM dans votre cluster. Le plug-in virtctl s'utilise avec la commande kubectl :
Cette commande crée une VM Ubuntu 20.04 avec les valeurs par défaut suivantes : 2 processeurs, 4 Go de mémoire et un disque de démarrage de 20 Go en mode ReadWriteOnce qui utilise la classe de stockage local-shared. Remplacez les valeurs suivantes :
VM_NAME : nom de votre VM. Les noms de VM ne doivent contenir que des caractères alphanumériques minuscules ou '-'. Ils doivent commencer et se terminer par un caractère alphanumérique, et ne pas contenir plus de 63 caractères. Pour en savoir plus, consultez la section Noms des étiquettes RFC 1123 dans la documentation de Kubernetes.
USERNAME : nom d'utilisateur du compte à créer sur la VM.
PASSWORD : mot de passe du compte utilisateur.
Si vous recevez un message d'erreur sur les paramètres de la CLI, vérifiez que votre cluster est à la version 1.11.1 ou ultérieure et que vous disposez de la dernière version de l'outil client virtctl. Pour en savoir plus sur les erreurs de la CLI, consultez le journal de la console. Pour connaître les règles concernant les noms d'utilisateur et les mots de passe, consultez la documentation du système d'exploitation invité. Si quelque chose ne fonctionne pas comme prévu, consultez les problèmes connus de l'environnement d'exécution des VM sur GDC.
La création de la VM peut prendre quelques minutes. Vérifiez l'état de la VM en utilisant la commande kubectl :
kubectlgetgvm
L'exemple de résultat suivant affiche la VM à l'état Running :
NAME STATUS AGE IP
vm-sample1 Running 64s 192.168.2.124
Se connecter à votre VM
Lorsque votre VM est en cours d'exécution, connectez-vous à sa console.
Pour accéder à une VM depuis la console, utilisez kubectl :
kubectlvirtconsoleVM_NAME
Lorsque vous y êtes invité, saisissez les identifiants utilisateur que vous avez spécifiés pour créer la VM.
Une fois que vous êtes connecté à la console de la VM, quittez la session et la console de la VM :
Ctrl+]
Effectuer un nettoyage
Pour nettoyer les ressources créées dans ce guide de démarrage rapide, procédez comme suit :
Pour supprimer la VM et le volume de données associé, utilisez kubectl :
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/09/04 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/09/04 (UTC)."],[],[],null,["This quickstart shows you how to use VM Runtime on GDC to create a\nvirtual machine (VM) on Google Distributed Cloud. VM Runtime on GDC uses\n[KubeVirt](https://kubevirt.io/)\nto orchestrate VMs on clusters, and lets you work with your VM-based apps and\nworkloads in a uniform development environment.\n\nBefore you begin\n\nTo complete this quickstart, you need access to Google Distributed Cloud version\n1.12 (`anthosBareMetalVersion: 1.12`) or higher cluster. You can use any\ncluster type capable of running workloads. If needed,\n[try Google Distributed Cloud on Compute Engine](/kubernetes-engine/distributed-cloud/bare-metal/docs/try/gce-vms)\nor see the\n[cluster creation overview](/kubernetes-engine/distributed-cloud/bare-metal/docs/installing/creating-clusters/create-clusters-overview).\n\nEnable VM Runtime on GDC\n\nVM Runtime on GDC is automatically installed in Google Distributed Cloud\nversion 1.10 or higher, but is disabled by default. Before you can run VM\nresources in your Google Distributed Cloud, you must enable the\nVM Runtime on GDC. \n\nbmctl\n\nGoogle Distributed Cloud version 1.11 or higher can use the `bmctl` command-line tool:\n\n- To enable the runtime, use the `bmctl` tool:\n\n bmctl enable vmruntime --kubeconfig \u003cvar label=\"Kubeconfig path\" translate=\"no\"\u003eKUBECONFIG_PATH\u003c/var\u003e\n\n Provide the path to the kubeconfig file for your cluster.\n Google Distributed Cloud generates the kubeconfig file on the admin\n workstation when you create a cluster. By default, the path is\n `bmctl-workspace/`\u003cvar translate=\"no\"\u003eCLUSTER_NAME\u003c/var\u003e`/`\u003cvar translate=\"no\"\u003eCLUSTER_NAME\u003c/var\u003e`-kubeconfig`.\n\n If VM Runtime on GDC is already enabled, the command returns an\n error.\n\nCustom resource\n\nGoogle Distributed Cloud version 1.10 or higher can use a custom resource definition\nto enable VM Runtime on GDC. This custom resource is installed by\ndefault.\n\n1. Edit the `VMRuntime` custom resource:\n\n kubectl edit vmruntime\n\n2. Set `enabled:true` in the spec:\n\n apiVersion: vm.cluster.gke.io/v1\n kind: VMRuntime\n metadata:\n name: vmruntime\n spec:\n enabled: true\n # useEmulation defaults to \"false\" if not set.\n useEmulation: true\n # vmImageFormat defaults to \"qcow2\" if not set.\n vmImageFormat: qcow2\n\n In the preceding `spec` section, the following values can be set:\n - `enabled`: set to true to enable VM Runtime on GDC\n - `useEmulation`: If your node doesn't support hardware virtualization, or you aren't sure, set the value to true. If available, hardware virtualization provides better performance than software emulation. The `useEmulation` field defaults to `false`, if it isn't specified.\n - `vmImageFormat`: Supports two disk image format values: `raw` and `qcow2`. If you don't set `vmImageFormat`, the VM Runtime on GDC uses the `raw` disk image format to create VMs. The `raw` format may provide improved performance over `qcow2`, a copy on write format, but may use more disk. For more information about the image formats for your VM, see [Disk image file formats](https://www.qemu.org/docs/master/system/images.html#disk-image-file-formats) in the QEMU documentation.\n3. Save the custom resource in your editor.\n\n4. Verify that the `VMRuntime` custom resource is enabled:\n\n kubectl describe vmruntime vmruntime\n\n The details of the `VMRuntime` custom resource include a `Status` section.\n VM Runtime on GDC is enabled and working when\n `VMRuntime.Status.Ready` shows as `true`.\n\nInstall the `virtctl` client tool\n\nTo create and manage VMs, install the\n[virtctl client tool](https://kubevirt.io/user-guide/operations/virtctl_client_tool/).\n\n1. Install the `virtctl` client tool as a `kubectl` plugin:\n\n export GOOGLE_APPLICATION_CREDENTIALS=\"\u003cvar label=\"name\" translate=\"no\"\u003ePATH_TO_SERVICE_ACCOUNT_KEY\u003c/var\u003e/bm-gcr.json\"\n sudo -E bmctl install virtctl\n\n The credentials let you authenticate and download the `virtctl` client tool,\n then install to `/usr/bin/kubectl-virt` on your local machine.\n2. Verify that the `virtctl` plugin is installed:\n\n kubectl plugin list\n\n If `kubectl-virt` is listed in the response, the plugin is successfully\n installed.\n\n If `kubectl-virt` is not listed, check the `install-virtctl.log` file as noted\n in the output of the previous `bmctl install` command, such as\n `bmctl-workspace/log/install-virtctl-[date]/install-virtctl.log`.\n\nCreate a VM\n\nIn this quickstart, you use the `kubectl` CLI to create a VM that uses a public\nVM image and default credentials.\n| **Note:** For instructions on creating a VM from a `VirtualMachine` YAML manifest file, see [Tutorial: Create and manage a Linux VM in VM Runtime on GDC](/kubernetes-engine/distributed-cloud/bare-metal/docs/vm-runtime/tutorial-create-vm).\n\n1. Create a VM in your cluster. The `virtctl` plugin is used with the\n `kubectl` command:\n\n kubectl virt create vm \u003cvar label=\"name\" translate=\"no\"\u003eVM_NAME\u003c/var\u003e \\\n --image ubuntu20.04 \\\n --configure-initial-password \u003cvar label=\"username\" translate=\"no\"\u003eUSERNAME\u003c/var\u003e:\u003cvar label=\"name\" translate=\"no\"\u003ePASSWORD\u003c/var\u003e\n\n This command creates an *Ubuntu 20.04* VM and defaults of *2* CPU, *4Gi*\n memory, and a *20Gi* boot disk in *ReadWriteOnce* mode using the\n *local-shared* storage class. Replace the following values:\n - \u003cvar scope=\"VM_NAME\" translate=\"no\"\u003eVM_NAME\u003c/var\u003e: name for your VM. VM names must contain only lowercase alphanumeric characters or '-', start and end with an alphanumeric character, and contain at most 63 characters. For more information, see [RFC 1123 Label Names](https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-label-names) in the Kubernetes documentation.\n - \u003cvar translate=\"no\"\u003eUSERNAME\u003c/var\u003e: user name for the account to create on the VM.\n - \u003cvar translate=\"no\"\u003ePASSWORD\u003c/var\u003e: password for the user account.\n\n If you receive an error about CLI parameters, verify that your cluster is at\n version `1.11.1` or higher and that you have the latest version of the\n `virtctl` client tool. For more information about CLI errors, consult the\n console log. For username and password rules, see the documentation for the\n guest operating system (OS). If something isn't working as expected, check for\n [VM Runtime on GDC known issues](/kubernetes-engine/distributed-cloud/bare-metal/docs/troubleshooting/known-issues).\n | **Note:** The preceding command creates a YAML file, such as `vm-sample1.yaml`, in the `~/google-virtctl` directory. You can view the content of this file to see the definition of the Kubernetes resources that were created by VM Runtime on GDC.\n2. It can take a few minutes to create the VM. Check the status of the VM with\n the `kubectl` command:\n\n kubectl get gvm\n\n The following example output shows the VM in a `Running` state: \n\n NAME STATUS AGE IP\n vm-sample1 Running 64s 192.168.2.124\n\nConnect to your VM\n\nWhen your VM is running, connect to the console of the VM.\n\n1. To access a VM from the console, use `kubectl`:\n\n kubectl virt console \u003cvar scope=\"VM_NAME\" translate=\"no\"\u003eVM_NAME\u003c/var\u003e\n\n2. When prompted, enter the user credentials you specified to create the VM.\n\n3. After you have successfully connected to the console of the VM, exit the VM\n session and console:\n\n Ctrl + ]\n\nClean up\n\nTo clean up the resources created in this quickstart, follow these steps.\n\n1. To delete the VM and associated DataVolume, use `kubectl`:\n\n kubectl virt delete vm \u003cvar scope=\"VM_NAME\" translate=\"no\"\u003eVM_NAME\u003c/var\u003e --all\n\nWhat's next\n\n- [Manage the power state of a VM in Google Distributed Cloud](/kubernetes-engine/distributed-cloud/bare-metal/docs/vm-runtime/manage-power-state).\n- [Edit a VM in Google Distributed Cloud](/kubernetes-engine/distributed-cloud/bare-metal/docs/vm-runtime/edit-vm).\n- [View VM console logs in Google Distributed Cloud](/kubernetes-engine/distributed-cloud/bare-metal/docs/vm-runtime/view-console-logs)."]]