Iniciar y detener una VM

Puedes detener, iniciar y reiniciar las VMs para admitir el ciclo de vida de tus aplicaciones. Por ejemplo, puede cambiar el número de unidades centrales de procesamiento virtual (vCPUs) asignadas o la cantidad de memoria asignada a una máquina virtual. Debes detener la VM antes de editar la configuración. Cuando termines, debes apagar y volver a encender el dispositivo para aplicar los cambios. En esta página se ofrecen instrucciones para detener, iniciar y reiniciar tus máquinas virtuales en estos procesos.

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.

Si quieres minimizar el tiempo de inicio de tu VM, sigue las instrucciones de Minimizar el tiempo de inicio de la VM antes de iniciarla.

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 o pide al administrador de gestión de identidades y accesos de tu proyecto que te asigne el rol Administrador de máquinas virtuales de proyectos (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 interfaz de línea de comandos 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).

Detener una VM

Cuando detienes una máquina virtual (VM), el hipervisor desasigna todos los recursos asociados a la instancia. La VM se apaga.

Detén una VM que esté en estado de ejecución mediante la consola de GDC o kubectl.

Consola

  1. En el menú de navegación, haz clic en Máquinas virtuales > Instancias.

  2. En la lista de VMs, marca la casilla de la VM en ejecución que quieras detener.

  3. Haz clic en Detener.

  4. En el cuadro de diálogo de confirmación, haz clic en Detener.

gdcloud

Para detener una VM, sigue estos pasos:

gdcloud compute instances stop VM_NAME --project PROJECT
  • Sustituye VM_NAME por el nombre de la VM.
  • Sustituye PROJECT por el nombre del proyecto de GDC en el que se encuentra la VM.

kubectl

  1. Ejecuta el siguiente comando:

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \
       edit virtualmachines.virtualmachine.gdc.goog VM_NAME \
       -n PROJECT
    
  2. Busca el campo runningState en el spec de la máquina virtual y cambia el valor del campo a Stopped. Si runningState no está en spec, añádelo a spec y asigna el valor Stopped.runningState

    spec:
       runningState: Stopped
    
  3. Verifica el estado de la VM:

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

    Consulta estas definiciones de las variables anteriores.

    VariableDefinición
    MANAGEMENT_API_SERVER_KUBECONFIGEl archivo kubeconfig del servidor de la API Management.
    VM_NAMEEl nombre de la VM.
    PROJECTNombre del proyecto de la VM.

Iniciar una VM

Inicia una VM desde un estado detenido mediante la consola o kubectl.

Consola

  1. En el menú de navegación, haz clic en Máquinas virtuales > Instancias.

  2. En la lista de VMs, marca la casilla de la VM detenida que quieras iniciar.

  3. Haz clic en Empezar.

  4. En el cuadro de diálogo de confirmación, haz clic en Iniciar.

gdcloud

Para iniciar una VM, sigue estos pasos:

gdcloud compute instances start VM_NAME --project PROJECT
  • Sustituye VM_NAME por el nombre de la VM.
  • Sustituye PROJECT por el nombre del proyecto de GDC en el que se encuentra la VM.

kubectl

  1. Ejecuta el siguiente comando:

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ 
       edit virtualmachines.virtualmachine.gdc.goog VM_NAME \ 
       -n PROJECT
    
  2. Busca el campo runningState en el spec de la máquina virtual y cambia el valor del campo a Running.

    spec:
       runningState: Running
    
  3. Verifica el estado de la VM:

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

    Usa estas definiciones para las variables del código de ejemplo.

    VariableDefinición
    MANAGEMENT_API_SERVER_KUBECONFIGEl archivo kubeconfig del servidor de la API Management.
    MANAGEMENT_API_SERVER_NAMENombre del servidor de la API Management.
    NAMESPACEEspacio de nombres de la VM.
    VM_NAMEEl nombre de la VM.
    PROJECTNombre del proyecto de la VM.

Reiniciar una VM

Cuando reinicias una VM, la máquina vuelve a su estado inicial y se borra el contenido de la memoria.

Reinicia una máquina virtual que esté en estado de ejecución mediante la consola o kubectl.

Consola

  1. En el menú de navegación, haz clic en Máquinas virtuales > Instancias.

  2. En la lista de VMs, marca la casilla de la VM en ejecución que quieras reiniciar.

  3. Haz clic en Cambiar.

  4. En el cuadro de diálogo de confirmación, haz clic en Borrar.

gdcloud

Para restablecer una VM, sigue estos pasos:

gdcloud compute instances reset VM_NAME --project PROJECT
  • Sustituye VM_NAME por el nombre de la VM.
  • Sustituye PROJECT por el nombre del proyecto de GDC en el que se encuentra la VM.

kubectl

  1. Obtén los datos del certificado y la clave del cliente, así como el servidor de la API Management. Usa estos valores en los pasos siguientes:

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG config view --raw -o \
       jsonpath='{.users[?(@.name =="MANAGEMENT_API_SERVER_NAME-admin")].user.client-certificate-data}' | \
       base64 -d > cert
    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG config view --raw -o \
       jsonpath='{.users[?(@.name == "MANAGEMENT_API_SERVER_NAME-admin")].user.client-key-data}' | \
       base64 -d > key
    export APISERVER=`kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \
       config view --raw -o \
       jsonpath='{.clusters[?(@.name == "MANAGEMENT_API_SERVER_NAME")].cluster.server}'`
    
  2. Haz una solicitud de API para reiniciar la VM con el comando wget y especifica el certificado y la clave del paso anterior:

    wget --method=PUT -O- --no-check-certificate --certificate cert --private-key key --content-on-error=on $APISERVER/apis/virtualmachineoperations.gdc.goog/v1/namespaces/PROJECT/virtualmachines/VM_NAME/restart
    
  3. Verifica el estado de la VM:

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

    Usa estas definiciones de las variables en el código de ejemplo.

    VariableDefinición
    MANAGEMENT_API_SERVER_KUBECONFIGEl archivo kubeconfig del servidor de la API Management.
    MANAGEMENT_API_SERVER_NAMENombre del servidor de la API Management.
    NAMESPACEEspacio de nombres de la VM.
    VM_NAMEEl nombre de la VM.
    PROJECTNombre del proyecto de la VM.