Inicia y detén una VM

En este documento, se explica cómo iniciar, detener y reiniciar una instancia de máquina virtual (VM) en Google Distributed Cloud (GDC) aislado.

Puedes detener, iniciar y reiniciar las VMs para admitir el ciclo de vida de tus aplicaciones. Por ejemplo, es posible que desees cambiar la cantidad de unidades de procesamiento centralizadas virtuales (vCPU) asignadas o la cantidad de memoria asignada a una VM. Debes detener la VM antes de editar la configuración. Cuando termines, debes cambiar el estado de energía para aplicar los cambios.

Este documento está dirigido a los desarrolladores de grupos de administradores de plataformas o operadores de aplicaciones que necesitan iniciar, detener y reiniciar instancias de VM en un entorno de Distributed Cloud. Para obtener más información, consulta Públicos de la documentación de Google Distributed Cloud aislado.

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 Management para reemplazar MANAGEMENT_API_SERVER en estas instrucciones.

Si deseas minimizar el tiempo de inicio de la VM, sigue las instrucciones en Minimiza el tiempo de inicio de la VM antes de iniciar la VM.

Solicita roles de IAM

Comunícate con tu administrador de IAM del proyecto para solicitar los siguientes roles en tu proyecto:

  • Administrador del proyecto de máquinas virtuales (project-vm-admin): Crea, modifica, enumera y borra VMs en el espacio de nombres del proyecto.

  • Visualizador del proyecto(project-viewer): Visualiza todos los recursos dentro de los espacios de nombres del proyecto.

Todos los roles de VM deben vincularse al espacio de nombres del proyecto en el que reside la VM. Sigue los pasos para verificar tu acceso.

Detén una VM

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

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

Console

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

  2. En la lista de VMs, selecciona la casilla de verificación de la VM en ejecución que deseas detener.

  3. Haz clic en Detener.

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

gdcloud

Para detener una VM, haz lo siguiente:

gdcloud compute instances stop VM_NAME \
  --project PROJECT
  • Reemplaza VM_NAME por el nombre de la VM.
  • Reemplaza PROJECT por el nombre del proyecto de GDC en el que reside la VM.

kubectl

  1. Ejecuta el siguiente comando:

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \
       -n PROJECT \
       edit virtualmachines.virtualmachine.gdc.goog VM_NAME
    
  2. Busca el campo runningState en la spec de la VM y cambia el valor del campo a Stopped. Si runningState no está en la spec, agrega runningState a la spec y establece el valor en Stopped.

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

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

    Usa estas definiciones para las variables anteriores.

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

Iniciar una VM

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

Console

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

  2. En la lista de VMs, selecciona la casilla de verificación de la VM detenida que deseas iniciar.

  3. Haz clic en Iniciar.

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

gdcloud

Para iniciar una VM, haz lo siguiente:

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

kubectl

  1. Ejecuta el siguiente comando:

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

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

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

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

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

Reinicia una VM

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

Reinicia una VM que está en estado de ejecución con la consola o kubectl.

Console

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

  2. En la lista de VMs, selecciona la casilla de verificación de la VM en ejecución que deseas reiniciar.

  3. Haz clic en Restablecer.

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

gdcloud

Para restablecer una VM, haz lo siguiente:

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

kubectl

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

    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. Realiza una solicitud a la 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 \
      -n PROJECT \
      get virtualmachines.virtualmachine.gdc.goog VM_NAME
    

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

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