Guida rapida: crea una VM nei cluster Google Distributed Cloud
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Questa guida rapida mostra come utilizzare il runtime VM su GDC per creare una VM (macchina virtuale) su Google Distributed Cloud. Il runtime VM su GDC utilizza
KubeVirt
per orchestrare le VM sui cluster e ti consente di utilizzare le tue app e i tuoi carichi di lavoro basati su VM in un ambiente di sviluppo uniforme.
Prima di iniziare
Per completare questa guida rapida, devi avere accesso al cluster Google Distributed Cloud versione 1.12 (anthosBareMetalVersion: 1.12) o successiva. Puoi utilizzare qualsiasi tipo di cluster in grado di eseguire carichi di lavoro. Se necessario,
prova Google Distributed Cloud su Compute Engine
o consulta la
panoramica della creazione dei cluster.
Attivare il runtime della VM su GDC
Il runtime VM su GDC viene installato automaticamente in Google Distributed Cloud
versione 1.10 o successive, ma è disattivato per impostazione predefinita. Prima di poter eseguire le risorse VM in Google Distributed Cloud, devi attivare il runtime VM su GDC.
bmctl
Google Distributed Cloud versione 1.11 o successive può utilizzare lo strumento a riga di comando bmctl:
Per attivare il runtime, utilizza lo strumento bmctl:
bmctlenablevmruntime--kubeconfigKUBECONFIG_PATH
Fornisci il percorso del file kubeconfig per il tuo cluster.
Google Distributed Cloud genera il file kubeconfig sulla workstation di amministrazione quando crei un cluster. Per impostazione predefinita, il percorso è
bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME-kubeconfig.
Se il runtime VM su GDC è già abilitato, il comando restituisce un errore.
Risorsa personalizzata
Google Distributed Cloud versione 1.10 o successive può utilizzare una definizione di risorsa personalizzata per attivare il runtime VM su GDC. Questa risorsa personalizzata viene installata per impostazione predefinita.
Modifica la risorsa personalizzata VMRuntime:
kubectleditvmruntime
Imposta enabled:true nella specifica:
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
Nella sezione spec precedente, è possibile impostare i seguenti valori:
enabled: impostato su true per abilitare il runtime della VM su GDC
useEmulation: se il tuo nodo non supporta la virtualizzazione hardware o se non hai la certezza, imposta il valore su true. Se disponibile, la virtualizzazione hardware offre prestazioni migliori rispetto all'emulazione software. Se non specificato, il valore predefinito del campo useEmulation è false.
vmImageFormat: supporta due valori per il formato dell'immagine disco: raw e
qcow2. Se non imposti vmImageFormat, il tempo di esecuzione VM su GDC utilizza il formato dell'immagine disco raw per creare VM. Il formato raw potrebbe offrire prestazioni migliori rispetto a qcow2, un formato di copia su scrittura, ma potrebbe utilizzare più spazio su disco. Per ulteriori informazioni sui formati delle immagini per la VM, consulta Formati file delle immagini disco nella documentazione di QEMU.
Salva la risorsa personalizzata nell'editor.
Verifica che la risorsa personalizzata VMRuntime sia abilitata:
kubectldescribevmruntimevmruntime
I dettagli della risorsa personalizzata VMRuntime includono una sezione Status.
Il runtime VM su GDC è attivato e funziona quandoVMRuntime.Status.Ready viene visualizzato come true.
Le credenziali ti consentono di autenticare e scaricare lo strumento client virtctl, quindi di installarlo in /usr/bin/kubectl-virt sulla tua macchina locale.
Verifica che il plug-in virtctl sia installato:
kubectlpluginlist
Se kubectl-virt è elencato nella risposta, il plug-in è stato installato correttamente.
Se kubectl-virt non è presente nell'elenco, controlla il file install-virtctl.log come indicato
nell'output del comando bmctl install precedente, ad esempio
bmctl-workspace/log/install-virtctl-[date]/install-virtctl.log.
Crea una VM
In questa guida rapida, utilizzerai kubectl CLI per creare una VM che utilizza un'immagine VM pubblica e le credenziali predefinite.
Crea una VM nel cluster. Il plug-in virtctl viene utilizzato con il comando
kubectl:
Questo comando crea una VM Ubuntu 20.04 e i valori predefiniti di 2 CPU, 4 Gi di memoria e un disco di avvio da 20 Gi in modalità Lettura/scrittura una volta utilizzando la classe di archiviazione local-shared. Sostituisci i seguenti valori:
VM_NAME: il nome della VM. I nomi delle VM devono contenere solo caratteri alfanumerici minuscoli o "-", iniziare e terminare con un carattere alfanumerico e contenere al massimo 63 caratteri. Per maggiori informazioni, consulta Nomi delle etichette RFC 1123 nella documentazione di Kubernetes.
USERNAME: nome utente dell'account da creare sulla VM.
PASSWORD: password per l'account utente.
Se ricevi un errore relativo ai parametri della CLI, verifica che il tuo cluster sia almeno alla versione 1.11.1 e che tu abbia installato la versione più recente dello strumento client virtctl. Per ulteriori informazioni sugli errori della CLI, consulta il log della console. Per le regole relative a nome utente e password, consulta la documentazione del sistema operativo ospite. Se qualcosa non funziona come previsto, controlla i problemi noti relativi all'esecuzione VM su GDC.
La creazione della VM può richiedere alcuni minuti. Controlla lo stato della VM con il comando kubectl:
kubectlgetgvm
L'esempio di output seguente mostra la VM in uno stato Running:
NAME STATUS AGE IP
vm-sample1 Running 64s 192.168.2.124
Connettersi alla VM
Quando la VM è in esecuzione, connettiti alla console della VM.
Per accedere a una VM dalla console, utilizza kubectl:
kubectlvirtconsoleVM_NAME
Quando richiesto, inserisci le credenziali utente che hai specificato per creare la VM.
Dopo aver eseguito correttamente la connessione alla console della VM, esci dalla sessione e dalla console della VM:
Ctrl+]
Esegui la pulizia
Per eseguire la pulizia delle risorse create in questa guida rapida:
Per eliminare la VM e il DataVolume associato, utilizza kubectl:
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Difficile da capire","hardToUnderstand","thumb-down"],["Informazioni o codice di esempio errati","incorrectInformationOrSampleCode","thumb-down"],["Mancano le informazioni o gli esempi di cui ho bisogno","missingTheInformationSamplesINeed","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 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)."]]