Inicie e pare uma VM

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:

  1. Inicie sessão e gere o ficheiro kubeconfig para o servidor da API Management, se não tiver um.

  2. Use o caminho para o ficheiro kubeconfig do servidor da API Management para substituir MANAGEMENT_API_SERVER nestas 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

  1. No menu de navegação, clique em Máquinas virtuais > Instâncias.

  2. Na lista de VMs, selecione a caixa de verificação da VM em execução que quer parar.

  3. Clique em Parar.

  4. 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_NAME pelo nome da VM.
  • Substitua PROJECT pelo nome do projeto do GDC no qual a VM reside.

kubectl

  1. Execute o seguinte comando:

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \
       -n PROJECT \
       edit virtualmachines.virtualmachine.gdc.goog VM_NAME
    
  2. Procure o campo runningState na spec da VM e altere o valor do campo para Stopped. Se runningState não estiver na spec, adicione runningState à spec e defina o valor como Stopped.

    spec:
       runningState: Stopped
    
  3. Valide o estado da VM:

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

    Use estas definições para as variáveis anteriores.

    VariávelDefiniçã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

  1. No menu de navegação, clique em Máquinas virtuais > Instâncias.

  2. Na lista de VMs, selecione a caixa de verificação da VM parada que quer iniciar.

  3. Clique em Iniciar.

  4. 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 no qual a VM reside.

kubectl

  1. Execute o seguinte comando:

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \
      -n PROJECT \
      edit virtualmachines.virtualmachine.gdc.goog VM_NAME
    
  2. Procure o campo runningState na spec da VM e altere o valor do campo para Running.

    spec:
       runningState: Running
    
  3. Valide o estado da VM:

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

    Use estas definições para as variáveis no exemplo de código.

    VariávelDefiniçã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

  1. No menu de navegação, clique em Máquinas virtuais > Instâncias.

  2. Na lista de VMs, selecione a caixa de verificação da VM em execução que quer reiniciar.

  3. Clique em Repor.

  4. 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_NAME pelo nome da VM.
  • Substitua PROJECT pelo nome do projeto do GDC no qual a VM reside.

kubectl

  1. 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}'`
    
  2. Faça um pedido de API para reiniciar a VM com o comando wget e 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/restart
    
  3. Valide o estado da VM:

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

    Use estas definições para as variáveis no exemplo de código.

    VariávelDefiniçã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.