Creare un'istanza da un'immagine condivisa


Questo documento spiega come creare un'istanza Compute Engine da un'immagine personalizzata condivisa da un altro progetto.

Un'istanza contiene un bootloader, un file system di avvio e un'immagine del sistema operativo. Puoi creare immagini personalizzate da dischi di origine, immagini, snapshot o immagini archiviate in Cloud Storage e utilizzarle per creare istanze. Per impostazione predefinita, un'immagine personalizzata appartiene solo al progetto in cui è stata creata. Se un altro utente ha condiviso un'immagine con te, puoi utilizzarla per creare un'istanza.

Prima di iniziare

  • Quando crei istanze da immagini utilizzando Google Cloud CLI o l'API Compute Engine, esiste un limite di 20 istanze al secondo. Se devi creare un numero maggiore di istanze al secondo, richiedi un limite di quota più alto per la risorsa Immagini.
  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è la procedura mediante la quale la tua identità viene verificata per l'accesso alle API e ai servizi Google Cloud . Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      Per utilizzare gli esempi dell'API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali fornite a gcloud CLI.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Per ulteriori informazioni, consulta Eseguire l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud .

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per creare un'istanza da un'immagine condivisa, chiedi all'amministratore di concederti il ruolo IAM Amministratore istanze Compute (v1) (roles/compute.instanceAdmin.v1) nel progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.

Questo ruolo predefinito contiene le autorizzazioni necessarie per creare un'istanza da un'immagine condivisa. Per visualizzare le autorizzazioni esatta richieste, espandi la sezione Autorizzazioni richieste:

Autorizzazioni obbligatorie

Per creare un'istanza da un'immagine condivisa sono necessarie le seguenti autorizzazioni:

  • compute.instances.create sul progetto
  • Per utilizzare un'immagine condivisa per creare l'istanza: compute.images.useReadOnly sull'immagine

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Creare un'istanza da un'immagine condivisa

Per creare un'istanza da un'immagine condivisa:

Console

  1. Nella console , vai alla pagina Crea un'istanza.

    Vai a Crea un'istanza

    Se richiesto, seleziona il progetto e fai clic su Continua.

    Viene visualizzata la pagina Crea un'istanza, che mostra il riquadro Configurazione macchina.

  2. Nel riquadro Configurazione macchina, segui questi passaggi:

    1. Nel campo Nome, specifica un nome per l'istanza. Per ulteriori informazioni, consulta la convenzione di denominazione delle risorse.
    2. (Facoltativo) Nel campo Zona, seleziona una zona per l'istanza.

      La selezione predefinita è Qualsiasi. Se non modifichi questa selezione predefinita, Google sceglie automaticamente una zona in base al tipo di macchina e alla disponibilità.

    3. Seleziona la famiglia di macchine per l'istanza. La console mostra quindi le serie di macchine disponibili per la famiglia di macchine selezionata. Sono disponibili le seguenti opzioni per la famiglia di macchine:

      • Per uso generico
      • Ottimizzato per il calcolo
      • Ottimizzato per la memoria
      • Ottimizzato per lo spazio di archiviazione
      • GPU

    4. Nella colonna Serie, seleziona la serie di macchine per la tua istanza.

      Se nel passaggio precedente hai selezionato GPU come famiglia di macchine, seleziona il tipo di GPU che preferisci. La serie di macchine viene quindi selezionata automaticamente per il tipo di GPU selezionato.

    5. Nella sezione Tipo di macchina, seleziona il tipo di macchina per la tua istanza.

  3. Nel menu di navigazione, fai clic su Sistema operativo e spazio di archiviazione. Nel riquadro Sistema operativo e archiviazione visualizzato, configura il disco di avvio nel seguente modo:

    1. Fai clic su Cambia. Viene visualizzato il riquadro Disco di avvio con la scheda Immagini pubbliche.
    2. Fai clic su Immagini personalizzate. Viene visualizzata la scheda Immagini personalizzate.
    3. Per selezionare il progetto immagine, fai clic su Modifica e poi seleziona il progetto che contiene l'immagine.
    4. Nell'elenco Immagine, seleziona l'immagine che vuoi importare.
    5. Nell'elenco Tipo di disco di avvio, seleziona il tipo di disco di avvio.
    6. Nel campo Dimensioni (GB), specifica le dimensioni del disco di avvio.
    7. (Facoltativo) Per le opzioni di configurazione avanzate, espandi la sezione Mostra configurazioni avanzate.
    8. Per confermare le opzioni del disco di avvio e tornare al riquadro Sistema operativo e spazio di archiviazione, fai clic su Seleziona.
  4. Nel menu di navigazione, fai clic su Networking. Nel riquadro Networking visualizzato, segui questi passaggi:

    1. Vai alla sezione Firewall.
    2. Per consentire il traffico HTTP o HTTPS all'istanza, seleziona Consenti traffico HTTP o Consenti traffico HTTPS.

      Compute Engine aggiunge un tag di rete all'istanza e crea la regola firewall in entrata corrispondente che consente tutto il traffico in entrata su tcp:80 (HTTP) o tcp:443 (HTTPS). Il tag di rete associa la regola firewall all'istanza. Per ulteriori informazioni, consulta la Panoramica delle regole firewall nella documentazione di Cloud Next Generation Firewall.

  5. (Facoltativo) Specifica altre opzioni di configurazione. Per ulteriori informazioni, consulta Opzioni di configurazione durante la creazione dell'istanza.

  6. Per creare e avviare l'istanza, fai clic su Crea.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Crea un'istanza utilizzando gcloud compute instances create command e i flag --image e --image-project per specificare il nome dell'immagine e il progetto in cui si trova:

    gcloud compute instances create INSTANCE_NAME \
    --image=IMAGE \
    --image-project=IMAGE_PROJECT
    

    Sostituisci quanto segue:

    • INSTANCE_NAME: il nome della nuova istanza
    • IMAGE: il nome dell'immagine
    • IMAGE_PROJECT: il progetto a cui appartiene l'immagine

    Se il comando ha esito positivo, gcloud risponde con le proprietà della nuova istanza, come nell'esempio seguente:

    Created [https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-b/instances/example-instance].
    NAME                 ZONE           MACHINE_TYPE   PREEMPTIBLE  INTERNAL_IP  EXTERNAL_IP    STATUS
    example-instance     us-central1-b  e2-standard-2               10.240.0.4   104.198.53.60  RUNNING
    

Terraform

La procedura per creare un'istanza con un'immagine condivisa in Terraform è la stessa come se stessi creando un'istanza con un'immagine disponibile pubblicamente.

  1. Nella console Google Cloud , vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Fai clic su Crea istanza.
  3. Specifica i parametri che preferisci.
  4. Nella parte superiore o inferiore della pagina, fai clic su Codice equivalente, quindi sulla scheda Terraform per visualizzare il codice Terraform.

REST

La procedura per creare un'istanza con un'immagine condivisa nell'API è la stessa che se stessi creando un'istanza con un'immagine disponibile pubblicamente.

Per creare l'istanza da un'immagine condivisa, utilizza il metodo instances.insert.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
   "machineType":"zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE",
   "name":"VM_NAME",
   
   "disks":[
      {
         "initializeParams":{
            "sourceImage":"projects/IMAGE_PROJECT/global/images/IMAGE"
         },
         "boot":true
      }
   ],
   
   
   "networkInterfaces":[
      {
         "network":"global/networks/NETWORK_NAME"
      }
   ],
   
  
   "shieldedInstanceConfig":{
      "enableSecureBoot":"ENABLE_SECURE_BOOT"
   }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui creare la VM
  • ZONE: la zona in cui creare la VM
  • MACHINE_TYPE_ZONE: zona contenente il tipo di macchina da utilizzare per la nuova VM
  • MACHINE_TYPE: tipo di macchina, predefinito o personalizzato, per la nuova VM
  • VM_NAME: nome della nuova VM
  • IMAGE_PROJECT: il nome del progetto che contiene l'immagine condivisa
  • IMAGE: specifica una delle seguenti opzioni:
    • IMAGE: il nome dell'immagine condivisa. Ad esempio, "sourceImage": "projects/finance-project-1234/global/images/finance-debian-image-v2".
    • IMAGE_FAMILY: se l'immagine condivisa viene creata all'interno di una famiglia di immagini personalizzate, specifica questa famiglia di immagini personalizzate.

      In questo modo viene creata la VM dall'immagine del sistema operativo più recente e non deprecata nella tua famiglia di immagini personalizzate. Ad esempio, se specifichi "sourceImage": "projects/finance-project-1234/global/images/family/finance-debian-family", Compute Engine crea una VM dalla versione più recente dell'immagine del sistema operativo nella famiglia di immagini personalizzata finance-debian-family.

  • NETWORK_NAME: la rete VPC che vuoi utilizzare per la VM. Puoi specificare default per utilizzare la rete predefinita.
  • ENABLE_SECURE_BOOT: facoltativo: se hai scelto un'immagine che supporta le funzionalità di VM schermate, Compute Engine attiva per impostazione predefinita il Trusted Platform Module virtuale (vTPM) e il monitoraggio dell'integrità. Compute Engine non abilita l'Avvio protetto per impostazione predefinita.

    Se specifichi true per enableSecureBoot, Compute Engine crea una VM con tutte e tre le funzionalità Shielded VM abilitate. Dopo che Compute Engine ha avviato la VM, per modificare le opzioni della VM protetta, devi arrestarla.

Passaggi successivi