Administra el ciclo de vida de la instancia de VM

Una instancia de VM puede pasar por muchos estados a lo largo de su ciclo de vida. Cuando creas una VM, Google Distributed Cloud (GDC) air-gapped aprovisiona recursos para iniciar la VM. Luego, la VM pasa al estado de inicio, en el que se la prepara para el primer inicio. Durante y después del inicio, una VM se considera en ejecución. Durante su vida útil, una VM en ejecución se puede detener y reiniciar o suspender y reanudar varias veces.

Definiciones de los estados de VM

Estado Definición
Pending El sistema acepta la VM y espera la asignación.
Provisioning Se están aprovisionando y preparando los recursos asociados a la VM, como VirtualMachineDisk.
Starting Se está preparando la VM para que se ejecute.
Running La VM se está ejecutando.
Stopping La VM está en proceso de detención.
Stopped La VM está detenida y no se espera que se inicie.
Paused La VM se pausa y se encuentra en un estado inactivo, 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 encontró el tipo de VM al que se refiere la VM o se está borrando.
MachineDiskMisconfig: El disco de la VM está configurado de forma incorrecta.
InterfaceCreationFailed: No se pudo crear la interfaz de red.
CrashLoopBackOff La VM está en un bucle de fallas y espera que se vuelva a intentar.
PendingIPAllocation La VM está esperando que el sistema le asigne una dirección IP.
Unknown No se pudo obtener el estado de la VM, generalmente debido a un error en la comunicación con el host en el que se ejecuta.
ErrorUnschedulable Se produjo un error durante la programación de la VM, por ejemplo, debido a solicitudes de recursos o restricciones de programación que no se pueden satisfacer o admitir.
DiskError La VM tiene un error con uno o más de los discos conectados.
WaitingForDisk La VM está esperando a que uno o más de los VirtualMachineDisk adjuntos estén listos.
CrashLoopBackoff La VM falla constantemente por algún motivo.

Antes de comenzar

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

Obtén la ruta de acceso del archivo kubeconfig

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

  1. Accede y genera el archivo kubeconfig para el servidor de la API de Management si no tienes uno.

  2. Usa la ruta de acceso al archivo kubeconfig del servidor de la API de administración para reemplazar MANAGEMENT_API_SERVER en estas instrucciones.

Solicita permisos y acceso

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

Para las operaciones de VM con la consola de GDC o la CLI de gdcloud, solicita a tu administrador de IAM del proyecto que te asigne el rol de administrador de máquinas virtuales del proyecto y el rol de visualizador del proyecto (project-viewer).

Verifica el estado de la VM

El estado de cada VM se puede ver en sus propiedades. Verifica el estado de una VM por cualquiera de los siguientes motivos:

  • Si hay problemas con la VM
  • Confirmar que la VM se está ejecutando después de que se inició
  • Verificar que la VM esté en el estado Paused o Stopped

Enumera las VMs para verificar el estado

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

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

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

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

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

    Resultado de ejemplo:

    NAME          STATUS                    AGE
    vm-1          Running                    1d
    vm-2          Stopped                    8d
    vm-3          ErrorConfiguration         1d
    
  2. Obtén detalles adicionales sobre el estado de una VM en particular:

    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"}'
    

    Reemplaza lo siguiente:

    • MANAGEMENT_API_SERVER con el archivo kubeconfig del servidor de la API de Management que obtuviste del comando gdcloud auth login
    • Reemplaza VM_NAME por el nombre de la VM nueva.
    • PROJECT con el proyecto de GDC en el que reside la VM.

    Ejemplo de resultado que muestra los valores de Reason y Message:

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

    También es posible que obtengas campos vacíos para Reason y Message. Esto indica que el sistema no tenía nada que informar sobre ellos.

    Ejemplo de resultado con Reason y Message vacíos:

    State: Running
    Reason:
    Message:
    

Detén o reinicia una VM

Durante el ciclo de vida de la VM, es posible que debas detenerla y reiniciarla, o bien borrarla para responder a un cambio de estado o administrarla de forma general. Consulta estas páginas para detener, restablecer o borrar una VM: