Guía de inicio rápido: crear una VM en clústeres de Google Distributed Cloud

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.

  1. Edita el recurso personalizado VMRuntime:

    kubectl edit vmruntime
    
  2. 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 GDC
    • useEmulation: 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 campo useEmulation tiene el valor predeterminado false.
    • vmImageFormat: admite dos valores de formato de imagen de disco: raw y qcow2. Si no defines vmImageFormat, el tiempo de ejecución de VM en GDC usa el formato de imagen de disco raw para crear VMs. El formato raw puede ofrecer un mejor rendimiento que qcow2, 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.
  3. Guarda el recurso personalizado en tu editor.

  4. Verifica que el recurso personalizado VMRuntime esté habilitado:

    kubectl describe vmruntime vmruntime
    

    Los detalles del recurso personalizado VMRuntime incluyen una sección Status. El entorno de ejecución de máquinas virtuales de GDC está habilitado y funciona cuando VMRuntime.Status.Ready se muestra como true.

Instalar la herramienta de cliente virtctl

Para crear y gestionar VMs, instala la herramienta de cliente virtctl.

  1. Instala la herramienta de cliente virtctl como complemento kubectl:

    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.

  2. 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 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.

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.

  1. Crea una VM en tu clúster. El complemento virtctl se usa con el comando kubectl:

    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 cliente virtctl. 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.

  2. 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.

  1. Para acceder a una VM desde la consola, usa kubectl:

    kubectl virt console VM_NAME
    
  2. Cuando se te solicite, introduce las credenciales de usuario que hayas especificado para crear la VM.

  3. 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.

  1. Para eliminar la VM y el DataVolume asociado, usa kubectl:

    kubectl virt delete vm VM_NAME --all
    

Siguientes pasos