Gestionar el ciclo de vida de las instancias de VM

Una instancia de VM puede pasar por muchos estados a lo largo de su ciclo de vida. Cuando creas una máquina virtual, Google Distributed Cloud (GDC) con air gap aprovisiona recursos para iniciarla. A continuación, la VM pasa al estado de inicio, donde se prepara para el primer arranque. Durante el inicio y después, se considera que una VM está en ejecución. Durante su ciclo de vida, una VM en ejecución se puede detener y reiniciar varias veces, o suspender y reanudar.

Definiciones de estados de las VMs

Estado Definición
Pending El sistema acepta la VM y está esperando a que se le asigne.
Provisioning Se están aprovisionando y preparando los recursos asociados a la VM, como VirtualMachineDisk.
Starting La VM se está preparando para ejecutarse.
Running La VM se está ejecutando.
Stopping La VM está en proceso de detenerse.
Stopped La VM está detenida y no se espera que se inicie.
Paused La máquina virtual está pausada y en un estado congelado, que se conserva. No se puede acceder a la VM.
Terminating La VM y sus recursos asociados están en proceso de eliminación.
ErrorConfiguration La VM tiene un error de configuración. Los estados de configuración no válidos pueden deberse a los siguientes motivos:
MachineTypeNotFound: no se ha encontrado el tipo de VM al que hace referencia la VM o se está eliminando.
MachineDiskMisconfig - El disco de la VM no está configurado correctamente.
InterfaceCreationFailed: no se ha podido crear la interfaz de red.
CrashLoopBackOff La VM está en un bucle de fallos y está esperando a que se vuelva a intentar.
PendingIPAllocation La VM está esperando a que el sistema le asigne una dirección IP.
Unknown No se ha podido obtener el estado de la VM, normalmente debido a un error al comunicarse con el host en el que se está ejecutando.
ErrorUnschedulable Se ha producido un error al programar la VM. Por ejemplo, debido a solicitudes de recursos o restricciones de programación que no se pueden satisfacer o admitir.
DiskError La máquina virtual tiene un error en uno o varios de los discos adjuntos.
WaitingForDisk La máquina virtual está esperando a que uno o varios de los VirtualMachineDisk adjuntos estén listos.
CrashLoopBackoff La VM se ha bloqueado de forma reiterada por algún motivo.

Antes de empezar

Para usar los comandos de la gdcloud interfaz de línea de comandos (CLI), asegúrate de haber descargado, instalado y configurado la gdcloud CLI. Todos los comandos de Distributed Cloud usan la CLI gdcloud o kubectl y requieren un entorno de sistema operativo.

Obtener la ruta del archivo kubeconfig

Para ejecutar comandos en el servidor de la API Management, asegúrate de tener los siguientes recursos:

  1. Inicia sesión y genera el archivo kubeconfig del servidor de la API Management si no tienes uno.

  2. Usa la ruta al archivo kubeconfig del servidor de la API Management para sustituir MANAGEMENT_API_SERVER en estas instrucciones.

Solicitar permisos y acceso

Para realizar las tareas que se indican en esta página, debes tener el rol de administrador de máquinas virtuales de proyecto. Sigue los pasos para verificar que tienes el rol de administrador de máquinas virtuales de proyecto (project-vm-admin) en el espacio de nombres del proyecto en el que reside la VM.

Para realizar operaciones con VMs mediante la consola de GDC o la CLI de gdcloud, pide al administrador de gestión de identidades y accesos de tu proyecto que te asigne el rol Administrador de VirtualMachine de proyecto y el rol Lector de proyectos (project-viewer).

Comprobar el estado de una VM

Cada máquina virtual informa de su estado como parte de sus propiedades. Comprueba el estado de una máquina virtual por alguno de los siguientes motivos:

  • Si hay problemas con la máquina virtual.
  • Para confirmar que la VM se está ejecutando después de que se haya iniciado.
  • Para verificar que la máquina virtual está en el estado Paused o Stopped.

Lista de VMs para comprobar el estado

En el siguiente procedimiento se muestra cómo enumerar las máquinas virtuales, ver su estado y obtener información adicional sobre el estado.

  1. Lista todas las VMs y consulta el estado de cada una:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        get virtualmachines.virtualmachine.gdc.goog -n PROJECT
    

    Sustituye las variables de los ejemplos de código por tus propios valores según la siguiente tabla.

    VariableDefinición
    MANAGEMENT_API_SERVER El archivo kubeconfig del servidor de la API Management.
    PROJECT El proyecto de GDC en el que reside la VM.

    Ejemplo:

    NAME          STATUS                    AGE
    vm-1          Running                    1d
    vm-2          Stopped                    8d
    vm-3          ErrorConfiguration         1d
    
  2. Para obtener más información sobre el estado de una VM concreta, sigue estos pasos:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        get virtualmachines.virtualmachine.gdc.goog VM_NAME -n PROJECT -o \
        jsonpath='{"State:"}{.status.state}{"\n"}{"Reason:"}{.status.reason}{"\n"}{"Message:"}{.status.message}{"\n"}'
    

    Haz los cambios siguientes:

    • MANAGEMENT_API_SERVER con el archivo kubeconfig del servidor de la API de gestión que has obtenido con el comando gdcloud auth login.
    • VM_NAME con el nombre de la nueva VM.
    • PROJECT con el proyecto de GDC en el que reside la VM.

    Ejemplo de salida que muestra los valores Reason y Message:

    State: ErrorConfiguration
    Reason: MachineDiskNotFound
    Message: VirtualMachineDisk disk-1 in namespace project-1 does not exist.
    

    También es posible que veas los campos de Reason y Message vacíos. Esto indica que el sistema no ha detectado nada que deba comunicar al respecto.

    Ejemplo de salida con Reason y Message vacíos:

    State: Running
    Reason:
    Message:
    

Detener o reiniciar una VM

Durante el ciclo de vida de una VM, es posible que tengas que detenerla y reiniciarla, o eliminarla para responder a un cambio de estado o para gestionarla en general. Consulta estas páginas para detener, restablecer o eliminar una VM: