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) con air gap 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 viene considerata in esecuzione. Durante il suo ciclo di vita, una VM in esecuzione può essere arrestata e riavviata o sospesa e ripristinata ripetutamente.

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 VM non è configurato correttamente.
InterfaceCreationFailed - La creazione dell'interfaccia di rete non è riuscita.
CrashLoopBackOff La VM si trova in un ciclo di arresto anomalo ed è in attesa di essere ritentata.
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 Si è verificato un errore nella VM 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.

Recupera il percorso del file kubeconfig

Per eseguire comandi sul server 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 VirtualMachine 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 gcloud CLI, 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 \
        get virtualmachines.virtualmachine.gdc.goog -n PROJECT
    

    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 determinata VM:

    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"}'
    

    Sostituisci quanto segue:

    • MANAGEMENT_API_SERVER con il file kubeconfig per il server API Management che hai 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 nulla da segnalare in merito.

    Output di esempio 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 gestirla in generale. Consulta queste pagine per arrestare, reimpostare o eliminare una VM: