Crea un MIG per i workload HPC con utilizzo vincolato alla prenotazione


Questo tutorial mostra come creare un gruppo di istanze gestite (MIG) che utilizza un tipo di macchina H4D. Il MIG utilizza il modello di provisioning con prenotazione per ottenere risorse di calcolo.

La creazione di un MIG ti consente di gestire più macchine virtuali (VM) come singola entità. Ogni VM in un MIG si basa su un template di istanza. Gestendo automaticamente le VM nel gruppo, i MIG offrono alta disponibilità e scalabilità. Per scoprire di più sui MIG, consulta Gruppi di istanze gestite.

Per scoprire di più sulle opzioni di creazione di VM HPC e cluster HPC, consulta Panoramica della creazione di cluster HPC.

Questo tutorial è rivolto a ingegneri HPC, amministratori e operatori di piattaforme e a specialisti di dati e MPI interessati a creare un gruppo di istanze HPC interconnesse per eseguire i propri carichi di lavoro. Le istanze risultanti non utilizzano un orchestratore per la gestione delle istanze o la pianificazione dei job.

Se vuoi creare un gruppo di istanze gestite, ma non devi creare un deployment denso di istanze, consulta invece Scenari di base per la creazione di gruppi di istanze gestite (MIG).

Obiettivi

  • Prenota blocchi di capacità per le istanze VM.
  • (Facoltativo) Crea reti Virtual Private Cloud (VPC).
  • (Facoltativo) Crea una policy del workload.
  • Creare un modello di istanza.
  • Crea un MIG utilizzando uno dei seguenti metodi:
    • Crea un MIG con una dimensione target.
    • Crea un gruppo di istanze gestite e una richiesta di ridimensionamento.
  • Eseguire la pulizia delle risorse che hai creato.

Costi

In questo documento vengono utilizzati i seguenti componenti fatturabili di Google Cloud:

Per generare una stima dei costi in base all'utilizzo previsto, utilizza il calcolatore prezzi.

I nuovi utenti di Google Cloud potrebbero avere diritto a una prova senza costi.

Al termine delle attività descritte in questo documento, puoi evitare l'addebito di ulteriori costi eliminando le risorse che hai creato. Per ulteriori informazioni, vedi Pulizia.

Prima di iniziare

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Install the Google Cloud CLI.

  3. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  4. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  5. Create or select a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the required API:

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    gcloud services enable compute.googleapis.com
  8. Install the Google Cloud CLI.

  9. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  10. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  11. Create or select a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  12. Verify that billing is enabled for your Google Cloud project.

  13. Enable the required API:

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    gcloud services enable compute.googleapis.com
  14. Grant roles to your user account. Run the following command once for each of the following IAM roles: roles/compute.instanceAdmin.v1,roles/compute.networkAdmin

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    Replace the following:

    • PROJECT_ID: your project ID.
    • USER_IDENTIFIER: the identifier for your user account—for example, myemail@example.com.
    • ROLE: the IAM role that you grant to your user account.
  15. Prenota la capacità

    Per utilizzare i comandi di questo tutorial, devi prenotare la capacità per creare le istanze nel MIG.

    Crea una prenotazione futura per blocchi di capacità

    Questa azione ti consente di prenotare blocchi di capacità per una durata definita, a partire da una data e un'ora specifiche che scegli. La prenotazione riserva blocchi o sottoblocchi di capacità in un cluster, il che consente deployment densi di istanze VM.

    Per creare una prenotazione futura per un deployment denso, la procedura è la seguente:

    1. Segui la procedura per riservare la capacità contattando il team dell'account nella documentazione di AI Hypercomputer. Nella richiesta di prenotazione futura, fornisci le informazioni come documentato, con le seguenti eccezioni:

      • Tipo di macchina: specifica il tipo di macchina H4D h4d-highmem-192-lssd.
      • Zona: specifica una delle zone in cui sono disponibili le istanze H4D, come documentato nella tabella Regioni e zone disponibili. Per visualizzare le zone disponibili solo per H4D, seleziona H4D nell'elenco Seleziona una serie di macchine.
      • Tipo di pianificazione della manutenzione: per le istanze H4D, puoi specificare GROUPED o INDEPENDENT.
      • Modalità operativa di prenotazione: per le istanze H4D, specifica il valore HIGHLY_AVAILABLE_CAPACITY.
    2. La quota viene aumentata automaticamente prima che venga fornita la capacità. Non è necessario alcun intervento da parte tua.

    3. Quando crei il modello di istanza, specifica il modello di provisioning con prenotazione. Le istanze VM nel MIG vengono sottoposte a provisioning dalla capacità riservata.

    Ti viene addebitato l'intero periodo di prenotazione, indipendentemente dal fatto che tu utilizzi o meno le risorse prenotate per l'intero periodo. Per ulteriori informazioni, vedi Fatturazione delle prenotazioni.

    Creare una prenotazione futura in modalità calendario

    Se devi utilizzare la capacità riservata per meno di 90 giorni, puoi creare una prenotazione futura in modalità calendario utilizzando Dynamic Workload Scheduler. Per ottenere risorse di prenotazione future, la procedura è la seguente:

    1. Cerca la capacità disponibile e prenota le risorse utilizzando la console Google Cloud , gcloud CLI o l'API Compute Engine.
    2. Non viene addebitata alcuna quota e non è richiesta alcuna azione da parte tua.
    3. Quando crei il modello di istanza, specifica il modello di provisioning con prenotazione. Le istanze VM nel MIG vengono sottoposte a provisioning dalla capacità riservata.

    Ti viene addebitato l'intero periodo di prenotazione, indipendentemente dal fatto che tu utilizzi o meno le risorse prenotate per l'intero periodo. Per ulteriori informazioni, consulta la pagina Prezzi di Dynamic Workload Scheduler.

    (Facoltativo) Crea reti VPC

    A meno che tu non scelga di disattivarla, ogni progetto ha una rete predefinita, che può essere utilizzata per fornire connettività di rete alle tue istanze. Quando crei una VM, puoi specificare una subnet e una rete VPC. Se ometti questa configurazione, vengono utilizzate la rete e la subnet predefinite.

    Le istanze H4D possono essere configurate per utilizzare Cloud RDMA. Cloud RDMA consente funzionalità di messaggistica affidabili a bassa latenza utilizzando un driver di rete IRDMA che supporta l'accesso diretto alla memoria remota (RDMA) tra le istanze Compute Engine.

    Per questo tutorial:

    • Se vuoi configurare le istanze H4D per utilizzare Cloud RDMA, completa i passaggi descritti in questa sezione.
    • Se non vuoi utilizzare Cloud RDMA, puoi saltare questa sezione e utilizzare la rete predefinita.

    Le istanze abilitate a RDMA richiedono un minimo di due interfacce di rete (NIC):

    • Tipo di NIC GVNIC: utilizza il driver gve per il traffico TCP/IP e internet per la normale comunicazione VM-VM e VM-internet.
    • Tipo di NIC IRDMA: utilizza i driver IDPF/iRDMA per il networking Cloud RDMA tra le istanze.

    Le istanze che utilizzano Cloud RDMA possono avere una sola interfaccia IRDMA. Puoi aggiungere fino a otto interfacce di rete GVNIC aggiuntive per un totale di 10 NIC per istanza.

    Per configurare le reti VPC Falcon da utilizzare con le tue istanze, puoi seguire le istruzioni documentate o utilizzare lo script fornito.

    Guide con istruzioni

    Per creare le reti, puoi utilizzare le seguenti istruzioni:

    Script

    Puoi creare fino a nove interfacce di rete GVNIC e una interfaccia di rete IRDMA per istanza. Ogni interfaccia di rete deve essere collegata a una rete separata. Per creare le reti, puoi utilizzare il seguente script, che crea due reti per GVNIC e una rete per IRDMA.

    1. (Facoltativo) Prima di eseguire lo script, elenca i profili di rete RDMA per verificare che ne sia disponibile uno.
        gcloud beta compute network-profiles list
        
    2. Copia il seguente codice ed eseguilo in una finestra della shell Linux.

        #!/bin/bash
        # Set the number of GVNIC interfaces to create. You can create up to 9.
        NUM_GVNIC=NUMBER_OF_GVNIC
      
        # Create standard VPC (networks and subnets) for the GVNIC interfaces
          for N in $(seq 0 $(($NUM_GVNIC - 1))); do
            gcloud compute networks create GVNIC_NAME_PREFIX-net-$N \
                --subnet-mode=custom
      
            gcloud compute networks subnets create GVNIC_NAME_PREFIX-sub-$N \
                --network=GVNIC_NAME_PREFIX-net-$N \
                --region=REGION \
                --range=10.$N.0.0/16
      
            gcloud compute firewall-rules create GVNIC_NAME_PREFIX-internal-$N \
                --network=GVNIC_NAME_PREFIX-net-$N \
                --action=ALLOW \
                --rules=tcp:0-65535,udp:0-65535,icmp \
                --source-ranges=10.0.0.0/8
        done
      
        # Create SSH firewall rules
        gcloud compute firewall-rules create GVNIC_NAME_PREFIX-ssh \
            --network=GVNIC_NAME_PREFIX-net-0 \
            --action=ALLOW \
            --rules=tcp:22 \
            --source-ranges=IP_RANGE
      
        # Optional: Create a firewall rule for the external IP address for the
        #  first GVNIC network interface
        gcloud compute firewall-rules create GVNIC_NAME_PREFIX-allow-ping-net-0 \
            --network=GVNIC_NAME_PREFIX-net-0 \
            --action=ALLOW \
            --rules=icmp \
            --source-ranges=IP_RANGE
      
        # Create a network for the RDMA over Falcon network interface
        gcloud beta compute networks create RDMA_NAME_PREFIX-irdma \
            --network-profile=ZONE-vpc-falcon \
            --subnet-mode custom
      
        # Create a subnet for the RDMA network
        gcloud beta compute networks subnets create RDMA_NAME_PREFIX-irdma-sub \
            --network=RDMA_NAME_PREFIX-irdma \
            --region=REGION \
            --range=10.2.0.0/16  # offset to avoid overlap with GVNIC subnet ranges
        

      Sostituisci quanto segue:

      • NUMBER_OF_GVNIC: il numero di interfacce GVNIC da creare. Specifica un numero compreso tra 1 e 9.
      • GVNIC_NAME_PREFIX: il prefisso del nome da utilizzare per la rete VPC e la subnet standard che utilizzano un tipo di NIC GVNIC.
      • REGION: la regione in cui vuoi creare le reti. Deve corrispondere alla zona specificata per il flag --network-profile durante la creazione della rete RDMA. Ad esempio, se specifichi la zona come europe-west4-b, la regione è europe-west4.
      • IP_RANGE: l'intervallo di indirizzi IP al di fuori della rete VPC da utilizzare per le regole firewall SSH. Come best practice, specifica gli intervalli di indirizzi IP specifici da cui devi consentire l'accesso, anziché tutte le origini IPv4 o IPv6. Non utilizzare 0.0.0.0/0 o ::/0 come intervallo di origine perché ciò consente il traffico da tutte le origini IPv4 o IPv6, incluse quelle esterne a Google Cloud.
      • RDMA_NAME_PREFIX: il prefisso del nome da utilizzare per la rete VPC e la subnet che utilizzano il tipo di NIC IRDMA.
      • ZONE: la zona in cui vuoi creare le reti e le istanze di computing. Utilizza us-central1-a o europe-west4-b.
    3. (Facoltativo) Per verificare che le risorse di rete VPC siano state create correttamente, controlla le impostazioni di rete nella console Google Cloud :

      1. Nella console Google Cloud , vai alla pagina Reti VPC.

        Vai a Reti VPC

      2. Cerca nell'elenco le reti che hai creato nel passaggio precedente.
      3. Per visualizzare le subnet, le regole firewall e altre impostazioni di rete, fai clic sul nome della rete.

    (Facoltativo) Crea una policy del workload

    Se vuoi che Compute Engine posizioni le istanze VM in un singolo blocco o in blocchi adiacenti, specifica il posizionamento delle istanze creando una policy del workload. Tuttavia, se vuoi che Compute Engine posizioni le istanze su un blocco specifico, salta questo passaggio e fornisci il nome del blocco nell'affinità di prenotazione quando crei il modello di istanza.

    Se hai già una policy del workload, puoi riutilizzarla. Quando applichi una policy del workload al tuo MIG, Compute Engine tenta di creare istanze il più vicine possibile tra loro. Se la tua applicazione è sensibile alla latenza e vuoi che le istanze siano più vicine tra loro (massima compattezza), specifica il campo maxTopologyDistance quando crei una policy del workload.

    Non puoi aggiornare una policy del workload dopo averla creata. Per apportare modifiche a un criterio del workload, devi crearne uno nuovo.

    Per creare una policy del workload, seleziona una delle seguenti opzioni:

    gcloud

    Per creare una policy del workload, utilizza il comando gcloud compute resource-policies create workload-policy.

    • Per un posizionamento delle VM secondo il criterio del "best effort", specifica solo il flag --type=high-throughput nel comando:

      gcloud compute resource-policies create workload-policy WORKLOAD_POLICY_NAME \
          --type=high-throughput \
          --region=REGION
      
    • Per la collocazione rigorosa delle VM, specifica il flag --max-topology-distance nel comando:

      gcloud compute resource-policies create workload-policy WORKLOAD_POLICY_NAME \
          --type=high-throughput \
          --max-topology-distance=TOPOLOGY_DISTANCE \
          --region=REGION
      

    Sostituisci quanto segue:

    • WORKLOAD_POLICY_NAME: il nome della policy del workload.
    • REGION: la regione in cui vuoi creare la policy del workload. Specifica una regione in cui vuoi creare il MIG e il tipo di macchina che vuoi utilizzare è disponibile. Per informazioni su regioni e zone, vedi Regioni e zone disponibili.

    REST

    Per creare una policy del workload, invia una richiesta POST al metodo resourcePolicies.insert.

    • Per un posizionamento delle VM con il massimo impegno, specifica solo il campo type nella richiesta nel seguente modo:

      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies
        {
          "name": "WORKLOAD_POLICY_NAME"
          "workloadPolicy": {
            "type": "HIGH_THROUGHPUT"
          }
        }
      
    • Per la collocazione rigorosa delle VM, specifica il campo maxTopologyDistance nella richiesta nel seguente modo:

      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies
        {
          "name": "WORKLOAD_POLICY_NAME"
          "workloadPolicy": {
            "type": "HIGH_THROUGHPUT",
            "maxTopologyDistance": "TOPOLOGY_DISTANCE"
          }
        }
      

    Sostituisci quanto segue:

    • PROJECT_ID: il tuo ID progetto
    • REGION: la regione in cui vuoi creare la policy del workload. Specifica una regione in cui vuoi creare il MIG e il tipo di macchina che vuoi utilizzare è disponibile. Per informazioni su regioni e zone, vedi Regioni e zone disponibili.
    • WORKLOAD_POLICY_NAME: il nome della policy del workload.

    Crea un modello di istanza

    Per specificare le proprietà di istanza e consumo per ogni istanza nel MIG, crea un template di istanza utilizzando uno dei seguenti metodi:

    gcloud

    Per creare un template di istanza regionale, utilizza il comando gcloud compute instance-templates create.

    gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
        --machine-type=MACHINE_TYPE \
        --image-family=IMAGE_FAMILY \
        --image-project=IMAGE_PROJECT \
        --instance-template-region=REGION \
        --boot-disk-type=hyperdisk-balanced \
        --boot-disk-size=DISK_SIZE \
        --scopes=cloud-platform \
        
    --network-interface=nic-type=GVNIC, \
          network=GVNIC_NAME_PREFIX-net-0, \
          subnet=GVNIC_NAME_PREFIX-sub-0, \
          stack-type=STACK_TYPE, \
          address=EXTERNAL_IPV4_ADDRESS \
    --network-interface=nic-type=GVNIC, \
          network=GVNIC_NAME_PREFIX-net-1, \
          subnet=GVNIC_NAME_PREFIX-sub-1,no-address \
    --network-interface=nic-type=IRDMA, \
          network=RDMA_NAME_PREFIX-irdma, \
          subnet=RDMA_NAME_PREFIX-irdma-sub, \
          stack-type=IPV4_ONLY,no-address \
        --reservation-affinity=specific \
        --reservation=RESERVATION \
        --provisioning-model=RESERVATION_BOUND \
        --instance-termination-action=DELETE \
        --maintenance-policy=TERMINATE
    
    

    Sostituisci quanto segue:

    • INSTANCE_TEMPLATE_NAME: il nome del modello di istanza.
    • MACHINE_TYPE: il tipo di macchina H4D da utilizzare per l'istanza.
    • IMAGE_FAMILY: la famiglia di immagini dell'immagine del sistema operativo che vuoi utilizzare. Per un elenco dei sistemi operativi supportati, consulta Sistemi operativi supportati.
    • IMAGE_PROJECT: l'ID progetto dell'immagine del sistema operativo.
    • REGION: la regione in cui vuoi creare il template di istanza. Specifica una regione in cui è disponibile il tipo di macchina che vuoi utilizzare.
    • DISK_SIZE: le dimensioni del disco di avvio in GiB.
    • GVNIC_NAME_PREFIX: il prefisso del nome che hai utilizzato durante la creazione delle reti VPC e delle subnet standard per le interfacce gVNIC.

      Se utilizzi la rete predefinita, includi un solo campo --network-interface con il campo nic-type impostato su GVNIC. Inoltre, ometti le impostazioni network e subnetwork per questa interfaccia di rete.

    • STACK_TYPE: (Facoltativo) il tipo di stack da utilizzare per l'interfaccia gVNIC. Specifica IPV4_ONLY o IPV4_IPV6. Se non specifichi un valore, per impostazione predefinita viene utilizzato IPV4_ONLY.
    • EXTERNAL_IPV4_ADDRESS: (Facoltativo) un indirizzo IPv4 esterno statico da utilizzare con l'interfaccia di rete gVNIC. Devi aver prenotato un indirizzo IPv4 esterno in precedenza. Esegui una di queste operazioni:

      • Specifica un indirizzo IPv4 valido dalla subnet.
      • Utilizza il flag no-address se non vuoi che l'interfaccia di rete abbia un indirizzo IP esterno.
      • Specifica address='' se vuoi che l'interfaccia di rete riceva un indirizzo IP esterno temporaneo.

      Per specificare un indirizzo IPv6 esterno per l'interfaccia di rete GVNIC, utilizza il flag --external-ipv6-address.

    • RDMA_NAME_PREFIX: il prefisso del nome che hai utilizzato durante la creazione della rete VPC e della subnet per l'interfaccia di rete IRDMA.

      Se non utilizzi Cloud RDMA con le tue istanze H4D, ometti il campo --network-interface per l'interfaccia IRDMA.

    • RESERVATION: il nome della prenotazione che vuoi utilizzare.

      RESERVATION: il nome della prenotazione o un blocco specifico all'interno di una prenotazione. Per ottenere il nome della prenotazione o i blocchi disponibili, vedi Visualizzare la capacità riservata. In base al tuo requisito per il posizionamento dell'istanza, scegli una delle seguenti opzioni:
      • Per creare istanze in più blocchi o in un singolo blocco:

        projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME

        Inoltre, per un singolo blocco, crea il MIG applicando una policy di workload che specifica una collocazione di blocchi (maxTopologyDistance=BLOCK). Compute Engine applica quindi la policy alla prenotazione e crea istanze sullo stesso blocco.

      • Per creare istanze su un blocco specifico:

        projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME

    REST

    Per creare un template di istanza regionale, effettua una richiesta POST al metodo regionInstanceTemplates.insert.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates
    {
      "name":"INSTANCE_TEMPLATE_NAME",
      "properties":{
        "disks":[
          {
            "boot":true,
            "initializeParams":{
              "diskSizeGb":"DISK_SIZE",
              "diskType":"hyperdisk-balanced",
              "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
            },
            "mode":"READ_WRITE",
            "type":"PERSISTENT"
          }
        ],
        "machineType":"MACHINE_TYPE",
        
            "networkInterfaces": [
            {
              "network": "GVNIC_NAME_PREFIX-net-0",
              "subnetwork": "GVNIC_NAME_PREFIX-sub-0",
              "accessConfigs": [
                {
                    "type": "ONE_TO_ONE_NAT",
                    "name": "External IP",
                    "natIP": "EXTERNAL_IPV4_ADDRESS"
                }
              ],
              "stackType": "IPV4_ONLY",
              "nicType": "GVNIC",
          },
          {
              "network": "GVNIC_NAME_PREFIX-net-1",
              "subnetwork": "GVNIC_NAME_PREFIX-sub-1",
              "stackType": "IPV4_ONLY",
              "nicType": "GVNIC",
          },
          {
              "network": "RDMA_NAME_PREFIX-irdma",
              "subnetwork": "RDMA_NAME_PREFIX-irdma-sub",
              "stackType": "IPV4_ONLY",
              "nicType": "IRDMA",
          }
        ],
    ,
        "reservationAffinity":{
            "consumeReservationType":"SPECIFIC_RESERVATION",
            "key":"compute.googleapis.com/reservation-name",
            "values":[
              "RESERVATION"
            ]
          },
        "scheduling":{
            "provisioningModel":"RESERVATION_BOUND",
            "instanceTerminationAction":"DELETE",
            "onHostMaintenance": "TERMINATE",
            "automaticRestart":true
          }
      }
    }
    

    Sostituisci quanto segue:

    • INSTANCE_TEMPLATE_NAME: il nome del modello di istanza.
    • MACHINE_TYPE: il tipo di macchina da utilizzare per l'istanza. Specifica un tipo di macchina H4D. Per saperne di più, consulta Tipi di macchine H4D.
    • IMAGE_FAMILY: la famiglia di immagini dell'immagine del sistema operativo che vuoi utilizzare. Per un elenco dei sistemi operativi supportati, consulta Sistemi operativi supportati.
    • IMAGE_PROJECT: l'ID progetto dell'immagine del sistema operativo.
    • REGION: la regione in cui vuoi creare il template di istanza. Specifica una regione in cui è disponibile il tipo di macchina che vuoi utilizzare. Per informazioni sulle regioni, vedi Regioni e zone.
    • DISK_SIZE: le dimensioni del disco di avvio in GiB.
    • GVNIC_NAME_PREFIX: il prefisso del nome che hai utilizzato durante la creazione delle reti VPC e delle subnet standard per le interfacce gVNIC.

      Se utilizzi la rete predefinita, includi un solo campo --network-interface con il campo nic-type impostato su GVNIC. Inoltre, ometti le impostazioni network e subnetwork per questa interfaccia di rete.

    • EXTERNAL_IPV4_ADDRESS: (Facoltativo) un indirizzo IPv4 esterno statico da utilizzare con l'interfaccia di rete gVNIC. Devi aver prenotato un indirizzo IPv4 esterno in precedenza.

      Per specificare un indirizzo IPv6 esterno per l'interfaccia di rete GVNIC, utilizza il flag --external-ipv6-address.

    • RDMA_NAME_PREFIX: il prefisso del nome che hai utilizzato durante la creazione della rete VPC e della subnet per l'interfaccia di rete IRDMA.

      Se non utilizzi Cloud RDMA con le tue istanze H4D, ometti il campo --network-interface per l'interfaccia IRDMA.

    • RESERVATION: il nome della prenotazione che vuoi utilizzare.

      RESERVATION: il nome della prenotazione o un blocco specifico all'interno di una prenotazione. Per ottenere il nome della prenotazione o i blocchi disponibili, vedi Visualizzare la capacità riservata. In base al tuo requisito per il posizionamento dell'istanza, scegli una delle seguenti opzioni:
      • Per creare istanze in più blocchi o in un singolo blocco:

        projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME

        Inoltre, per un singolo blocco, crea il MIG applicando una policy di workload che specifica una collocazione di blocchi (maxTopologyDistance=BLOCK). Compute Engine applica quindi la policy alla prenotazione e crea istanze sullo stesso blocco.

      • Per creare istanze su un blocco specifico:

        projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME

    Dopo aver creato il modello di istanza, puoi visualizzarlo per vedere il suo ID e rivedere le proprietà dell'istanza.

    Crea un MIG

    A seconda dei requisiti del tuo workload, puoi creare un MIG in una delle seguenti configurazioni:

    Crea un MIG con una dimensione target

    Se puoi avviare il job senza creare tutte le istanze VM contemporaneamente, crea un MIG con una dimensione target. La dimensione target determina il numero di istanze nel MIG. Il MIG inizia a creare istanze in base alla disponibilità delle risorse. Se una risorsa non è temporaneamente disponibile, il MIG tenta continuamente di creare istanze per raggiungere la dimensione target.

    Per creare un MIG con una dimensione target, seleziona una delle seguenti opzioni:

    gcloud

    Per creare un MIG con una dimensione target specificata, utilizza il comando instance-groups managed create.

    In questo passaggio, i comandi per creare un MIG utilizzano una policy del carico di lavoro per specificare il posizionamento delle VM. Se non vuoi utilizzare una policy del workload, rimuovi il flag --workload-policy.

    Crea un gruppo di istanze gestite a livello di zona o di regione nel seguente modo:

    • Per creare un gruppo di istanze gestite a livello di zona, utilizza questo comando:
      gcloud compute instance-groups managed create MIG_NAME \
        --template=INSTANCE_TEMPLATE_URL \
        --size=TARGET_SIZE \
        --workload-policy=WORKLOAD_POLICY_URL \
        --zone=ZONE
      
    • Per creare un gruppo di istanze gestite a livello di regione, utilizza il seguente comando:
      gcloud compute instance-groups managed create MIG_NAME \
          --template=INSTANCE_TEMPLATE_URL \
          --size=TARGET_SIZE \
          --workload-policy=WORKLOAD_POLICY_URL \
          --region=REGION
      
    Sostituisci quanto segue:
    • MIG_NAME: il nome del MIG.
    • INSTANCE_TEMPLATE_URL: l'URL del template di istanza che vuoi utilizzare per creare le VM nel MIG. L'URL può contenere l'ID o il nome del modello di istanza. Specifica uno dei seguenti valori:
      • Per un template di istanza regionale: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
      • Per un template di istanza globale: INSTANCE_TEMPLATE_ID
    • TARGET_SIZE: il numero di VM che vuoi nel MIG.
    • WORKLOAD_POLICY_URL: (Facoltativo) l'URL del criterio del workload. Se non vuoi utilizzare una policy del workload, puoi rimuovere il flag --workload-policy.
    • ZONE: la zona in cui vuoi creare il MIG. Se utilizzi una policy del carico di lavoro, specifica una zona all'interno della regione della policy.
    • REGION: la regione in cui vuoi creare il MIG. Se utilizzi una policy di workload, specifica la stessa regione della policy. Per un MIG a livello di regione, anziché una regione, puoi specificare le zone in quella regione utilizzando il flag --zones.

    REST

    Per creare un MIG con una dimensione target specificata, invia una richiesta POST come segue.

    In questo passaggio, le richieste per creare un MIG utilizzano una policy del workload per specificare il posizionamento delle VM. Se non vuoi utilizzare una policy del carico di lavoro, rimuovi il campo resourcePolicies.workloadPolicy dal corpo della richiesta.

    Crea un gruppo di istanze gestite a livello di zona o di regione nel seguente modo:

    • Per creare un gruppo di istanze gestite a livello di zona, invia una richiesta POST al metodo instanceGroupManagers.insert.
      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers
      {
        "versions": [
          {
            "instanceTemplate": "INSTANCE_TEMPLATE_URL"
          }
        ],
        "name": "MIG_NAME",
        "instanceTemplate": "INSTANCE_TEMPLATE_URL",
        "targetSize": "TARGET_SIZE",
        "resourcePolicies": {
          "workloadPolicy": WORKLOAD_POLICY_URL
        }
      }
      
    • Per creare un MIG a livello di regione, invia una richiesta POST al metodo regionInstanceGroupManagers.insert.
        POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers
        {
          "versions": [
            {
              "instanceTemplate": "INSTANCE_TEMPLATE_URL"
            }
          ],
          "name": "MIG_NAME",
          "instanceTemplate": "INSTANCE_TEMPLATE_URL",
          "targetSize": "TARGET_SIZE",
          "resourcePolicies": {
            "workloadPolicy": WORKLOAD_POLICY_URL
          }
        }
      
    Sostituisci quanto segue:
    • PROJECT_ID: l'ID progetto
    • ZONE: la zona in cui vuoi creare il MIG. Se utilizzi un criterio del carico di lavoro, specifica una zona all'interno della regione del criterio.
    • REGION: la regione in cui vuoi creare un MIG. Se utilizzi una policy di workload, specifica la stessa regione della policy.
    • INSTANCE_TEMPLATE_URL: l'URL del template di istanza che vuoi utilizzare per creare le VM nel MIG. L'URL può contenere l'ID o il nome del modello di istanza. Specifica uno dei seguenti valori:
      • Per un template di istanza regionale: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
      • Per un template di istanza globale: INSTANCE_TEMPLATE_ID
    • MIG_NAME: il nome del MIG.
    • TARGET_SIZE: il numero di VM che vuoi nel MIG.
    • WORKLOAD_POLICY_URL: (Facoltativo) l'URL del criterio del workload. Se non vuoi utilizzare una policy del workload, puoi rimuovere il campo resourcePolicies.workloadPolicy.

    Crea un MIG e una richiesta di ridimensionamento

    Per creare tutte le istanze richieste contemporaneamente, crea un MIG senza istanze. Dopo aver creato il MIG vuoto, crea una richiesta di ridimensionamento nel MIG. Quando le risorse sono disponibili per creare tutte le istanze contemporaneamente, la richiesta di ridimensionamento aggiunge le istanze al MIG.

    Per creare un gruppo di istanze gestite e una richiesta di ridimensionamento, seleziona una delle seguenti opzioni:

    gcloud

    In questo passaggio, i comandi per creare un MIG utilizzano una policy del carico di lavoro per specificare il posizionamento delle VM. Se non vuoi utilizzare una policy del workload, rimuovi il flag --workload-policy.

    Crea un gruppo di istanze gestite a livello di zona o di regione e una richiesta di ridimensionamento come segue:

    • Per creare un gruppo di istanze gestite a livello di zona e una richiesta di ridimensionamento al suo interno:

      1. Crea un gruppo di istanze gestite a livello di zona utilizzando il comando instance-groups managed create come segue.

        gcloud compute instance-groups managed create MIG_NAME \
            --template=INSTANCE_TEMPLATE_URL \
            --size=0 \
            --workload-policy=WORKLOAD_POLICY_URL \
            --zone=ZONE
        
      2. Crea una richiesta di ridimensionamento nel gruppo di istanze gestite a livello di zona utilizzando il comando instance-groups managed resize-requests create come segue:

        gcloud compute instance-groups managed resize-requests create MIG_NAME \
            --resize-request=RESIZE_REQUEST_NAME \
            POPULATION_METHOD \
            --zone=ZONE
        
    • Per creare un gruppo di istanze gestite a livello di regione e una richiesta di ridimensionamento al suo interno:

      1. Crea un gruppo di istanze gestite a livello di regione utilizzando il comando instance-groups managed create come segue.

        gcloud compute instance-groups managed create MIG_NAME \
            --template=INSTANCE_TEMPLATE_URL \
            --size=0 \
            --workload-policy=WORKLOAD_POLICY_URL \
            --zones=ZONE \
            --target-distribution-shape=any-single-zone \
            --instance-redistribution-type=none
          
      2. Crea una richiesta di ridimensionamento nel gruppo di istanze gestite a livello di regione utilizzando il comando beta instance-groups managed resize-requests create come segue:

        gcloud beta compute instance-groups managed resize-requests create MIG_NAME \
            --resize-request=RESIZE_REQUEST_NAME \
            POPULATION_METHOD \
            --region=REGION
        

    Sostituisci quanto segue:

    • MIG_NAME: il nome del MIG.
    • INSTANCE_TEMPLATE_URL: l'URL del template di istanza che vuoi utilizzare per creare le VM nel MIG. L'URL può contenere l'ID o il nome del modello di istanza. Specifica uno dei seguenti valori:
      • Per un template di istanza regionale: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
      • Per un template di istanza globale: INSTANCE_TEMPLATE_ID
    • WORKLOAD_POLICY_URL: (Facoltativo) l'URL del criterio del workload. Se non vuoi utilizzare una policy del workload, puoi rimuovere il flag --workload-policy.
    • ZONE: la zona in cui vuoi creare il MIG. Anche per un MIG a livello di regione, devi specificare una zona. Questa zona deve essere la zona che contiene il profilo per la tua rete VPC e deve essere una zona in cui è disponibile il tipo di macchina. Per ulteriori informazioni, vedi Limitazioni.
    • RESIZE_REQUEST_NAME: il nome della richiesta di ridimensionamento, che deve essere univoco all'interno del gruppo di istanze gestite specificato. In caso contrario, la creazione della richiesta di ridimensionamento non va a buon fine.
    • POPULATION_METHOD: il metodo di aggiunta delle istanze al gruppo di istanze gestite. Utilizza uno dei seguenti valori:

      • --resize-by=COUNT: aggiungi il numero specificato di istanze al MIG contemporaneamente. I nomi delle istanze vengono generati automaticamente.
      • --instances=INSTANCE_NAME_LIST: aggiungi contemporaneamente al MIG le istanze con i nomi specificati. Sostituisci INSTANCE_NAME_LIST con un elenco separato da virgole di nomi di istanze. Il numero di nomi che fornisci determina il numero di istanze da creare con questa richiesta di ridimensionamento.
    • REGION: la regione in cui si trova il MIG.

    REST

    In questo passaggio, le richieste per creare un MIG utilizzano una policy del workload per specificare il posizionamento delle VM. Se non vuoi utilizzare una policy del carico di lavoro, rimuovi il campo resourcePolicies.workloadPolicy dal corpo della richiesta.

    Crea un gruppo di istanze gestite a livello di zona o di regione e una richiesta di ridimensionamento come segue:

    • Per creare un gruppo di istanze gestite a livello di zona e una richiesta di ridimensionamento al suo interno, procedi nel seguente modo:
      1. Crea un MIG a livello di zona inviando una richiesta POST al metodo instanceGroupManagers.insert come segue.
        POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers
        {
          "versions": [
            {
              "instanceTemplate": "INSTANCE_TEMPLATE_URL"
            }
          ],
          "name": "MIG_NAME",
          "targetSize": 0,
          "resourcePolicies": {
            "workloadPolicy": WORKLOAD_POLICY_URL
          }
        }
        
      2. Crea una richiesta di ridimensionamento nel gruppo di istanze gestite a livello di zona inviando una richiesta POST al metodo instanceGroupManagerResizeRequests.insert come segue:
        POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME/resizeRequests
        {
          "name": "RESIZE_REQUEST_NAME",
          POPULATION_METHOD
        }
        
    • Per creare un gruppo di istanze gestite a livello di regione e una richiesta di ridimensionamento al suo interno, procedi nel seguente modo:
      1. Crea un gruppo di istanze gestite a livello di regione inviando una richiesta POST al metodo regionInstanceGroupManagers.insert come segue.
        POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers
        {
          "versions": [
            {
              "instanceTemplate": "INSTANCE_TEMPLATE_URL"
            }
          ],
          "name": "MIG_NAME",
          "targetSize": 0,
          "distributionPolicy": {
            "targetShape": "ANY_SINGLE_ZONE",
            "zones": [
              {
                "zone": "projects/PROJECT_ID/zones/ZONE"
              }
            ]
          },
          "updatePolicy": {
            "instanceRedistributionType": "NONE"
          },
          "resourcePolicies": {
            "workloadPolicy": WORKLOAD_POLICY_URL
          }
        }
        
      2. Crea una richiesta di ridimensionamento nel gruppo di istanze gestite a livello di regione inviando una richiesta POST al metodo beta.regionInstanceGroupManagerResizeRequests.insert come segue:
        POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME/resizeRequests
        {
          "name": "RESIZE_REQUEST_NAME",
          POPULATION_METHOD
        }
        

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID progetto
    • ZONE: la zona in cui vuoi creare il MIG. Anche per un MIG a livello di regione, devi specificare una zona. Questa zona deve essere la zona che contiene il profilo per la tua rete VPC e deve essere una zona in cui è disponibile il tipo di macchina. Per ulteriori informazioni, vedi Limitazioni.
    • REGION: la regione in cui vuoi creare il MIG.
    • INSTANCE_TEMPLATE_URL: l'URL del template di istanza che vuoi utilizzare per creare le VM nel MIG. L'URL può contenere l'ID o il nome del modello di istanza. Specifica uno dei seguenti valori:
      • Per un template di istanza regionale: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
      • Per un template di istanza globale: INSTANCE_TEMPLATE_ID
    • MIG_NAME: il nome del MIG.
    • WORKLOAD_POLICY_URL: (Facoltativo) l'URL del criterio del workload. Se non vuoi utilizzare una policy del workload, puoi rimuovere il campo resourcePolicies.workloadPolicy.
    • RESIZE_REQUEST_NAME: il nome della richiesta di ridimensionamento, che deve essere univoco all'interno del gruppo di istanze gestite specificato. In caso contrario, la creazione della richiesta di ridimensionamento non va a buon fine.
    • POPULATION_METHOD: il metodo di aggiunta delle istanze al gruppo di istanze gestite. Utilizza uno dei seguenti valori:

      • "resizeBy":COUNT: sostituisci COUNT con il numero specificato di istanze da aggiungere contemporaneamente al MIG. I nomi delle istanze vengono generati automaticamente.
      • "instanceNames":INSTANCE_NAME_LIST: aggiungi contemporaneamente al MIG le istanze con i nomi specificati. Sostituisci INSTANCE_NAME_LIST con un elenco separato da virgole di nomi di istanze. Il numero di nomi che fornisci determina il numero di istanze da creare con questa richiesta di ridimensionamento.

    Esegui la pulizia

    Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, elimina il progetto che contiene le risorse oppure mantieni il progetto ed elimina le singole risorse.

    Elimina il progetto

    Delete a Google Cloud project:

    gcloud projects delete PROJECT_ID

    Elimina le risorse

    1. Elimina le richieste di ridimensionamento in un MIG.

    2. Elimina il MIG e le istanze.

    3. Se lo stato di eliminazione automatica dei dischi è stato impostato su False nel modello di istanza, i dischi non vengono eliminati automaticamente quando viene eliminata l'istanza VM. Puoi eliminare i dischi utilizzando uno dei seguenti metodi:

      Console

      1. Nella console Google Cloud , vai alla pagina Dischi.

      Vai a Dischi

      1. Seleziona le righe contenenti i dischi che hai creato in questo tutorial. Assicurati che la colonna Utilizzato da sia vuota per ogni disco.

      2. Fai clic su Elimina, quindi fai clic su Elimina per confermare.

      gcloud

      Utilizza il comando gcloud compute disks delete.

      gcloud compute disks delete DISK_NAME \
          --project PROJECT_ID --zone ZONE
      

      Sostituisci quanto segue:

      • DISK_NAME : il nome del disco da eliminare
      • PROJECT_ID: l'ID del progetto che contiene il disco
      • ZONE: la zona del disco

      REST

      Utilizza il metodo disks.delete per eliminare i dischi.

      DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME 
      

      Sostituisci quanto segue:

      • PROJECT_ID: l'ID del progetto che contiene il disco
      • ZONE: la zona del disco
      • DISK_NAME : il nome del disco da eliminare
    4. Elimina le reti.

    5. Elimina il template di istanza.

    Passaggi successivi