Gestisci il ciclo di vita dell'istanza VM

Un'istanza VM può passare attraverso molti stati durante il suo ciclo di vita. Quando crei una VM, Google Distributed Cloud (GDC) air-gapped esegue il provisioning delle risorse per avviare la VM. Successivamente, la VM passa allo stato di avvio, in cui si prepara per il primo avvio. Durante e dopo l'avvio, una VM è considerata in esecuzione. Durante il suo ciclo di vita, una VM in esecuzione può essere interrotta e riavviata ripetutamente o sospesa e ripresa.

Definizioni degli stati della VM

Stato Definizione
Pending La VM è accettata dal sistema ed è in attesa di allocazione.
Provisioning Le risorse associate alla VM, ad esempio VirtualMachineDisk, sono in fase di provisioning e preparazione.
Starting La VM è in fase di preparazione per l'esecuzione.
Running La VM è in esecuzione.
Stopping La VM è in fase di arresto.
Stopped La VM è arrestata e non è previsto che venga avviata.
Paused La VM è in pausa e in uno stato bloccato, che viene preservato. Non è possibile accedere alla VM.
Terminating La VM e le risorse associate sono in fase di eliminazione.
ErrorConfiguration La VM presenta un errore di configurazione. Gli stati di configurazione non validi possono essere causati da quanto segue:
MachineTypeNotFound: il tipo di VM a cui fa riferimento la VM non è stato trovato o è in fase di eliminazione.
MachineDiskMisconfig: il disco della VM non è configurato correttamente.
InterfaceCreationFailed - La creazione dell'interfaccia di rete non è riuscita.
CrashLoopBackOff La VM è in un ciclo di arresti anomali e attende di essere riprovata.
PendingIPAllocation La VM è in attesa che il sistema le assegni un indirizzo IP.
Unknown Non è stato possibile ottenere lo stato della VM, in genere a causa di un errore di comunicazione con l'host su cui è in esecuzione.
ErrorUnschedulable Si è verificato un errore durante la pianificazione della VM, ad esempio a causa di richieste di risorse o vincoli di pianificazione che non possono essere soddisfatti o supportati.
DiskError La VM presenta un errore con uno o più dischi collegati.
WaitingForDisk La VM è in attesa che uno o più VirtualMachineDisk collegati siano pronti.
CrashLoopBackoff La VM ha subito arresti anomali costanti per qualche motivo.

Prima di iniziare

Per utilizzare i comandi dell'interfaccia a riga di comando (CLI) gdcloud, assicurati di aver scaricato, installato e configurato la CLI gdcloud. Tutti i comandi per Distributed Cloud utilizzano la CLI gdcloud o kubectl e richiedono un ambiente del sistema operativo (OS).

Recupera il percorso del file kubeconfig

Per eseguire comandi sul server dell'API Management, assicurati di disporre delle seguenti risorse:

  1. Accedi e genera il file kubeconfig per il server API Management se non ne hai uno.

  2. Utilizza il percorso del file kubeconfig del server API Management per sostituire MANAGEMENT_API_SERVER in queste istruzioni.

Richiedere autorizzazioni e accesso

Per eseguire le attività elencate in questa pagina, devi disporre del ruolo Amministratore macchina virtuale progetto. Segui i passaggi per verificare di disporre del ruolo Amministratore macchina virtuale progetto (project-vm-admin) nello spazio dei nomi del progetto in cui si trova la VM.

Per le operazioni sulle VM che utilizzano la console GDC o la CLI gdcloud, chiedi all'amministratore IAM del progetto di assegnarti sia il ruolo Project VirtualMachine Admin sia il ruolo Project Viewer (project-viewer).

Controllare lo stato della VM

Ogni VM segnala il proprio stato come parte delle proprietà della VM. Controlla lo stato di una VM per uno dei seguenti motivi:

  • Se ci sono problemi con la VM.
  • Per verificare che la VM sia in esecuzione dopo l'avvio.
  • Per verificare che la VM si trovi nello stato Paused o Stopped.

Elenca le VM per controllare lo stato

La procedura seguente mostra come elencare le VM, visualizzarne lo stato e ottenere informazioni aggiuntive sullo stato.

  1. Elenca tutte le VM e visualizza lo stato di ciascuna:

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

    Sostituisci le variabili negli esempi di codice con i tuoi valori in base alla seguente tabella.

    VariabileDefinizione
    MANAGEMENT_API_SERVER Il file kubeconfig del server API di gestione.
    PROJECT Il progetto GDC in cui si trova la VM.

    Output di esempio:

    NAME          STATUS                    AGE
    vm-1          Running                    1d
    vm-2          Stopped                    8d
    vm-3          ErrorConfiguration         1d
    
  2. Per visualizzare ulteriori dettagli sullo stato di una VM specifica:

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

    Sostituisci quanto segue:

    • MANAGEMENT_API_SERVER con il file kubeconfig per il server API Management ottenuto dal comando gdcloud auth login.
    • VM_NAME con il nome della nuova VM.
    • PROJECT con il progetto GDC in cui si trova la VM.

    Esempio di output che mostra i valori di Reason e Message:

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

    Potresti anche trovare campi vuoti per Reason e Message. Ciò indica che il sistema non ha segnalato nulla in merito.

    Esempio di output con Reason e Message vuoti:

    State: Running
    Reason:
    Message:
    

Arresta o riavvia una VM

Durante il ciclo di vita della VM, potresti dover arrestare e riavviare una VM o eliminarla per rispondere a una modifica dello stato o per gestire la VM in generale. Consulta queste pagine per arrestare, reimpostare o eliminare una VM: