Guía de inicio rápido: Crea una VM en clústeres de Google Distributed Cloud
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
En esta guía de inicio rápido, se muestra cómo usar el entorno de ejecución de VMs en GDC para crear una
máquina virtual (VM) en Google Distributed Cloud. El entorno de ejecución de VM en GDC usa KubeVirt para organizar las VMs en los clústeres, lo que te permite trabajar con tus apps y cargas de trabajo basadas en VM en un entorno de desarrollo uniforme.
El entorno de ejecución de VM en GDC se instala automáticamente en la versión 1.10 o posterior de Google Distributed Cloud, pero está inhabilitado de forma predeterminada. Antes de ejecutar recursos de VM en Google Distributed Cloud, debes habilitar el entorno de ejecución de VM en GDC.
bmctl
La versión 1.11 o posterior de Google Distributed Cloud puede usar la herramienta de línea de comandos de bmctl:
Para habilitar el entorno de ejecución, usa la herramienta de bmctl:
bmctlenablevmruntime--kubeconfigKUBECONFIG_PATH
Proporciona la ruta de acceso al archivo kubeconfig del clúster.
Google Distributed Cloud genera el archivo kubeconfig en la estación de trabajo de administrador cuando creas un clúster. De forma predeterminada, la ruta de acceso es bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME-kubeconfig.
Si el entorno de ejecución de VM en GDC ya está habilitado, el comando muestra un error.
Recurso personalizado
La versión 1.10 o posterior de Google Distributed Cloud puede usar una definición de recurso personalizado para habilitar el entorno de ejecución de VM en GDC. Este recurso personalizado se instala de forma predeterminada.
Edita el recurso personalizado VMRuntime:
kubectleditvmruntime
Establece enabled:true en la especificación:
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
En la sección spec anterior, se pueden establecer los siguientes valores:
enabled: Se establece como verdadero para habilitar el entorno de ejecución de VM en GDC.
useEmulation: Si tu nodo no admite la virtualización de hardware, o no estás seguro, establece el valor en verdadero. Si está disponible, la virtualización de hardware proporciona un mejor rendimiento que la emulación de software. El campo useEmulation se configura de forma predeterminada en false, si no se especifica.
vmImageFormat: Admite dos valores de formato de imagen de disco: raw y qcow2. Si no configuras vmImageFormat, el entorno de ejecución de VM en GDC usa el formato de imagen de disco raw para crear VMs. El formato raw puede proporcionar un rendimiento mejorado sobre qcow2, una copia en formato de escritura, pero puede usar más capacidad de disco. Si deseas obtener más información sobre los formatos de imagen para tu VM, consulta Formatos de archivo de imagen de disco en la documentación de QEMU.
Guarda el recurso personalizado en tu editor.
Verifica que el recurso personalizado VMRuntime esté habilitado:
kubectldescribevmruntimevmruntime
En los detalles del recurso personalizado VMRuntime, se incluye una sección Status.
El entorno de ejecución de VM en GDC está habilitado y funciona cuando VMRuntime.Status.Ready se muestra como true.
Las credenciales te permiten autenticar y descargar la herramienta cliente virtctl y, luego, instalarla en /usr/bin/kubectl-virt en tu máquina local.
Verifica que el complemento virtctl esté instalado:
kubectlpluginlist
Si kubectl-virt aparece en la respuesta, el complemento se instaló correctamente.
Si kubectl-virt no aparece en la lista, verifica el archivo install-virtctl.log como se indica en el resultado del comando bmctl install anterior, como bmctl-workspace/log/install-virtctl-[date]/install-virtctl.log.
Crea una VM
En esta guía de inicio rápido, usarás la CLI de kubectl para crear una VM que use una imagen de VM pública y las credenciales predeterminadas.
Crea una VM en tu clúster. El complemento virtctl se usa con el comando kubectl:
Este comando crea una VM de Ubuntu 20.04 y valores predeterminados de 2 CPU, 4Gi de memoria y un disco de arranque de 20Gi en modo ReadWriteOnce con la clase de almacenamiento local-shared. Reemplaza los siguientes valores:
VM_NAME: el nombre de tu VM. Los nombres de las VMs deben contener solo caracteres alfanuméricos en minúscula o “-”, comenzar y terminar con un carácter alfanumérico y contener 63 caracteres como máximo. Para obtener más información, consulta Nombres de etiquetas RFC 1123 en la documentación de Kubernetes.
USERNAME: el nombre de usuario de la cuenta que se creará en la VM.
PASSWORD: la contraseña de la cuenta de usuario.
Si recibes un error sobre los parámetros de la CLI, verifica que tu clúster esté en la versión 1.11.1 o superior y que tengas la versión más reciente de la herramienta de cliente virtctl. Para obtener más información sobre los errores de la CLI, consulta el registro de la consola. Para conocer las reglas de nombres de usuario y contraseñas, consulta la documentación del sistema operativo (SO) invitado. Si algo no funciona como se espera, consulta los problemas conocidos del entorno de ejecución de VM en GDC.
La creación de la VM puede tomar unos minutos. Verifica el estado de la VM con el comando kubectl:
kubectlgetgvm
En el siguiente resultado de ejemplo, se muestra la VM en un estado Running:
NAME STATUS AGE IP
vm-sample1 Running 64s 192.168.2.124
Conéctate a tu VM
Cuando tu VM esté en ejecución, conéctate a su consola.
Para acceder a una VM desde la consola, usa kubectl.
kubectlvirtconsoleVM_NAME
Cuando se te solicite, ingresa las credenciales de usuario que especificaste para crear la VM.
Después de conectarte correctamente a la consola de la VM, sal de la sesión de la VM y de la consola:
Ctrl+]
Libera espacio
Para limpiar los recursos creados en esta guía de inicio rápido, sigue estos pasos.
Para borrar la VM y el DataVolume asociado, usa kubectl:
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Información o código de muestra incorrectos","incorrectInformationOrSampleCode","thumb-down"],["Faltan la información o los ejemplos que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2024-12-23 (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)."]]