Crea 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 sistema operativo. Puoi creare immagini personalizzate da dischi di origine, immagini, snapshot o immagini archiviate in Cloud Storage e usarle 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, è previsto un limite di 20 istanze al secondo. Se devi creare un numero maggiore di istanze al secondo, richiedi un aggiustamento della quota per la risorsa Immagini.
  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è il processo mediante il quale la tua identità viene verificata per l'accesso a servizi e API di 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. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    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.

        After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

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

Ruoli obbligatori

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

Questo ruolo predefinito contiene le autorizzazioni necessarie per creare un'istanza da un'immagine condivisa. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

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.

Crea un'istanza da un'immagine condivisa

Per creare un'istanza da un'immagine condivisa:

Console

  1. Nella consoleGoogle Cloud , 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 contiene il riquadro Configurazione macchina.

  2. Nel riquadro Configurazione macchina, segui questi passaggi:

    1. Nel campo Nome, specifica un nome per l'istanza. Per saperne di più, consulta le convenzioni per la 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 consoleGoogle Cloud 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
      • Ottimizzata per il calcolo
      • Ottimizzata per la memoria
      • Ottimizzata per l'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 spazio di archiviazione visualizzato, configura il disco di avvio seguendo questi passaggi:

    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 dell'immagine, fai clic su Modifica, quindi 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 i dischi di avvio Hyperdisk bilanciato, specifica i valori per i campi IOPS sottoposte a provisioning e Throughput riservato.
    8. (Facoltativo) Per le opzioni di configurazione avanzata, espandi la sezione Mostra configurazioni avanzate.
    9. 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 saperne di più, consulta la Panoramica delle regole firewall nella documentazione di Cloud Next Generation Firewall.

  5. (Facoltativo) Specifica altre opzioni di configurazione. Per saperne di più, 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 il 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 della creazione di 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 ti interessano.
  4. Nella parte superiore o inferiore della pagina, fai clic su Codice equivalente e quindi sulla scheda Terraform per visualizzare il codice Terraform.

REST

La procedura per creare un'istanza con un'immagine condivisa nell'API è la stessa della creazione di 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: la zona contenente il tipo di macchina da utilizzare per la nuova VM
  • MACHINE_TYPE: il tipo di macchina, predefinita o personalizzata, per la nuova VM
  • VM_NAME: il 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 la famiglia di immagini personalizzate.

      In questo modo la VM viene creata dall'immagine sistema operativo più recente e non deprecata nella famiglia di immagini personalizzate. Ad esempio, se specifichi "sourceImage": "projects/finance-project-1234/global/images/family/finance-debian-family", Compute Engine crea una VM dall'ultima versione dell'immagine 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à Shielded VM, Compute Engine attiva per impostazione predefinita il Trusted Platform Module virtuale (vTPM) e il monitoraggio dell'integrità. Compute Engine non attiva l'Avvio protetto per impostazione predefinita.

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

Passaggi successivi