É possível interromper, iniciar e reiniciar as VMs para oferecer suporte ao ciclo de vida dos seus aplicativos. Por exemplo, talvez você queira mudar o número de unidades de processamento virtual centralizadas (vCPUs) atribuídas ou a quantidade de memória alocada para uma VM. É necessário interromper a VM antes de editar a configuração. Depois de terminar, é necessário ciclar o estado de energia para aplicar as mudanças. Nesta página, você encontra instruções para interromper, iniciar e reiniciar as VMs nesses processos.
Antes de começar
Para usar os comandos da interface de linha de comando (CLI) gdcloud
, verifique se você baixou, instalou
e configurou a CLI gdcloud
.
Todos os comandos do Distributed Cloud usam a CLI gdcloud
ou kubectl
e exigem um ambiente de sistema operacional (SO).
Extrair o caminho do arquivo kubeconfig
Para executar comandos no servidor da API Management, verifique se você tem os seguintes recursos:
Faça login e gere o arquivo kubeconfig para o servidor da API Management se você não tiver um.
Use o caminho para o arquivo kubeconfig do servidor da API Management para substituir
MANAGEMENT_API_SERVER
nestas instruções.
Se quiser minimizar o tempo de inicialização da VM, siga as instruções em Minimizar o tempo de inicialização da VM antes de iniciar a VM.
Solicitar permissões e acesso
Para executar as tarefas listadas nesta página, você precisa ter o papel de administrador de máquina virtual do projeto. Siga as etapas para
verificar
ou peça ao administrador do IAM do projeto para
atribuir
a você o papel de administrador de máquinas virtuais do projeto (project-vm-admin
) no namespace
do projeto em que a VM reside.
Para operações de VM usando o console do GDC ou a CLI gdcloud,
peça ao administrador do IAM do projeto para atribuir a você o papel de
administrador de máquina virtual do projeto e o papel de leitor do projeto (project-viewer
).xs
Interromper uma VM
Quando você interrompe uma máquina virtual (VM), o hipervisor desaloca todos os recursos associados à instância. A VM está encerrada.
Interrompa uma VM em execução usando o console do GDC ou
kubectl
.
Console
No menu de navegação, clique em Virtual Machines > Instâncias.
Na lista de VMs, marque a caixa de seleção da VM em execução que você quer interromper.
Clique em Interromper.
Na caixa de diálogo de confirmação, clique em Parar.
gdcloud
Para interromper uma VM:
gdcloud compute instances stop VM_NAME --project PROJECT
- Substitua
VM_NAME
pelo nome da VM. - Substitua
PROJECT
pelo nome do projeto do GDC em que a VM está.
kubectl
Execute este comando:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ edit virtualmachines.virtualmachine.gdc.goog VM_NAME \ -n PROJECT
Procure o campo
runningState
nospec
da VM e mude o valor do campo paraStopped
. SerunningState
não estiver emspec
, adicionerunningState
aspec
e defina o valor comoStopped
.spec: runningState: Stopped
Verifique o status da VM:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ get virtualmachines.virtualmachine.gdc.goog VM_NAME \ -n PROJECT
Use estas definições para as variáveis anteriores.
Variável Definição MANAGEMENT_API_SERVER_KUBECONFIG
O arquivo kubeconfig do servidor da API Management. VM_NAME
O nome da VM. PROJECT
O nome do projeto da VM.
Inicie uma VM
Inicie uma VM de um estado interrompido usando o console ou kubectl
.
Console
No menu de navegação, clique em Virtual Machines > Instâncias.
Na lista de VMs, marque a caixa de seleção da VM interrompida que você quer iniciar.
Clique em Iniciar.
Na caixa de diálogo de confirmação, clique em Iniciar.
gdcloud
Para iniciar uma VM:
gdcloud compute instances start VM_NAME --project PROJECT
- Substitua
VM_NAME
pelo nome da VM. - Substitua
PROJECT
pelo nome do projeto do GDC em que a VM está.
kubectl
Execute este comando:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ edit virtualmachines.virtualmachine.gdc.goog VM_NAME \ -n PROJECT
Procure o campo
runningState
nospec
da VM e mude o valor do campo paraRunning
.spec: runningState: Running
Verifique o status da VM:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ get virtualmachines.virtualmachine.gdc.goog VM_NAME \ -n PROJECT
Use estas definições para as variáveis no exemplo de código.
Variável Definição MANAGEMENT_API_SERVER_KUBECONFIG
O arquivo kubeconfig do servidor da API Management. MANAGEMENT_API_SERVER_NAME
O nome do servidor da API Management. NAMESPACE
O namespace da VM. VM_NAME
O nome da VM. PROJECT
O nome do projeto da VM.
Reiniciar uma VM
Quando você reinicia uma VM, a máquina é redefinida para o estado inicial e o conteúdo da memória é apagado.
Reinicie uma VM em execução usando o console ou kubectl
.
Console
No menu de navegação, clique em Virtual Machines > Instâncias.
Na lista de VMs, marque a caixa de seleção da VM em execução que você quer reiniciar.
Clique em Redefinir.
Na caixa de diálogo de confirmação, clique em Redefinir.
gdcloud
Para redefinir uma VM:
gdcloud compute instances reset VM_NAME --project PROJECT
- Substitua
VM_NAME
pelo nome da VM. - Substitua
PROJECT
pelo nome do projeto do GDC em que a VM está.
kubectl
Receba os dados do certificado e da chave do cliente e o servidor da API Management. Use esses valores nas etapas a seguir:
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}'`
Faça uma solicitação de API para reiniciar a VM usando o comando
wget
e especifique o certificado e a chave da etapa 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
Verifique o status da VM:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ get virtualmachines.virtualmachine.gdc.goog VM_NAME -n PROJECT
Use estas definições para as variáveis no código de exemplo.
Variável Definição MANAGEMENT_API_SERVER_KUBECONFIG
O arquivo kubeconfig do servidor da API Management. MANAGEMENT_API_SERVER_NAME
O nome do servidor da API Management. NAMESPACE
O namespace da VM. VM_NAME
O nome da VM. PROJECT
O nome do projeto da VM.