Avvia e arresta una VM

Puoi arrestare, avviare e riavviare le VM per supportare il ciclo di vita delle tue applicazioni. Ad esempio, potresti voler modificare il numero di unità di elaborazione centrale virtuali (vCPU) assegnate o la quantità di memoria allocata a una VM. Devi arrestare la VM prima di modificare la configurazione. Al termine, devi riavviare il dispositivo per applicare le modifiche. Questa pagina fornisce istruzioni per arrestare, avviare e riavviare le VM in questi processi.

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.

Se vuoi ridurre al minimo il tempo di avvio della VM, segui le istruzioni riportate in Ridurre al minimo il tempo di avvio della VM prima di avviare la VM.

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 o chiedere all'amministratore IAM progetto di assegnarti il 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 Amministratore VM del progetto sia il ruolo Visualizzatore progetto (project-viewer).

Arresta una VM

Quando arresti una macchina virtuale (VM), l'hypervisor dealloca tutte le risorse associate all'istanza. La VM è arrestata.

Arresta una VM in stato di esecuzione utilizzando la console GDC o kubectl.

Console

  1. Nel menu di navigazione, fai clic su Virtual Machines > Instances.

  2. Nell'elenco delle VM, seleziona la casella di controllo relativa alla VM in esecuzione che vuoi arrestare.

  3. Fai clic su Arresta.

  4. Nella finestra di dialogo di conferma, fai clic su Interrompi.

gdcloud

Per arrestare una VM:

gdcloud compute instances stop VM_NAME --project PROJECT
  • Sostituisci VM_NAME con il nome della VM.
  • Sostituisci PROJECT con il nome del progetto GDC in cui si trova la VM.

kubectl

  1. Esegui questo comando:

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \
       edit virtualmachines.virtualmachine.gdc.goog VM_NAME \
       -n PROJECT
    
  2. Cerca il campo runningState in spec della VM e modifica il valore del campo in Stopped. Se runningState non è in spec, aggiungi runningState a spec e imposta il valore su Stopped.

    spec:
       runningState: Stopped
    
  3. Verifica lo stato della VM:

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

    Utilizza queste definizioni per le variabili precedenti.

    VariabileDefinizione
    MANAGEMENT_API_SERVER_KUBECONFIGIl file kubeconfig del server API di gestione.
    VM_NAMEIl nome della VM.
    PROJECTIl nome del progetto della VM.

Avvia una VM

Avvia una VM da uno stato di arresto utilizzando la console o kubectl.

Console

  1. Nel menu di navigazione, fai clic su Virtual Machines > Instances.

  2. Nell'elenco delle VM, seleziona la casella di controllo della VM arrestata che vuoi avviare.

  3. Fai clic su Avvia.

  4. Nella finestra di dialogo di conferma, fai clic su Avvia.

gdcloud

Per avviare una VM:

gdcloud compute instances start VM_NAME --project PROJECT
  • Sostituisci VM_NAME con il nome della VM.
  • Sostituisci PROJECT con il nome del progetto GDC in cui si trova la VM.

kubectl

  1. Esegui questo comando:

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ 
       edit virtualmachines.virtualmachine.gdc.goog VM_NAME \ 
       -n PROJECT
    
  2. Cerca il campo runningState in spec della VM e modifica il valore del campo in Running.

    spec:
       runningState: Running
    
  3. Verifica lo stato della VM:

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

    Utilizza queste definizioni per le variabili nel codice di esempio.

    VariabileDefinizione
    MANAGEMENT_API_SERVER_KUBECONFIGIl file kubeconfig del server API di gestione.
    MANAGEMENT_API_SERVER_NAMEIl nome del server dell'API Management.
    NAMESPACELo spazio dei nomi della VM.
    VM_NAMEIl nome della VM.
    PROJECTIl nome del progetto della VM.

Riavvia una VM

Quando riavvii una VM, la macchina viene ripristinata allo stato iniziale e i contenuti della memoria vengono cancellati.

Riavvia una VM in stato di esecuzione utilizzando la console o kubectl.

Console

  1. Nel menu di navigazione, fai clic su Virtual Machines > Instances.

  2. Nell'elenco delle VM, seleziona la casella di controllo relativa alla VM in esecuzione da riavviare.

  3. Fai clic su Reimposta.

  4. Nella finestra di dialogo di conferma, fai clic su Reimposta.

gdcloud

Per reimpostare una VM:

gdcloud compute instances reset VM_NAME --project PROJECT
  • Sostituisci VM_NAME con il nome della VM.
  • Sostituisci PROJECT con il nome del progetto GDC in cui si trova la VM.

kubectl

  1. Recupera i dati del certificato e della chiave del client e il server dell'API Management. Utilizza questi valori nei passaggi successivi:

    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. Effettua una richiesta API per riavviare la VM utilizzando il comando wget e specifica il certificato e la chiave del passaggio precedente:

    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. Verifica lo stato della VM:

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

    Utilizza queste definizioni per le variabili nel codice di esempio.

    VariabileDefinizione
    MANAGEMENT_API_SERVER_KUBECONFIGIl file kubeconfig del server API di gestione.
    MANAGEMENT_API_SERVER_NAMEIl nome del server dell'API Management.
    NAMESPACELo spazio dei nomi della VM.
    VM_NAMEIl nome della VM.
    PROJECTIl nome del progetto della VM.