Gerenciar o ciclo de vida da instância de VM

Uma instância de VM pode passar por vários estados durante o ciclo de vida. Quando você cria uma VM, o dispositivo isolado do Google Distributed Cloud (GDC) provisiona recursos para iniciar a VM. Em seguida, a VM passa para o estado de inicialização, em que é preparada para a primeira inicialização. Durante e após a inicialização, uma VM é considerada em execução. Durante todo o ciclo de vida, uma VM em execução pode ser interrompida e reiniciada ou suspensa e retomada repetidamente.

Definições de status da VM

Estado Definição
Pending A VM foi aceita pelo sistema e está aguardando alocação.
Provisioning Os recursos associados à VM, como VirtualMachineDisk, estão sendo provisionados e preparados.
Starting A VM está sendo preparada para execução.
Running A VM está em execução.
Stopping A VM está em processo de interrupção.
Stopped A VM está parada e não deve ser iniciada.
Paused A VM é pausada e fica em um estado congelado, que é preservado. Não é possível acessar a VM.
Terminating A VM e os recursos associados estão passando pelo processo de exclusão.
ErrorConfiguration A VM tem um erro de configuração. Os estados de configuração inválidos podem ser causados pelo seguinte:
MachineTypeNotFound: o tipo de VM a que a VM se refere não foi encontrado ou está sendo excluído.
MachineDiskMisconfig - O disco da VM está configurado incorretamente.
InterfaceCreationFailed: falha na criação da interface de rede.
CrashLoopBackOff A VM está em um loop de falhas e aguardando uma nova tentativa.
PendingIPAllocation A VM está aguardando o sistema atribuir um endereço IP a ela.
Unknown Não foi possível receber o estado da VM, geralmente devido a um erro na comunicação com o host em que ela está sendo executada.
ErrorUnschedulable Ocorreu um erro ao programar a VM, por exemplo, devido a solicitações de recursos ou restrições de programação que não podem ser atendidas ou aceitas.
DiskError A VM tem um erro em um ou mais dos discos anexados.
WaitingForDisk A VM está aguardando que um ou mais dos VirtualMachineDisk anexados fiquem prontos.
CrashLoopBackoff A VM está falhando constantemente por algum motivo.

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 para o dispositivo isolado do GDC 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:

  1. Localize o nome do servidor da API Management ou pergunte ao administrador da plataforma (PA) qual é o nome do servidor.

  2. Faça login e gere o arquivo kubeconfig para o servidor da API Management se você não tiver um.

  3. Use o caminho para substituir MANAGEMENT_API_SERVER{"</var>"}} nestas instruções.

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ê os papéis de administrador de máquina virtual do projeto e leitor do projeto (project-viewer).

Verificar o status da VM

Cada VM informa seu status como parte das propriedades da VM. Verifique o status de uma VM por qualquer um dos seguintes motivos:

  • Se houver problemas com a VM.
  • Para confirmar se a VM está em execução depois de iniciada.
  • Para verificar se a VM está no estado Paused ou Stopped.

Listar VMs para verificar o status

O procedimento a seguir mostra como listar VMs, conferir o status delas e receber informações adicionais sobre o status.

  1. Liste todas as VMs e confira o status de cada uma:

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

    Substitua as variáveis nos exemplos de código pelos seus próprios valores, de acordo com a tabela a seguir.

    VariávelDefinição
    MANAGEMENT_API_SERVER O arquivo kubeconfig do servidor da API Management.
    PROJECT O projeto do GDC em que a VM reside.

    Exemplo de saída:

    NAME          STATUS                    AGE
    vm-1          Running                    1d
    vm-2          Stopped                    8d
    vm-3          ErrorConfiguration         1d
    
  2. Para mais detalhes sobre o status de uma VM específica:

    kubectl  --kubeconfig MANAGEMENT_API_SERVER \
        get virtualmachines.virtualmachine.gdc.goog VM_NAME -n PROJECT -o \
        jsonpath='{"State:"}{.status.state}{"\n"}{"Reason:"}{.status.reason}{"\n"}{"Message:"}{.status.message}{"\n"}'
    

    Substitua:

    • MANAGEMENT_API_SERVER com o arquivo kubeconfig do servidor da API Management que você conseguiu com o comando gdcloud auth login.
    • VM_NAME pelo nome da nova VM.
    • PROJECT com o projeto do GDC em que a VM reside.

    Exemplo de saída mostrando valores Reason e Message:

    State: ErrorConfiguration
    Reason: MachineDiskNotFound
    Message: VirtualMachineDisk disk-1 in namespace project-1 does not exist.
    

    Você também pode receber campos vazios para Reason e Message. Isso indica que não havia nada para o sistema informar sobre elas.

    Exemplo de saída com Reason e Message vazios:

    State: Running
    Reason:
    Message:
    

Interromper ou reiniciar uma VM

Durante o ciclo de vida da VM, talvez seja necessário interromper e reiniciar uma VM ou excluir uma VM para responder a uma mudança de status ou gerenciar a VM de maneira geral. Consulte estas páginas para interromper, redefinir ou excluir uma VM: