Este documento explica como iniciar, interromper e reiniciar uma instância de máquina virtual (VM) no Google Distributed Cloud (GDC) com isolamento físico.
É 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 central (vCPUs) virtuais 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, você precisa ciclar o estado de energia para aplicar as mudanças.
Este documento é destinado a desenvolvedores em grupos de administradores de plataforma ou operadores de aplicativos que precisam iniciar, interromper e reiniciar instâncias de VM em um ambiente do Distributed Cloud. Para mais informações, consulte Públicos-alvo da documentação do GDC com isolamento físico.
Antes de começar
Para usar comandos da interface de linha de comando (CLI) gdcloud, faça o download, a instalação,
e a configuração da gdcloud CLI.
Todos os comandos do Distributed Cloud usam a CLI gdcloud ou kubectl e exigem um ambiente de sistema operacional (SO).
Receber 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_SERVERnestas instruções.
Se você 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 papéis do IAM
Entre em contato com o administrador do IAM do projeto para solicitar os seguintes papéis no projeto:
Administrador do projeto de máquina virtual (
project-vm-admin): cria, modifica, lista e exclui VMs no namespace do projeto.Leitor do projeto(
project-viewer): visualiza todos os recursos nos namespaces do projeto.
Todos os papéis da VM precisam ser vinculados ao namespace do projeto em que a VM reside. Siga as etapas para verificar seu acesso.
Interromper uma VM
Quando você interrompe uma máquina virtual (VM), o hipervisor desaloca todos os recursos associados à instância. A VM está desligada.
Interrompa uma VM que está em estado de execução usando o console do GDC ou kubectl.
Console
No menu de navegação, clique em Máquinas virtuais > 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 Interromper.
gdcloud
Para interromper uma VM:
gdcloud compute instances stop VM_NAME \
--project PROJECT
- Substitua
VM_NAMEpelo nome da VM. - Substitua
PROJECTpelo nome do projeto do GDC em que a VM reside.
kubectl
Execute este comando:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ -n PROJECT \ edit virtualmachines.virtualmachine.gdc.goog VM_NAMEProcure o campo
runningStatenospecda VM e mude o valor do campo paraStopped. SerunningStatenão estiver nospec, adicionerunningStateaospece defina o valor comoStopped.spec: runningState: StoppedVerifique o status da VM:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ -n PROJECT \ get virtualmachines.virtualmachine.gdc.goog VM_NAMEUse estas definições para as variáveis anteriores.
Variável Definição MANAGEMENT_API_SERVER_KUBECONFIGO arquivo kubeconfig do servidor da API Management. VM_NAMEO nome da VM. PROJECTO nome do projeto da VM.
Iniciar uma VM
Inicie uma VM de um estado interrompido usando o console ou kubectl.
Console
No menu de navegação, clique em Máquinas virtuais > 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_NAMEpelo nome da VM. - Substitua
PROJECTpelo nome do projeto do GDC em que a VM reside.
kubectl
Execute este comando:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ -n PROJECT \ edit virtualmachines.virtualmachine.gdc.goog VM_NAMEProcure o campo
runningStatenospecda VM e mude o valor do campo paraRunning.spec: runningState: RunningVerifique o status da VM:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ -n PROJECT \ get virtualmachines.virtualmachine.gdc.goog VM_NAMEUse estas definições para as variáveis no código de exemplo.
Variável Definição MANAGEMENT_API_SERVER_KUBECONFIGO arquivo kubeconfig do servidor da API Management. MANAGEMENT_API_SERVER_NAMEO nome do servidor da API Management. VM_NAMEO nome da VM. PROJECTO 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 da máquina é limpo.
Reinicie uma VM que está em estado de execução usando o console ou kubectl.
Console
No menu de navegação, clique em Máquinas virtuais > 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_NAMEpelo nome da VM. - Substitua
PROJECTpelo nome do projeto do GDC em que a VM reside.
kubectl
Receba o certificado do cliente e os dados da chave, além do 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
wgete 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/restartVerifique o status da VM:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ -n PROJECT \ get virtualmachines.virtualmachine.gdc.goog VM_NAMEUse estas definições para as variáveis no código de exemplo.
Variável Definição MANAGEMENT_API_SERVER_KUBECONFIGO arquivo kubeconfig do servidor da API Management. MANAGEMENT_API_SERVER_NAMEO nome do servidor da API Management. VM_NAMEO nome da VM. PROJECTO nome do projeto da VM.