Questo documento spiega come avviare, arrestare e riavviare un'istanza di macchina virtuale (VM) in Google Distributed Cloud (GDC) air-gapped.
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 centralizzate virtuali (vCPU) assegnate o la quantità di memoria allocata a una VM. Prima di modificare la configurazione, devi arrestare la VM. Al termine, devi eseguire il ciclo dello stato di alimentazione per applicare le modifiche.
Questo documento è destinato agli sviluppatori dei gruppi di amministratori della piattaforma o operatori delle applicazioni che devono avviare, arrestare e riavviare le istanze VM in un ambiente Distributed Cloud. Per saperne di più, consulta la sezione Pubblico della documentazione di GDC con air gap.
Prima di iniziare
Per utilizzare i comandi dell'interfaccia a riga di comando (CLI) gdcloud, assicurati di aver scaricato, installato,
e configurato la gdcloud CLI.
Tutti i comandi per Distributed Cloud utilizzano la CLI gdcloud o kubectl e richiedono un ambiente di sistema operativo (OS).
Recupera il percorso del file kubeconfig
Per eseguire i comandi sul server API di gestione, assicurati di disporre delle seguenti risorse:
Accedi e genera il file kubeconfig per il server API di gestione, se non ne hai uno.
Utilizza il percorso del file kubeconfig del server API di gestione per sostituire
MANAGEMENT_API_SERVERin 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.
Richiedi i ruoli IAM
Contatta l'amministratore IAM del progetto per richiedere i seguenti ruoli nel progetto:
Amministratore del progetto di macchine virtuali (
project-vm-admin): crea, modifica, elenca ed elimina le VM nello spazio dei nomi del progetto.Visualizzatore progetto(
project-viewer): visualizza tutte le risorse all'interno degli spazi dei nomi del progetto.
Tutti i ruoli VM devono essere associati allo spazio dei nomi del progetto in cui risiede la VM. Segui i passaggi per verificare l'accesso.
Arresta una VM
Quando arresti una macchina virtuale (VM), l'hypervisor dealloca tutte le risorse associate all'istanza. La VM viene arrestata.
Arresta una VM in stato di esecuzione utilizzando la console GDC o kubectl.
Console
Nel menu di navigazione, fai clic su Macchine virtuali > Istanze.
Nell'elenco delle VM, seleziona la casella di controllo per la VM in esecuzione che vuoi arrestare.
Fai clic su Arresta.
Nella finestra di dialogo di conferma, fai clic su Arresta.
gdcloud
Per arrestare una VM:
gdcloud compute instances stop VM_NAME \
--project PROJECT
- Sostituisci
VM_NAMEcon il nome della VM. - Sostituisci
PROJECTcon il nome del progetto GDC in cui si trova la VM.
kubectl
Esegui questo comando:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ -n PROJECT \ edit virtualmachines.virtualmachine.gdc.goog VM_NAMECerca il campo
runningStatenellospecdella VM e modifica il valore del campo inStopped. SerunningStatenon è presente nellospec, aggiungilo e imposta il valore suStopped.runningStatespecspec: runningState: StoppedVerifica lo stato della VM:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ -n PROJECT \ get virtualmachines.virtualmachine.gdc.goog VM_NAMEUtilizza queste definizioni per le variabili precedenti.
Variabile Definizione 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 dallo stato di arresto utilizzando la console o kubectl.
Console
Nel menu di navigazione, fai clic su Macchine virtuali > Istanze.
Nell'elenco delle VM, seleziona la casella di controllo per la VM arrestata che vuoi avviare.
Fai clic su Avvia.
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_NAMEcon il nome della VM. - Sostituisci
PROJECTcon il nome del progetto GDC in cui si trova la VM.
kubectl
Esegui questo comando:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ -n PROJECT \ edit virtualmachines.virtualmachine.gdc.goog VM_NAMECerca il campo
runningStatenellospecdella VM e modifica il valore del campo inRunning.spec: runningState: RunningVerifica lo stato della VM:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ -n PROJECT \ get virtualmachines.virtualmachine.gdc.goog VM_NAMEUtilizza queste definizioni per le variabili nel codice di esempio.
Variabile Definizione MANAGEMENT_API_SERVER_KUBECONFIGIl file kubeconfig del server API di gestione. MANAGEMENT_API_SERVER_NAMEIl nome del server API di gestione. VM_NAMEIl nome della VM. PROJECTIl nome del progetto della VM.
Riavvia una VM
Quando riavvii una VM, la macchina viene reimpostata allo stato iniziale e i contenuti della memoria della macchina vengono cancellati.
Riavvia una VM in stato di esecuzione utilizzando la console o kubectl.
Console
Nel menu di navigazione, fai clic su Macchine virtuali > Istanze.
Nell'elenco delle VM, seleziona la casella di controllo per la VM in esecuzione che vuoi riavviare.
Fai clic su Reimposta.
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_NAMEcon il nome della VM. - Sostituisci
PROJECTcon il nome del progetto GDC in cui si trova la VM.
kubectl
Recupera i dati del certificato e della chiave del client e il server API di gestione. Utilizza questi valori nei passaggi seguenti:
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}'`Crea una richiesta API per riavviare la VM utilizzando il comando
wgete 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/restartVerifica lo stato della VM:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ -n PROJECT \ get virtualmachines.virtualmachine.gdc.goog VM_NAMEUtilizza queste definizioni per le variabili nel codice di esempio.
Variabile Definizione MANAGEMENT_API_SERVER_KUBECONFIGIl file kubeconfig del server API di gestione. MANAGEMENT_API_SERVER_NAMEIl nome del server API di gestione. VM_NAMEIl nome della VM. PROJECTIl nome del progetto della VM.