Este documento explica como iniciar, parar e reiniciar uma instância de máquina virtual (VM) no Google Distributed Cloud (GDC) air-gapped.
Pode parar, iniciar e reiniciar VMs para suportar o ciclo de vida das suas aplicações. Por exemplo, pode querer alterar o número de unidades de processamento central (CPUs) virtuais atribuídas ou a quantidade de memória alocada a uma VM. Tem de parar a VM antes de editar a configuração. Depois de terminar, tem de alternar o estado de energia para aplicar as alterações.
Este documento destina-se a programadores em grupos de administradores da plataforma ou operadores de aplicações que precisam de iniciar, parar e reiniciar instâncias de VM num ambiente do Distributed Cloud. Para mais informações, consulte o artigo Públicos-alvo para a documentação do GDC air-gapped.
Antes de começar
Para usar os comandos da interface de linhas de comandos (CLI) gdcloud, certifique-se de que transferiu, instalou,
e configurou a CLI gdcloud.
Todos os comandos do Distributed Cloud usam a CLI gdcloud ou kubectl e requerem um ambiente de sistema operativo (SO).
Obtenha o caminho do ficheiro kubeconfig
Para executar comandos no servidor da API Management, certifique-se de que tem os seguintes recursos:
Inicie sessão e gere o ficheiro kubeconfig para o servidor da API Management, se não tiver um.
Use o caminho para o ficheiro kubeconfig do servidor da API Management para substituir
MANAGEMENT_API_SERVERnestas instruções.
Se quiser minimizar o tempo de arranque da VM, siga as instruções em Minimize the VM start time antes de iniciar a VM.
Peça funções de IAM
Contacte o administrador de IAM do projeto para pedir as seguintes funções no seu projeto:
Administrador do projeto de máquinas virtuais (
project-vm-admin): crie, modifique, liste e elimine VMs no espaço de nomes do projeto.Visualizador do projeto(
project-viewer): veja todos os recursos nos espaços de nomes do projeto.
Todas as funções de VM têm de ser associadas ao espaço de nomes do projeto onde a VM reside. Siga os passos para validar o seu acesso.
Pare uma VM
Quando para uma máquina virtual (VM), o hipervisor desatribui todos os recursos associados à instância. A VM é encerrada.
Pare uma VM que esteja em estado de execução com a consola do GDC ou o kubectl.
Consola
No menu de navegação, clique em Máquinas virtuais > Instâncias.
Na lista de VMs, selecione a caixa de verificação da VM em execução que quer parar.
Clique em Parar.
Na caixa de diálogo de confirmação, clique em Parar.
gdcloud
Para parar uma VM:
gdcloud compute instances stop VM_NAME \
--project PROJECT
- Substitua
VM_NAMEpelo nome da VM. - Substitua
PROJECTpelo nome do projeto do GDC no qual a VM reside.
kubectl
Execute o seguinte comando:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ -n PROJECT \ edit virtualmachines.virtualmachine.gdc.goog VM_NAMEProcure o campo
runningStatenaspecda VM e altere o valor do campo paraStopped. SerunningStatenão estiver naspec, adicionerunningStateàspece defina o valor comoStopped.spec: runningState: StoppedValide o estado 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 ficheiro kubeconfig do servidor da API Management. VM_NAMEO nome da VM. PROJECTO nome do projeto da VM.
Inicie uma VM
Inicie uma VM a partir de um estado parado com a consola ou o kubectl.
Consola
No menu de navegação, clique em Máquinas virtuais > Instâncias.
Na lista de VMs, selecione a caixa de verificação da VM parada que 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 no qual a VM reside.
kubectl
Execute o seguinte comando:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ -n PROJECT \ edit virtualmachines.virtualmachine.gdc.goog VM_NAMEProcure o campo
runningStatenaspecda VM e altere o valor do campo paraRunning.spec: runningState: RunningValide o estado 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 exemplo de código.
Variável Definição MANAGEMENT_API_SERVER_KUBECONFIGO ficheiro 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.
Reinicie uma VM
Quando reinicia uma VM, a máquina é reposta para o estado inicial e o conteúdo da memória da máquina é apagado.
Reinicie uma VM que esteja em estado de execução com a consola ou o kubectl.
Consola
No menu de navegação, clique em Máquinas virtuais > Instâncias.
Na lista de VMs, selecione a caixa de verificação da VM em execução que quer reiniciar.
Clique em Repor.
Na caixa de diálogo de confirmação, clique em Repor.
gdcloud
Para repor uma VM:
gdcloud compute instances reset VM_NAME --project PROJECT
- Substitua
VM_NAMEpelo nome da VM. - Substitua
PROJECTpelo nome do projeto do GDC no qual a VM reside.
kubectl
Obtenha os dados da chave e do certificado do cliente, e o servidor da API Management. Use estes valores nos passos seguintes:
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 um pedido de API para reiniciar a VM com o comando
wgete especifique o certificado e a chave do passo 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/restartValide o estado 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 exemplo de código.
Variável Definição MANAGEMENT_API_SERVER_KUBECONFIGO ficheiro 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.