Creare e avviare un'istanza VM

Questa pagina fornisce istruzioni per creare un'istanza di macchina virtuale (VM) utilizzando un'immagine disco di avvio o uno snapshot del disco di avvio.

Puoi creare una VM con uno o più dischi. Puoi anche aggiungere dischi alla tua VM dopo la creazione. L'appliance con air gap di Google Distributed Cloud (GDC) avvia automaticamente l'istanza VM dopo la creazione.

Puoi aggiungere script di avvio a una VM, prima o dopo la creazione. Per scoprire di più sugli script di avvio, consulta la pagina Utilizzare uno script di avvio con un'istanza VM.

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 l'appliance GDC air-gapped 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 API Management, assicurati di disporre delle seguenti risorse:

  1. Individua il nome del server dell'API Management o chiedi all'amministratore della piattaforma (PA) qual è il nome del server.

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

  3. Utilizza il percorso per sostituire MANAGEMENT_API_SERVER{"</var>"}} 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 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 Project VirtualMachine Admin sia il ruolo Project Viewer (project-viewer).

Crea un'istanza VM da un'immagine

Questa sezione mostra come creare una VM da un'immagine sistema operativo fornita da GDC o da un'immagine sistema operativo personalizzata.

Visualizza un elenco di immagini fornite da GDC disponibili

Prima di creare una VM utilizzando un'immagine fornita da GDC, esamina l'elenco delle immagini disponibili.

gdcloud

Elenca tutte le immagini disponibili e la relativa dimensione minima del disco:

gdcloud compute images list

Questo comando include sia le immagini fornite da GDC sia quelle personalizzate. Scegli una delle due immagini nello spazio dei nomi vm-system.

API

  1. Elenca tutte le immagini fornite da GDC disponibili:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        get virtualmachineimage.virtualmachine.gdc.goog --namespace vm-system
    
  2. Ottieni l'minimumDiskSize per una determinata immagine fornita da GDC:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        get virtualmachineimage.virtualmachine.gdc.goog --namespace vm-system \
        BOOT_DISK_IMAGE_NAME -ojsonpath='{.spec.minimumDiskSize}{"\n"}'
    

    Sostituisci quanto segue:

    • MANAGEMENT_API_SERVER con kubeconfig per il server dell'API Management.
    • BOOT_DISK_IMAGE_NAME con il nome dell'immagine.

Crea un'istanza VM da un'immagine fornita da GDC

Per impostazione predefinita, tutti i progetti GDC possono creare VM da immagini sistema operativo fornite da GDC.

gdcloud

Seleziona un'immagine fornita da GDC per creare l'istanza VM:

gdcloud compute instances create VM_NAME \
    --machine-type=MACHINE_TYPE \
    --image=BOOT_DISK_IMAGE_NAME --image-project=vm-system \
    --boot-disk-size=BOOT_DISK_SIZE \
    --no-boot-disk-auto-delete=NO_BOOT_DISK_AUTO_DELETE

Sostituisci quanto segue:

VariabileDefinizione
VM_NAME Il nome della nuova VM. Il nome deve contenere solo caratteri alfanumerici e trattini e non deve superare i 53 caratteri.
BOOT_DISK_IMAGE_NAME Il nome dell'immagine da utilizzare per il disco di avvio della nuova VM.
BOOT_DISK_SIZE Le dimensioni del disco di avvio, ad esempio 20G.
Questo valore deve essere sempre maggiore o uguale a minimumDiskSize dell'immagine del disco di avvio.
NO_BOOT_DISK_AUTO_DELETE true o false, che indica l'inverso dell'eliminazione automatica del disco di avvio quando viene eliminata l'istanza VM.
MACHINE_TYPE Il tipo di macchina predefinita per la nuova VM. Per selezionare un tipo di macchina disponibile, esegui questo comando:
gdcloud compute machine-types list

API

  1. Seleziona un'immagine fornita dall'appliance GDC air-gapped per creare l'istanza VM:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        apply -n PROJECT -f - <<EOF
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachineDisk
    metadata:
      name: VM_BOOT_DISK_NAME
    spec:
      source:
        image:
          name: BOOT_DISK_IMAGE_NAME
          namespace: vm-system
      size: BOOT_DISK_SIZE
    ---
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
    spec:
      compute:
        virtualMachineType: MACHINE_TYPE
      disks:
        - virtualMachineDiskRef:
            name: VM_BOOT_DISK_NAME
          boot: true
          autoDelete: BOOT_DISK_AUTO_DELETE
    EOF
    

    Sostituisci quanto segue:

    VariabileDefinizione
    MANAGEMENT_API_SERVER Il percorso del server API Management kubeconfig.
    PROJECT Il progetto dell'appliance GDC air-gapped per creare la VM.
    VM_NAME Il nome della nuova VM. Il nome deve contenere solo caratteri alfanumerici e trattini e non deve superare i 53 caratteri.
    VM_BOOT_DISK_NAME Il nome del nuovo disco di avvio della VM.
    BOOT_DISK_IMAGE_NAME Il nome dell'immagine da utilizzare per il disco di avvio della nuova VM.
    BOOT_DISK_SIZE Le dimensioni del disco di avvio, ad esempio 20G.
    Questo valore deve essere sempre maggiore o uguale a minimumDiskSize dell'immagine del disco di avvio.
    BOOT_DISK_AUTO_DELETE true o false, che indica se il disco di avvio viene eliminato automaticamente quando viene eliminata l'istanza VM.
    MACHINE_TYPE Il tipo di macchina predefinita per la nuova VM. Per selezionare un tipo di macchina disponibile, esegui questo comando:
    gdcloud compute machine-types list
  2. Verifica che la VM sia stata creata e attendi che mostri lo stato Running. Lo stato Running non indica che il sistema operativo è completamente pronto e accessibile.

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

    Sostituisci VM_NAME e PROJECT con il nome e il progetto della VM. VM_NAME deve contenere solo caratteri alfanumerici e trattini.

    Per aggiungere uno script di avvio alla creazione dell'istanza VM, segui i passaggi forniti nella pagina Utilizzare uno script di avvio con un'istanza VM. Assicurati di arrestare la VM prima di aggiungere lo script.

Crea un'istanza VM da un'immagine personalizzata

Un'immagine personalizzata appartiene esclusivamente al tuo progetto. Per creare una VM con un'immagine personalizzata, devi prima creare un'immagine personalizzata nello stesso progetto, se non ne hai già una.

gdcloud

  1. Elenca tutte le immagini personalizzate:

    gdcloud compute images list --no-standard-images=true
    
  2. Crea l'istanza VM:

    gdcloud compute instances create VM_NAME \
        --machine-type=MACHINE_TYPE \
        --image=BOOT_DISK_IMAGE_NAME \
        --boot-disk-size=BOOT_DISK_SIZE \
        --no-boot-disk-auto-delete=NO_BOOT_DISK_AUTO_DELETE
    

    Sostituisci quanto segue:

    VariabileDefinizione
    VM_NAME Il nome della nuova VM. Il nome deve contenere solo caratteri alfanumerici e trattini e non deve superare i 53 caratteri.
    BOOT_DISK_IMAGE_NAME Il nome dell'immagine da utilizzare per il disco di avvio della nuova VM.
    BOOT_DISK_SIZE Le dimensioni del disco di avvio, ad esempio 20G.
    Questo valore deve essere sempre maggiore o uguale a minimumDiskSize dell'immagine del disco di avvio.
    NO_BOOT_DISK_AUTO_DELETE true o false, che indica l'inverso dell'eliminazione automatica del disco di avvio quando viene eliminata l'istanza VM.
    MACHINE_TYPE Il tipo di macchina predefinita per la nuova VM. Per selezionare un tipo di macchina disponibile, esegui questo comando:
    gdcloud compute machine-types list

API

  1. Elenca tutte le immagini personalizzate:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        get virtualmachineimage.virtualmachine.gdc.goog --namespace PROJECT
    

    Recupera minimumDiskSize di un'immagine specifica per creare un'istanza VM:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        get virtualmachineimage.virtualmachine.gdc.goog --namespace PROJECT \
        BOOT_DISK_IMAGE_NAME -ojsonpath='{.spec.minimumDiskSize}{"\n"}'
    

    Sostituisci quanto segue:

    VariabileDefinizione
    MANAGEMENT_API_SERVER Il percorso del server API Management kubeconfig.
    BOOT_DISK_IMAGE_NAME Il nome dell'immagine scelta dal comando per elencare tutte le immagini personalizzate.
    PROJECT Il progetto dell'immagine.
  2. Crea l'istanza VM:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        apply -n PROJECT -f - <<EOF
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachineDisk
    metadata:
      name: VM_BOOT_DISK_NAME
    spec:
      source:
        image:
          name: BOOT_DISK_IMAGE_NAME
      size: BOOT_DISK_SIZE
    ---
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
    spec:
      compute:
        virtualMachineType: MACHINE_TYPE
      disks:
        - virtualMachineDiskRef:
            name: VM_BOOT_DISK_NAME
          boot: true
          autoDelete: BOOT_DISK_AUTO_DELETE
    EOF
    

    Sostituisci le variabili utilizzando le seguenti definizioni:

    VariabileDefinizione
    MANAGEMENT_API_SERVER Il file kubeconfig del server API Management.
    PROJECT Il progetto dell'appliance GDC air-gapped per creare la VM.
    VM_NAME Il nome della nuova VM. Il nome deve contenere solo caratteri alfanumerici e trattini e non deve superare i 53 caratteri.
    VM_BOOT_DISK_NAME Il nome del nuovo disco di avvio della VM.
    BOOT_DISK_IMAGE_NAME Il nome dell'immagine da utilizzare per il disco di avvio della nuova VM.
    BOOT_DISK_SIZE Le dimensioni del disco di avvio, ad esempio 20G.
    Questo valore deve essere sempre maggiore o uguale a minimumDiskSize dell'immagine del disco di avvio.
    BOOT_DISK_AUTO_DELETE true o false, che indica se il disco di avvio viene eliminato automaticamente quando viene eliminata l'istanza VM.
    MACHINE_TYPE Il tipo di macchina predefinita per la nuova VM. Per selezionare un tipo di macchina disponibile, esegui questo comando:
    kubectl --kubeconfig MANAGEMENT_API_SERVER get virtualmachinetype.virtualmachine.gdc.goog --namespace vm-system
  3. Verifica che la VM sia stata creata e attendi che mostri lo stato Running. Lo stato Running non indica che il sistema operativo è completamente pronto e accessibile.

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

    Sostituisci VM_NAME e PROJECT con il nome e il progetto della VM. VM_NAME deve contenere solo caratteri alfanumerici e trattini.

Crea un'istanza VM con dischi non di avvio aggiuntivi

Puoi creare dischi non di avvio quando crei una VM. Ogni disco aggiuntivo può specificare o meno un'origine immagine. Quest'ultimo caso riguarda la creazione di un disco vuoto.

gdcloud

  1. Crea un disco da un'immagine:

    gdcloud compute disks create NON_BOOT_DISK_FROM_IMAGE \
        --size=NON_BOOT_DISK_SIZE \
        --image=NON_BOOT_DISK_IMAGE_NAME \
        --image-project=NON_BOOT_DISK_IMAGE_NAMESPACE
    
  2. Crea un disco da un'immagine vuota:

    gdcloud compute disks create NON_BOOT_BLANK_DISK \
        --size=NON_BOOT_BLANK_DISK_SIZE \
    
  3. Crea un'istanza con i dischi del passaggio precedente:

    gdcloud compute instances create VM_NAME \
        --machine-type=MACHINE_TYPE \
        --image=BOOT_DISK_IMAGE_NAME --image-project=vm-system \
        --boot-disk-size=BOOT_DISK_SIZE \
        --no-boot-disk-auto-delete=NO_BOOT_DISK_AUTO_DELETE \
        --disk=name=NON_BOOT_DISK_FROM_IMAGE \
        --disk=name=NON_BOOT_BLANK_DISK
    

    Sostituisci quanto segue:

    VariabileDefinizione
    VM_NAME Il nome della nuova VM. Il nome deve contenere solo caratteri alfanumerici e trattini e non deve superare i 53 caratteri.
    BOOT_DISK_IMAGE_NAME Il nome dell'immagine da utilizzare per il disco di avvio della nuova VM.
    BOOT_DISK_IMAGE_NAMESPACE Lo spazio dei nomi dell'immagine da utilizzare per il nuovo disco di avvio della VM. Utilizza vm-system per un'immagine fornita da GDC oppure lascia vuoto il campo per un'immagine personalizzata.
    BOOT_DISK_SIZE Le dimensioni del disco di avvio, ad esempio 20G.
    Questo valore deve essere sempre maggiore o uguale a minimumDiskSize dell'immagine del disco di avvio.
    NO_BOOT_DISK_AUTO_DELETE true o false, che indica l'inverso dell'eliminazione automatica del disco di avvio quando viene eliminata l'istanza VM.
    MACHINE_TYPE Il tipo di macchina predefinita per la nuova VM. Per selezionare un tipo di macchina disponibile, esegui questo comando:
    gdcloud compute machine-types list

    Per dischi aggiuntivi, sostituisci quanto segue:

    • NON_BOOT_DISK_FROM_IMAGE, NON_BOOT_BLANK_DISK: il nome del disco aggiuntivo.
    • NON_BOOT_DISK_SIZE, NON_BOOT_BLANK_DISK_SIZE: le dimensioni dei dischi aggiuntivi, ad esempio 20G.
    • NON_BOOT_DISK_IMAGE_NAME: il nome dell'immagine da utilizzare come disco non di avvio.
    • NON_BOOT_DISK_IMAGE_NAMESPACE: lo spazio dei nomi dell'immagine da utilizzare come disco non di avvio. Utilizza vm-system per un'immagine fornita da GDC o lascia vuoto il campo per un'immagine personalizzata.

API

  1. Crea una VM con un disco non di avvio:
kubectl --kubeconfig MANAGEMENT_API_SERVER \
    apply -n PROJECT -f - <<EOF
apiVersion: virtualmachine.gdc.goog/v1
kind: VirtualMachineDisk
metadata:
  name: NON_BOOT_DISK_FROM_IMAGE
spec:
  source:
    image:
      name: NON_BOOT_DISK_IMAGE_NAME
      namespace: NON_BOOT_DISK_IMAGE_NAMESPACE
  size: NON_BOOT_DISK_SIZE
---
apiVersion: virtualmachine.gdc.goog/v1
kind: VirtualMachineDisk
metadata:
  name: NON_BOOT_BLANK_DISK
spec:
  size: NON_BOOT_BLANK_DISK_SIZE
---
apiVersion: virtualmachine.gdc.goog/v1
kind: VirtualMachineDisk
metadata:
  name: VM_BOOT_DISK_NAME
spec:
  source:
    image:
      name: BOOT_DISK_IMAGE_NAME
      namespace: BOOT_DISK_IMAGE_NAMESPACE
  size: BOOT_DISK_SIZE
---
apiVersion: virtualmachine.gdc.goog/v1
kind: VirtualMachine
metadata:
  name: VM_NAME
spec:
  compute:
    virtualMachineType: MACHINE_TYPE
  disks:
    - virtualMachineDiskRef:
        name: VM_BOOT_DISK_NAME
      boot: true
      autoDelete: BOOT_DISK_AUTO_DELETE
    - virtualMachineDiskRef:
        name: NON_BOOT_DISK_FROM_IMAGE
    - virtualMachineDiskRef:
        name: NON_BOOT_BLANK_DISK
EOF

Sostituisci quanto segue:

VariabileDefinizione
MANAGEMENT_API_SERVER Il percorso del server API Management kubeconfig.
PROJECT Il progetto GDC in cui vuoi creare la VM.
VM_NAME Il nome della nuova VM. Il nome deve contenere solo caratteri alfanumerici e trattini e non deve superare i 53 caratteri.
VM_BOOT_DISK_NAME Il nome del nuovo disco di avvio della VM.
BOOT_DISK_IMAGE_NAME Il nome dell'immagine da utilizzare per il disco di avvio della nuova VM.
BOOT_DISK_IMAGE_NAMESPACE Lo spazio dei nomi dell'immagine da utilizzare per il nuovo disco di avvio della VM. Utilizza lo spazio dei nomi vm-system per un'immagine fornita da GDC o lascia vuoto per un'immagine personalizzata.
BOOT_DISK_SIZE Le dimensioni del disco di avvio, ad esempio 20G.
Questo valore deve essere sempre maggiore o uguale a minimumDiskSize dell'immagine del disco di avvio.
BOOT_DISK_AUTO_DELETE true o false, che indica se il disco di avvio viene eliminato automaticamente quando viene eliminata l'istanza VM.
MACHINE_TYPE Il tipo di macchina predefinita per la nuova VM. Per selezionare un tipo di macchina disponibile, esegui questo comando:
kubectl --kubeconfig MANAGEMENT_API_SERVER get virtualmachinetype.virtualmachine.gdc.goog --namespace vm-system

Per dischi aggiuntivi, sostituisci quanto segue:

  • NON_BOOT_DISK_FROM_IMAGE, NON_BOOT_BLANK_DISK: il nome del disco aggiuntivo.
  • NON_BOOT_DISK_SIZE, NON_BOOT_BLANK_DISK_SIZE: le dimensioni dei dischi aggiuntivi, ad esempio 20G.
  • NON_BOOT_DISK_IMAGE_NAME: il nome dell'immagine che vuoi utilizzare come disco non di avvio.
  • NON_BOOT_DISK_IMAGE_NAMESPACE: lo spazio dei nomi dell'immagine che vuoi utilizzare come disco non di avvio. Utilizza lo spazio dei nomi vm-system per un'immagine fornita da GDC o lascia vuoto per un'immagine personalizzata.

Formatta e monta i dischi prima di utilizzarli.

Crea una VM da uno snapshot o un backup

Puoi creare una nuova VM da uno snapshot nei seguenti modi:

  • Ripristina un disco di avvio della VM: se hai eseguito il backup di un disco di avvio di una VM con uno snapshot, utilizza questo snapshot per creare una nuova VM. Consulta Ripristinare uno snapshot.
  • Ripristina un disco non di avvio:se hai eseguito il backup di un disco non di avvio con uno snapshot, puoi anche ripristinare lo snapshot su un nuovo disco non di avvio quando crei una VM, utilizzando le stesse istruzioni.

Per creare più VM con lo stesso disco di avvio, segui questi passaggi:

  1. Crea un'immagine personalizzata.
  2. Crea VM da questa immagine senza utilizzare uno snapshot.

Crea una VM senza utilizzare il tipo di macchina

L'appliance air-gapped GDC offre tipi di macchine predefiniti che puoi utilizzare quando crei un'istanza VM. Un tipo di macchina predefinita ha un numero di vCPU e una quantità di memoria preimpostati.

Se le VM predefinite non soddisfano le tue esigenze, crea un'istanza VM con impostazioni dell'hardware virtualizzato personalizzate.

Le VM personalizzate sono ideali nei seguenti scenari:

  • Workload non applicabili ai tipi di VM predefiniti.
  • Workload che richiedono più potenza di elaborazione o più memoria, ma non tutti gli upgrade forniti dal tipo di macchina di livello superiore.

gdcloud

  1. Crea una VM con un tipo di macchina che definisci:

    gdcloud compute instances create VM_NAME \
        --custom-cpu=NUM_VCPU \
        --custom-memory=MEMORY
        --image=BOOT_DISK_IMAGE_NAME --image-project=vm-system \
        --boot-disk-size=BOOT_DISK_SIZE \
        --no-boot-disk-auto-delete=NO_BOOT_DISK_AUTO_DELETE
    

    Sostituisci quanto segue:

    VariabileDefinizione
    VM_NAME Il nome della nuova VM. Il nome deve contenere solo caratteri alfanumerici e trattini e non deve superare i 53 caratteri.
    BOOT_DISK_IMAGE_NAME Il nome dell'immagine da utilizzare per il disco di avvio della nuova VM.
    BOOT_DISK_SIZE Le dimensioni del disco di avvio, ad esempio 20G.
    Questo valore deve essere sempre maggiore o uguale a minimumDiskSize dell'immagine del disco di avvio.
    NO_BOOT_DISK_AUTO_DELETE true o false, che indica l'inverso dell'eliminazione automatica del disco di avvio quando viene eliminata l'istanza VM.
    NUM_VCPU Il numero di vCPU. Il numero massimo di vCPU supportate è 192.
    MEMORY Le dimensioni della memoria, ad esempio 8G. La dimensione massima della memoria è un terabyte (TB).

API

  1. Crea una VM con un tipo di macchina che definisci:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        apply -n PROJECT -f - <<EOF
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachineDisk
    metadata:
      name: VM_BOOT_DISK_NAME
    spec:
      source:
        image:
          name: BOOT_DISK_IMAGE_NAME
          namespace: vm-system
      size: BOOT_DISK_SIZE
    ---
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
    spec:
      compute:
        vcpus: NUM_VCPU
        memory: MEMORY
      disks:
        - virtualMachineDiskRef:
            name: VM_BOOT_DISK_NAME
          boot: true
          autoDelete: BOOT_DISK_AUTO_DELETE
    EOF
    

    Sostituisci quanto segue:

    VariabileDefinizione
    MANAGEMENT_API_SERVER Il percorso del server API Management kubeconfig.
    PROJECT Il progetto dell'appliance GDC air-gapped per creare la VM.
    VM_NAME Il nome della nuova VM. Il nome deve contenere solo caratteri alfanumerici e trattini e non deve superare i 53 caratteri.
    VM_BOOT_DISK_NAME Il nome del nuovo disco di avvio della VM.
    BOOT_DISK_IMAGE_NAME Il nome dell'immagine da utilizzare per il disco di avvio della nuova VM.
    BOOT_DISK_SIZE Le dimensioni del disco di avvio, ad esempio 20G.
    Questo valore deve essere sempre maggiore o uguale a minimumDiskSize dell'immagine del disco di avvio.
    BOOT_DISK_AUTO_DELETE true o false, che indica se il disco di avvio viene eliminato automaticamente quando viene eliminata l'istanza VM.
    NUM_VCPU Il numero di vCPU. Il numero massimo di vCPU supportate è 192.
    MEMORY Le dimensioni della memoria, ad esempio 8G. La dimensione massima della memoria è 1 TB.