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 centrales de procesamiento virtuales (vCPUs) asignadas o la cantidad de memoria asignada a una VM. Debes detener la VM antes de editar la configuración. Cuando termines, debes alternar el estado de energía para aplicar los cambios. En esta página, se proporcionan instrucciones para detener, iniciar y reiniciar tus VMs en esos procesos.
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:
Accede y genera el archivo kubeconfig para el servidor de la API de Management si no tienes uno.
Usa la ruta de acceso al archivo kubeconfig del servidor de la API de administración para reemplazar
MANAGEMENT_API_SERVER
en estas instrucciones.
Si deseas minimizar el tiempo de inicio de la VM, sigue las instrucciones en Cómo minimizar el tiempo de inicio de la VM antes de iniciar la VM.
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 o para que el administrador de IAM del proyecto te asigne 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, pídele 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
).
Detén una VM
Cuando detienes una máquina virtual (VM), el hipervisor desasigna todos los recursos asociados con la instancia. La VM se cerró.
Detén una VM que está en estado de ejecución con la consola de GDC o kubectl
.
Console
En el menú de navegación, haz clic en Virtual Machines > Instances.
En la lista de VMs, selecciona la casilla de verificación de la VM en ejecución que deseas detener.
Haz clic en Detener.
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 se encuentra la VM.
kubectl
Ejecuta el siguiente comando:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ edit virtualmachines.virtualmachine.gdc.goog VM_NAME \ -n PROJECT
Busca el campo
runningState
en elspec
de la VM y cambia el valor del campo aStopped
. SirunningState
no está enspec
, agrégalo y establece el valor enStopped
.runningState
spec
spec: runningState: Stopped
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 anteriores.
Variable Definición MANAGEMENT_API_SERVER_KUBECONFIG
Es el archivo kubeconfig del servidor de la API de Management. VM_NAME
Nombre de la VM. PROJECT
Nombre del proyecto de la VM
Inicia una VM
Inicia una VM desde un estado detenido con la consola o kubectl
.
Console
En el menú de navegación, haz clic en Virtual Machines > Instances.
En la lista de VMs, selecciona la casilla de verificación de la VM detenida que deseas iniciar.
Haz clic en Iniciar.
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 se encuentra la VM.
kubectl
Ejecuta el siguiente comando:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ edit virtualmachines.virtualmachine.gdc.goog VM_NAME \ -n PROJECT
Busca el campo
runningState
en elspec
de la VM y cambia el valor del campo aRunning
.spec: runningState: Running
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 en el código de ejemplo.
Variable Definición MANAGEMENT_API_SERVER_KUBECONFIG
Es el archivo kubeconfig del servidor de la API de Management. MANAGEMENT_API_SERVER_NAME
Es el nombre del servidor de la API de Management. NAMESPACE
Es el espacio de nombres de la VM. VM_NAME
Nombre de la VM. PROJECT
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.
Reinicia una VM que está en estado de ejecución con la consola o kubectl
.
Console
En el menú de navegación, haz clic en Virtual Machines > Instances.
En la lista de VMs, selecciona la casilla de verificación de la VM en ejecución que deseas reiniciar.
Haz clic en Restablecer.
En el diálogo de confirmación, haga 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 se encuentra la VM.
kubectl
Obtén los datos de la clave y el certificado 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}'`
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
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 en el código de ejemplo.
Variable Definición MANAGEMENT_API_SERVER_KUBECONFIG
Es el archivo kubeconfig del servidor de la API de Management. MANAGEMENT_API_SERVER_NAME
Es el nombre del servidor de la API de Management. NAMESPACE
Es el espacio de nombres de la VM. VM_NAME
Nombre de la VM. PROJECT
Nombre del proyecto de la VM