En esta guía de inicio rápido se muestra cómo usar VM Runtime en GDC para crear una máquina virtual en Google Distributed Cloud. VM Runtime en GDC usa KubeVirt para orquestar máquinas virtuales en clústeres y te permite trabajar con tus aplicaciones y cargas de trabajo basadas en máquinas virtuales en un entorno de desarrollo uniforme.
Antes de empezar
Para completar esta guía de inicio rápido, necesitas acceso a un clúster de Google Distributed Cloud versión 1.12 (anthosBareMetalVersion: 1.12
) o posterior. Puedes usar cualquier tipo de clúster que pueda ejecutar cargas de trabajo. Si es necesario, prueba Google Distributed Cloud en Compute Engine o consulta la descripción general de la creación de clústeres.
Habilitar el entorno de ejecución de máquinas virtuales en GDC
VM Runtime en GDC se instala automáticamente en Google Distributed Cloud 1.10 o versiones posteriores, pero está inhabilitado de forma predeterminada. Para poder ejecutar recursos de VM en Google Distributed Cloud, debes habilitar el tiempo de ejecución de VM en GDC.
bmctl
Google Distributed Cloud versión 1.11 o posterior puede usar la herramienta de línea de comandos bmctl
:
Para habilitar el tiempo de ejecución, usa la herramienta
bmctl
:bmctl enable vmruntime --kubeconfig KUBECONFIG_PATH
Proporciona la ruta al archivo kubeconfig de tu 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 es
bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME-kubeconfig
.Si el tiempo de ejecución de máquinas virtuales en GDC ya está habilitado, el comando devuelve un error.
Recurso personalizado
Google Distributed Cloud versión 1.10 o posterior puede usar una definición de recurso personalizado para habilitar el entorno de ejecución de máquinas virtuales en GDC. Este recurso personalizado se instala de forma predeterminada.
Edita el recurso personalizado
VMRuntime
:kubectl edit vmruntime
Define
enabled:true
en la especificación:apiVersion: vm.cluster.gke.io/v1 kind: VMRuntime metadata: name: vmruntime spec: 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 definir los siguientes valores:enabled
: se define como true para habilitar el tiempo de ejecución de máquinas virtuales en GDCuseEmulation
: si tu nodo no admite la virtualización de hardware o no lo tienes claro, asigna el valor true. Si está disponible, la virtualización de hardware ofrece un mejor rendimiento que la emulación de software. Si no se especifica, el campouseEmulation
tiene el valor predeterminadofalse
.vmImageFormat
: admite dos valores de formato de imagen de disco:raw
yqcow2
. Si no definesvmImageFormat
, el tiempo de ejecución de VM en GDC usa el formato de imagen de discoraw
para crear VMs. El formatoraw
puede ofrecer un mejor rendimiento queqcow2
, un formato de copia en escritura, pero puede usar más espacio en disco. Para obtener más información sobre los formatos de imagen de 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:kubectl describe vmruntime vmruntime
Los detalles del recurso personalizado
VMRuntime
incluyen una secciónStatus
. El entorno de ejecución de máquinas virtuales de GDC está habilitado y funciona cuandoVMRuntime.Status.Ready
se muestra comotrue
.
Instalar la herramienta de cliente virtctl
Para crear y gestionar VMs, instala la herramienta de cliente virtctl.
Instala la herramienta de cliente
virtctl
como complementokubectl
:export GOOGLE_APPLICATION_CREDENTIALS="PATH_TO_SERVICE_ACCOUNT_KEY/bm-gcr.json" sudo -E bmctl install virtctl
Las credenciales te permiten autenticarte y descargar la herramienta de cliente
virtctl
. A continuación, instálala en/usr/bin/kubectl-virt
en tu máquina local.Comprueba que el complemento
virtctl
esté instalado:kubectl plugin list
Si
kubectl-virt
aparece en la respuesta, significa que el complemento se ha instalado correctamente.Si
kubectl-virt
no aparece en la lista, comprueba el archivoinstall-virtctl.log
como se indica en el resultado del comandobmctl install
anterior, comobmctl-workspace/log/install-virtctl-[date]/install-virtctl.log
.
Crear VM
En esta guía de inicio rápido, usarás la CLI de kubectl
para crear una VM que utilice una imagen de VM pública y credenciales predeterminadas.
Crea una VM en tu clúster. El complemento
virtctl
se usa con el comandokubectl
:kubectl virt create vm VM_NAME \ --image ubuntu20.04 \ --configure-initial-password USERNAME:PASSWORD
Este comando crea una VM Ubuntu 20.04 y los valores predeterminados de 2 CPU, 4 Gi de memoria y un disco de arranque de 20 Gi en modo ReadWriteOnce con la clase de almacenamiento local-shared. Sustituye los siguientes valores:
VM_NAME
: nombre de la VM. Los nombres de las VMs solo pueden contener caracteres alfanuméricos en minúscula o guiones (-), deben empezar y terminar con un carácter alfanumérico y tener 63 caracteres como máximo. Para obtener más información, consulta Nombres de etiquetas RFC 1123 en la documentación de Kubernetes.USERNAME
: nombre de usuario de la cuenta que se va a crear en la máquina virtual.PASSWORD
: contraseña de la cuenta de usuario.
Si recibes un error sobre los parámetros de la CLI, comprueba que tu clúster tenga la versión
1.11.1
o una posterior y que tengas la versión más reciente de la herramienta de clientevirtctl
. Para obtener más información sobre los errores de la CLI, consulta el registro de la consola. Para consultar las reglas de nombres de usuario y contraseñas, consulta la documentación del sistema operativo invitado. Si algo no funciona como esperabas, consulta los problemas conocidos del tiempo de ejecución de VM en GDC.La creación de la VM puede tardar unos minutos. Consulta el estado de la máquina virtual con el comando
kubectl
:kubectl get gvm
En el siguiente ejemplo de salida se muestra la máquina virtual en estado
Running
:NAME STATUS AGE IP vm-sample1 Running 64s 192.168.2.124
Conectarse a una VM
Cuando la VM esté en funcionamiento, conéctate a su consola.
Para acceder a una VM desde la consola, usa
kubectl
:kubectl virt console VM_NAME
Cuando se te solicite, introduce las credenciales de usuario que hayas especificado para crear la VM.
Una vez que te hayas conectado correctamente a la consola de la VM, sal de la sesión y de la consola de la VM:
Ctrl + ]
Limpieza
Para limpiar los recursos creados en esta guía de inicio rápido, sigue estos pasos.
Para eliminar la VM y el DataVolume asociado, usa
kubectl
:kubectl virt delete vm VM_NAME --all
Siguientes pasos
- Gestionar el estado de la alimentación de una VM en Google Distributed Cloud.
- Edita una máquina virtual en Google Distributed Cloud.
- Consulta los registros de la consola de la VM en Google Distributed Cloud.