Esegui il provisioning delle VM su nodi single-tenant

Questa pagina descrive come eseguire il provisioning delle VM su nodi single-tenant, ovvero server fisici che eseguono VM solo da un singolo progetto. Prima di eseguire il provisioning delle VM sui nodi single-tenant, leggi la panoramica sui nodi single-tenant.

Il provisioning di una VM su un nodo single-tenant richiede quanto segue:

  1. Creazione di un modello di nodo single-tenant. Il modello di nodo single-tenant specifica le proprietà uniformi per tutti i nodi single-tenant in un gruppo di nodi single-tenant.

  2. Creazione di un gruppo di nodi single-tenant utilizzando il modello di nodi single-tenant creato in precedenza.

  3. Creazione di VM e provisioning delle VM su un gruppo di nodi single-tenant.

Prima di iniziare

  • Prima di eseguire il provisioning delle VM su un nodo single-tenant, controlla la quota. A seconda del numero e della dimensione di nodi che prenoti, potrebbe essere necessario richiedere una quota aggiuntiva.
  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è il processo mediante il quale viene verificata l'identità per l'accesso ai servizi e alle API Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti in Compute Engine nel seguente modo.

    Seleziona la scheda relativa a come prevedi di utilizzare gli esempi in questa pagina:

    Console

    Quando utilizzi la console Google Cloud per accedere ai servizi e alle API di Google Cloud, non devi configurare l'autenticazione.

    gcloud

    1. Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

      gcloud init
    2. Imposta una regione e una zona predefinite.

    REST

    Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, devi utilizzare le credenziali che fornisci a gcloud CLI.

      Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

      gcloud init

Crea un modello di nodo single-tenant

I modelli di nodi single-tenant sono risorse di regione che specificano le proprietà dei gruppi di nodi single-tenant. Devi creare un modello di nodo prima di creare un gruppo di nodi. Tuttavia, se utilizzi la console Google Cloud, devi creare modelli di nodo durante la creazione di un gruppo di nodi single-tenant.

Console

Devi creare un modello di nodo single-tenant prima di creare un gruppo di nodi. Utilizzando la console Google Cloud, devi creare il modello di nodo durante la creazione di un gruppo di nodi single-tenant. Il nuovo modello di nodo viene creato nella stessa regione specificata nelle proprietà del gruppo di nodi.

  1. Nella console Google Cloud, vai alla pagina Nodi single-tenant.

    Vai ai nodi single-tenant

  2. Fai clic su Crea gruppo di nodi.

  3. Specifica un nome per il gruppo di nodi.

  4. Specifica una Regione in cui creare il modello di nodo. Puoi utilizzare il modello di nodo per creare gruppi di nodi in qualsiasi zona di questa regione.

  5. Specifica la Zona e fai clic su Continua.

  6. Nell'elenco Modello di nodo, fai clic su Crea modello di nodo per iniziare a creare un modello di nodo single-tenant.

  7. Specifica un nome per il modello di nodo.

  8. Specifica il Tipo di nodo per ciascun nodo single-tenant nel gruppo di nodi da creare in base a questo modello di nodo.

  9. Facoltativo: puoi anche specificare le seguenti proprietà per il modello di nodo.

    • Aggiungi un SSD locale e un acceleratore GPU.

    • Aggiungi le etichette di affinità nodo. Le etichette di affinità consentono di raggruppare logicamente nodi e gruppi di nodi e, in seguito, durante il provisioning delle VM, puoi specificare etichette di affinità sulle VM per pianificare le VM su un insieme specifico di nodi o gruppi di nodi. Per ulteriori informazioni, consulta Affinità e anti-affinità dei nodi.

  10. Fai clic su Crea per completare la creazione del modello di nodo.

  11. (Facoltativo) Per aggiungere un nuovo modello di nodo single-tenant in una regione diversa, ripeti i passaggi precedenti.

Per visualizzare i modelli di nodo, fai clic su Modelli di nodo nella pagina Nodi single-tenant.

gcloud

Utilizza il comando gcloud compute sole-tenancy node-templates create per creare un modello di nodo:

gcloud compute sole-tenancy node-templates create TEMPLATE_NAME \
  --node-type=NODE_TYPE \
  [--region=REGION \]
  [--node-affinity-labels=AFFINITY_LABELS \]
  [--accelerator type=GPU_TYPE,count=GPU_COUNT \]
  [--disk type=local-ssd,count=DISK_COUNT,size=DISK_SIZE ]

Sostituisci quanto segue:

  • TEMPLATE_NAME: il nome del nuovo modello di nodo.

  • NODE_TYPE: il tipo di nodo per i nodi single-tenant creati in base a questo modello. Utilizza il comando gcloud compute sole-tenancy node-types list per visualizzare un elenco dei tipi di nodi disponibili in ciascuna zona.

  • REGION: la regione in cui creare il modello di nodo. Puoi utilizzare questo modello per creare gruppi di nodi in qualsiasi zona di questa regione.

  • AFFINITY_LABELS: le chiavi e i valori, [KEY=VALUE,...], per le etichette di affinità. Le etichette di affinità consentono di raggruppare logicamente nodi e gruppi di nodi e, in seguito, durante il provisioning delle VM, puoi specificare etichette di affinità sulle VM per pianificare le VM su un insieme specifico di nodi o gruppi di nodi. Per ulteriori informazioni, consulta Affinità e anti-affinità dei nodi.

  • GPU_TYPE: il tipo di GPU per ogni nodo single-tenant creato in base a questo modello di nodo. Per informazioni sulla disponibilità a livello di zona delle GPU, utilizza il comando gcloud compute accelerator-types list e scegli una zona in cui è disponibile il tipo di nodo single-tenant n1 o g2. A seconda della disponibilità a livello di zona, imposta una delle seguenti opzioni:

    • nvidia-l4
    • nvidia-tesla-p100
    • nvidia-tesla-p4
    • nvidia-tesla-t4
    • nvidia-tesla-v100
  • GPU_COUNT: il numero di GPU da specificare in base al tipo di GPU. Imposta il valore specificato per il tipo di GPU, come mostrato nella seguente tabella:

    GPU_TYPE GPU_COUNT
    nvidia-l4 8
    nvidia-tesla-p100 4
    nvidia-tesla-p4 4
    nvidia-tesla-t4 4
    nvidia-tesla-v100 8
  • DISK_COUNT: numero di dischi SSD. Impostalo su 16 o 24.

  • DISK_SIZE: valore facoltativo per la dimensione della partizione dell'SSD locale in GB. L'unica dimensione della partizione supportata è 375. Se non imposti questo valore, il valore predefinito è 375.

REST

Utilizza il metodo nodeTemplates.insert per creare un modello di nodo:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/nodeTemplates

{
  "name": "TEMPLATE_NAME",
  "nodeType": "NODE_TYPE",
  "nodeAffinityLabels": {
    "KEY": "VALUE",
    ...
  },
  "accelerators": [
    {
      "acceleratorType": "GPU_TYPE",
      "acceleratorCount": GPU_COUNT
    }
  ],
  "disks": [
    {
      "diskType": "local-ssd",
      "diskSizeGb": DISK_SIZE,
      "diskCount": DISK_COUNT
    }
  ]
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto.

  • REGION: la regione in cui creare il modello di nodo. Puoi utilizzare questo modello per creare gruppi di nodi in qualsiasi zona di questa regione.

  • TEMPLATE_NAME: il nome del nuovo modello di nodo.

  • NODE_TYPE: il tipo di nodo per i nodi single-tenant creati in base a questo modello. Utilizza il metodo nodeTypes.list per ottenere un elenco dei tipi di nodi disponibili in ciascuna zona.

  • KEY: il valore nodeAffinityLabels che specifica la parte relativa alla chiave di un'etichetta di affinità nodo espressa come coppia chiave-valore. Le etichette di affinità consentono di raggruppare logicamente nodi e gruppi di nodi e, in seguito, durante il provisioning delle VM, puoi specificare etichette di affinità sulle VM per pianificare le VM su un insieme specifico di nodi o gruppi di nodi. Per ulteriori informazioni, consulta Affinità e anti-affinità dei nodi.

  • VALUE: il valore nodeAffinityLabels che specifica la parte relativa al valore di una coppia chiave-valore dell'etichetta di affinità del nodo.

  • GPU_TYPE: il tipo di GPU per ogni nodo single-tenant creato in base a questo modello di nodo. Per informazioni sulla disponibilità a livello di zona delle GPU, utilizza il comando gcloud compute accelerator-types list e scegli una zona in cui è disponibile il tipo di nodo single-tenant n1 o g2. A seconda della disponibilità a livello di zona, imposta una delle seguenti opzioni:

    • nvidia-l4
    • nvidia-tesla-p100
    • nvidia-tesla-p4
    • nvidia-tesla-t4
    • nvidia-tesla-v100
  • GPU_COUNT: il numero di GPU per ogni nodo single-tenant creato in base a questo modello di nodo. Imposta il valore specificato per il tipo di GPU, come mostrato nella seguente tabella:

    GPU_TYPE GPU_COUNT
    nvidia-l4 8
    nvidia-tesla-p100 4
    nvidia-tesla-p4 4
    nvidia-tesla-t4 4
    nvidia-tesla-v100 8
  • DISK_SIZE: valore facoltativo per la dimensione della partizione dell'SSD locale in GB. L'unica dimensione della partizione supportata è 375. Se non imposti questo valore, il valore predefinito è 375.

  • DISK_COUNT: numero di dischi SSD. Imposta il valore su 16 o 24.

Crea un gruppo di nodi single-tenant

Con il modello di nodo single-tenant creato in precedenza, crea un gruppo di nodi single-tenant. Un gruppo di nodi single-tenant eredita le proprietà specificate dal modello di nodi single-tenant e contiene valori aggiuntivi che devi specificare.

Console

  1. Nella console Google Cloud, vai alla pagina Nodi single-tenant.

    Vai ai nodi single-tenant

  2. Fai clic su Crea gruppo di nodi per iniziare a creare un gruppo di nodi.

  3. Specifica un nome per il gruppo di nodi.

  4. Specifica la Regione per il gruppo di nodi per visualizzare i modelli di nodi disponibili in quella regione.

  5. Specifica la zona all'interno della regione in cui creare il gruppo di nodi.

  6. Specifica il modello di nodo per creare il gruppo di nodi oppure fai clic su Crea modello di nodo per creare un nuovo modello di nodo single-tenant. Il modello di nodo selezionato viene applicato al gruppo di nodi.

  7. Scegli una delle seguenti opzioni per la modalità di scalabilità automatica per il gestore della scalabilità automatica dei gruppi di nodi:

    • Off: gestisci manualmente le dimensioni del gruppo di nodi.

    • On: i nodi vengono aggiunti o rimossi automaticamente dal gruppo di nodi.

    • Solo scale out: aggiungi nodi al gruppo di nodi quando è richiesta capacità aggiuntiva.

  8. Specifica il numero di nodi per il gruppo. Se abiliti il gestore della scalabilità automatica dei gruppi di nodi, specifica un intervallo per le dimensioni del gruppo di nodi. Puoi modificare i valori manualmente in un secondo momento.

  9. Imposta il Criterio di manutenzione del gruppo di nodi single-tenant nella sezione Configura le impostazioni di manutenzione su uno dei seguenti valori. Il criterio di manutenzione consente di configurare il comportamento delle VM sul gruppo di nodi durante gli eventi di manutenzione dell'host. Per ulteriori informazioni, consulta le norme di manutenzione.

    • Predefinito
    • Riavvio in corso
    • Esegui la migrazione all'interno del gruppo di nodi
  10. Puoi scegliere tra periodi di manutenzione regolari e controllo di manutenzione avanzato per gestire la manutenzione del tuo gruppo di nodi single-tenant, come indicato di seguito:

    • Periodo di manutenzione: seleziona il periodo di tempo durante il quale vuoi che si verifichino eventi di manutenzione pianificati per i nodi nei gruppi di nodi single-tenant.

    • Attiva il controllo di manutenzione avanzato per single-tenancy (anteprima): Il controllo di manutenzione avanzato per single-tenancy ti consente di controllare gli eventi di manutenzione pianificati per i gruppi di nodi single-tenant e ridurre al minimo le interruzioni dovute alla manutenzione. Per attivare il controllo di manutenzione avanzato, fai clic su Attiva per attivare il Controllo manutenzione avanzato per single-tenancy. Se scegli di utilizzare questa opzione per la manutenzione dei nodi, il campo Periodo di manutenzione viene disabilitato e la manutenzione verrà eseguita in base alla configurazione del controllo di manutenzione avanzato.

    Tieni presente che durante la fase di anteprima, il controllo di manutenzione avanzato supporta solo il criterio di manutenzione Predefinito.

  11. Configura le impostazioni di condivisione specificando una delle seguenti opzioni in Configurare le impostazioni di condivisione:

    • Per condividere il gruppo di nodi con tutti i progetti nell'organizzazione, scegli Condividi questo gruppo di nodi con tutti i progetti all'interno dell'organizzazione.
    • Per condividere il gruppo di nodi con progetti specifici all'interno dell'organizzazione, scegli Condividi questo gruppo di nodi con i progetti selezionati all'interno dell'organizzazione.

    Se non vuoi condividere il gruppo di nodi, scegli Non condividere questo gruppo di nodi con altri progetti. Per maggiori informazioni sulla condivisione dei gruppi di nodi, consulta Condividere gruppi di nodi single-tenant.

  12. Fai clic su Crea per completare la creazione del gruppo di nodi.

gcloud

Esegui il comando gcloud compute sole-tenancy node-groups create per creare un gruppo di nodi basato su un modello di nodo creato in precedenza:

gcloud compute sole-tenancy node-groups create GROUP_NAME \
  --node-template=TEMPLATE_NAME \
  --target-size=TARGET_SIZE \
  [--zone=ZONE \]
  [--maintenance-policy=MAINTENANCE_POLICY \]
  [--maintenance-window-start-time=START_TIME \]
  [--autoscaler-mode=AUTOSCALER_MODE: \
  --min-nodes=MIN_NODES \
  --max-nodes=MAX_NODES]

Sostituisci quanto segue:

  • GROUP_NAME: il nome del nuovo gruppo di nodi.

  • TEMPLATE_NAME: il nome del modello di nodo da utilizzare per creare questo gruppo.

  • TARGET_SIZE: il numero di nodi da creare nel gruppo.

  • ZONE: la zona in cui creare il gruppo di nodi. Deve trovarsi nella stessa regione del modello di nodo su cui si basa il gruppo di nodi.

  • MAINTENANCE_POLICY: il criterio di manutenzione per il gruppo di nodi. Per ulteriori informazioni, consulta i criteri di manutenzione. Deve trattarsi di uno dei seguenti valori:

    • default
    • restart-in-place
    • migrate-within-node-group

    In alternativa, puoi attivare il controllo di manutenzione avanzato (Anteprima) per il gruppo di nodi single-tenant utilizzando il flag --maintenance-interval. Per maggiori informazioni, consulta Abilitare il controllo di manutenzione avanzato su un nodo single-tenant.

  • START_TIME: l'ora di inizio nel fuso orario GMT per il periodo di manutenzione per le VM in questo gruppo di nodi. Imposta un'opzione tra 00:00, 04:00, 08:00, 12:00, 16:00 o 20:00. Se non viene configurato, il gruppo di nodi non ha un periodo di manutenzione impostato.

  • AUTOSCALER_MODE: il criterio del gestore della scalabilità automatica per il gruppo di nodi. Deve essere uno dei seguenti:

    • off: gestisci manualmente le dimensioni del gruppo di nodi.

    • on: prevede l'aggiunta o la rimozione automatica di nodi al gruppo di nodi.

    • only-scale-out: aggiunge nodi al gruppo di nodi quando è richiesta ulteriore capacità.

  • MIN_NODES: la dimensione minima del gruppo di nodi. Il valore predefinito è 0 e deve essere un valore intero minore o uguale a MAX_NODES.

  • MAX_NODES: la dimensione massima del gruppo di nodi. Deve essere minore o uguale a 100 e maggiore o uguale a MIN_NODES. Obbligatorio se AUTOSCALER_MODE non è impostato su off.

REST

Utilizza il metodo nodeGroups.insert per creare un gruppo di nodi basato su un modello di nodo creato in precedenza:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/nodeGroups?initialNodeCount=TARGET_SIZE
{ "nodeTemplate": "regions/REGION/nodeTemplates/TEMPLATE_NAME", "name": "GROUP_NAME", "maintenancePolicy": MAINTENANCE_POLICY, "maintenanceWindow": { "startTime": "START_TIME" } "autoscalingPolicy": { "mode": AUTOSCALER_MODE, "minNodes": MIN_NODES, "maxNodes": MAX_NODES }, }

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto.

  • ZONE: la zona in cui creare il gruppo di nodi. Deve trovarsi nella stessa regione del modello di nodo su cui si basa il gruppo di nodi.

  • TARGET_SIZE: il numero di nodi da creare nel gruppo.

  • REGION: la regione in cui creare il gruppo di nodi. Devi avere un modello di nodo nella regione selezionata.

  • TEMPLATE_NAME: il nome del modello di nodo da utilizzare per creare questo gruppo.

  • GROUP_NAME: il nome del nuovo gruppo di nodi.

  • MAINTENANCE_POLICY: il criterio di manutenzione per il gruppo di nodi. Deve essere uno dei seguenti valori:

    • DEFAULT
    • RESTART_IN_PLACE
    • MIGRATE_WITHIN_NODE_GROUP

    In alternativa, puoi attivare il controllo di manutenzione avanzato (Anteprima) per il gruppo di nodi single-tenant utilizzando il campo maintenanceInterval. Per maggiori informazioni, consulta Abilitare il controllo di manutenzione avanzato su un nodo single-tenant.

  • START_TIME: l'ora di inizio nel fuso orario GMT per il periodo di manutenzione per le VM in questo gruppo di nodi. Imposta un'opzione tra 00:00, 04:00, 08:00, 12:00, 16:00 o 20:00. Se non viene configurato, il gruppo di nodi non ha un periodo di manutenzione impostato.

  • AUTOSCALER_MODE: il criterio del gestore della scalabilità automatica per il gruppo di nodi. Il valore deve essere uno dei seguenti:

    • OFF: gestisci manualmente le dimensioni del gruppo di nodi.

    • ON: prevede l'aggiunta o la rimozione automatica di nodi al gruppo di nodi.

    • ONLY_SCALE_OUT: aggiunge nodi al gruppo di nodi quando è richiesta ulteriore capacità.

  • MIN_NODES: la dimensione minima del gruppo di nodi. Il valore predefinito è 0 e deve essere un valore intero minore o uguale a MAX_NODES.

  • MAX_NODES: la dimensione massima del gruppo di nodi. Deve essere minore o uguale a 100 e maggiore o uguale a MIN_NODES. Obbligatorio se AUTOSCALER_MODE non è impostato su OFF.

Esegui il provisioning di una VM single-tenant

Dopo aver creato un gruppo di nodi basato su un modello di nodi creato in precedenza, puoi eseguire il provisioning di singole VM in un gruppo di nodi single-tenant.

Per eseguire il provisioning di una VM su un nodo o gruppo di nodi specifico con etichette di affinità corrispondenti a quelle assegnate in precedenza al modello di nodo, segui la procedura standard per la creazione di un'istanza VM e assegna le etichette di affinità alla VM.

In alternativa, puoi utilizzare la procedura seguente per eseguire il provisioning di una VM su un nodo single-tenant dalla pagina dei dettagli del gruppo di nodi. In base al gruppo di nodi su cui esegui il provisioning delle VM, Compute Engine assegna etichette di affinità.

Console

  1. Nella console Google Cloud, vai alla pagina Nodi single-tenant.

    Vai ai nodi single-tenant

  2. Fai clic su Gruppi di nodi.

  3. Fai clic sul nome del gruppo di nodi su cui eseguire il provisioning di un'istanza VM. Successivamente, per eseguire il provisioning di una VM su uno specifico nodo single-tenant, fai clic sul nome del nodo single-tenant specifico.

  4. Fai clic su Crea istanza per eseguire il provisioning di un'istanza VM su questo gruppo di nodi, osserva i valori applicati automaticamente per Nome, Regione e Zona e modifica questi valori in base alle esigenze.

  5. Seleziona una Configurazione macchina specificando Famiglia di macchine, Serie e Tipo di macchina. Scegli la Serie che corrisponde al tipo di nodo single-tenant.

  6. Modifica il disco di avvio, il firewall e altre impostazioni in base alle esigenze.

  7. Fai clic su Sole-tenancy, prendi nota delle Etichette di affinità dei nodi assegnate automaticamente e utilizza Sfoglia per apportare modifiche in base alle esigenze.

  8. Fai clic su Gestione e per In manutenzione dell'host, scegli una delle seguenti opzioni:

    • Esegui la migrazione dell'istanza VM (opzione consigliata): la VM è stata migrata a un altro nodo del gruppo di nodi durante gli eventi di manutenzione.

    • Termina: la VM viene arrestata durante gli eventi di manutenzione.

  9. Scegli una delle seguenti opzioni per il Riavvio automatico:

    • On (consigliato): riavvia automaticamente le VM se vengono arrestate per eventi di manutenzione.

    • Off: non riavvia automaticamente le VM dopo un evento di manutenzione.

  10. Fai clic su Crea per completare la creazione della VM single-tenant.

gcloud

Utilizza il comando gcloud compute instances create per eseguire il provisioning di una VM su un gruppo di nodi single-tenant:

gcloud compute instances create VM_NAME \
  [--zone=ZONE \]
  --image-family=IMAGE_FAMILY \
  --image-project=IMAGE_PROJECT \
  --node-group=GROUP_NAME \
  --machine-type=MACHINE_TYPE \
  [--maintenance-policy=MAINTENANCE_POLICY \]
  [--accelerator type=GPU_TYPE,count=GPU_COUNT \]
  [--local-ssd interface=SSD_INTERFACE \]
  [--restart-on-failure]

Il flag --restart-on-failure indica se le VM single-tenant vengono riavviate dopo l'arresto. Questo flag è abilitato per impostazione predefinita. Usa --no-restart-on-failure per disattivare l'opzione.

Sostituisci quanto segue:

  • VM_NAME: il nome della nuova VM single-tenant.

  • ZONE: la zona in cui eseguire il provisioning della VM single-tenant.

  • IMAGE_FAMILY: la famiglia di immagini dell'immagine da utilizzare per creare la VM.

  • IMAGE_PROJECT: il progetto di immagine della famiglia di immagini.

  • GROUP_NAME: nome del gruppo di nodi in cui eseguire il provisioning della VM.

  • MACHINE_TYPE: il tipo di macchina della VM single-tenant. Utilizza il comando gcloud compute machine-types list per visualizzare un elenco dei tipi di macchine disponibili per il progetto.

  • MAINTENANCE_POLICY: specifica il comportamento di riavvio delle VM single-tenant durante gli eventi di manutenzione. Imposta il valore su uno dei seguenti valori:

    • MIGRATE: è stata eseguita la migrazione della VM a un altro nodo del gruppo di nodi durante gli eventi di manutenzione.

    • TERMINATE: VM arrestata durante gli eventi di manutenzione.

  • GPU_TYPE: tipo di GPU. Impostato su uno dei tipi di acceleratore specificati al momento della creazione del modello di nodo.

  • GPU_COUNT: numero di GPU del totale specificato dal modello di nodo da collegare a questa VM. Il valore predefinito è 1.

  • SSD_INTERFACE: tipo di interfaccia SSD locale. Puoi impostarlo solo per le istanze create da un modello di nodo con supporto SSD locale. Se specifichi questo valore durante la creazione dell'istanza e il modello di nodo non supporta SSD locali, la creazione dell'istanza non va a buon fine. Impostalo su nvme se i driver dell'immagine del disco di avvio sono ottimizzati per NVMe, altrimenti impostalo su scsi. Specifica questo flag e un valore corrispondente una volta per ogni partizione SSD locale.

REST

Utilizza il metodo instances.insert per eseguire il provisioning di una VM in un gruppo di nodi single-tenant:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/VM_ZONE/instances
{ "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE", "name": "VM_NAME", "scheduling": { "onHostMaintenance": MAINTENANCE_POLICY, "automaticRestart": RESTART_ON_FAILURE, "nodeAffinities": [ { "key": "compute.googleapis.com/node-group-name", "operator": "IN", "values": [ "GROUP_NAME" ] } ] }, "networkInterfaces": [ { "network": "global/networks/NETWORK", "subnetwork": "regions/REGION/subnetworks/SUBNETWORK" } ], "guestAccelerators": [ { "acceleratorType": GPU_TYPE, "acceleratorCount": GPU_COUNT } ], "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY" } }, { "type":"SCRATCH", "initializeParams":{ "diskType":"zones/LOCAL_SSD_ZONE/diskTypes/local-ssd" }, "autoDelete":true, "interface":"SSD_INTERFACE" } ] }

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto.

  • VM_ZONE: la zona in cui eseguire il provisioning della VM single-tenant.

  • MACHINE_TYPE_ZONE: la zona del tipo di macchina.

  • MACHINE_TYPE: il tipo di macchina della VM single-tenant. Utilizza il metodo machineTypes.list per ottenere un elenco dei tipi di macchine disponibili per il progetto.

  • VM_NAME: il nome della nuova VM single-tenant.

  • MAINTENANCE_POLICY: specifica il comportamento di riavvio delle VM single-tenant durante gli eventi di manutenzione. Imposta il valore su uno dei seguenti valori:

    • MIGRATE: è stata eseguita la migrazione della VM a un altro nodo del gruppo di nodi durante gli eventi di manutenzione.

    • TERMINATE: VM arrestata durante gli eventi di manutenzione.

  • RESTART_ON_FAILURE: indica se le VM single-tenant si riavviano dopo l'arresto. Il valore predefinito è true.

  • GROUP_NAME: nome del gruppo di nodi in cui eseguire il provisioning della VM.

  • NETWORK: l'URL della risorsa di rete per questa VM.

  • REGION: la regione contenente la subnet per questa VM.

  • SUBNETWORK: l'URL della risorsa subnet per questa VM.

  • GPU_TYPE: il tipo di GPU. Impostato su uno dei tipi di acceleratore specificati al momento della creazione del modello di nodo.

  • GPU_COUNT: il numero di GPU del totale specificato dal modello di nodo da collegare a questa VM. Il valore predefinito è 1.

  • IMAGE_PROJECT: progetto immagine della famiglia di immagini.

  • IMAGE_FAMILY: famiglia di immagini dell'immagine da utilizzare per creare la VM.

  • LOCAL_SSD_ZONE: la zona dell'SSD locale.

  • SSD_INTERFACE: il tipo di interfaccia SSD locale. Impostalo su NVME se i driver dell'immagine del disco di avvio sono ottimizzati per NVMe, altrimenti impostalo su SCSI.

Esegui il provisioning di un gruppo di VM single-tenant

I gruppi di istanze gestite (MIG) ti consentono di eseguire il provisioning di un gruppo di VM single-tenant identiche. Le etichette di affinità consentono di specificare il nodo single-tenant o il gruppo di nodi su cui eseguire il provisioning del gruppo di VM single-tenant.

Per i gruppi di istanze gestite a livello di regione, devi creare gruppi di nodi in ciascuna zona del gruppo di istanze gestite a livello di regione e devi specificare le affinità dei nodi per questi gruppi nel modello di istanza del gruppo di istanze gestite a livello di regione.

gcloud

  1. Utilizza il comando gcloud compute instance-templates create per creare un modello di gruppo di istanze gestite per un gruppo di VM da creare in un gruppo di nodi single-tenant:

    gcloud compute instance-templates create INSTANCE_TEMPLATE \
      --machine-type=MACHINE_TYPE \
      --image-project=IMAGE_PROJECT \
      --image-family=IMAGE_FAMILY \
      --node-group=GROUP_NAME \
      [--accelerator type=GPU_TYPE,count=GPU_COUNT \]
      [--local-ssd interface=SSD_INTERFACE]
    

    Sostituisci quanto segue:

    • INSTANCE_TEMPLATE: il nome del nuovo modello di istanza.

    • MACHINE_TYPE: il tipo di macchina della VM single-tenant. Utilizza il comando gcloud compute machine-types list per ottenere un elenco dei tipi di macchine disponibili per il progetto.

    • IMAGE_PROJECT: il progetto di immagine della famiglia di immagini.

    • IMAGE_FAMILY: la famiglia di immagini dell'immagine da utilizzare per creare la VM.

    • GROUP_NAME: nome del gruppo di nodi in cui eseguire il provisioning della VM. In alternativa, se vuoi utilizzare questo modello di istanza per creare un gruppo di istanze gestite a livello di regione esistente in più zone, usa il flag --node-affinity-file per specificare un elenco di valori per i gruppi di nodi del gruppo di nodi a livello di regione.

    • GPU_TYPE: tipo di GPU. Impostato su uno dei tipi di acceleratore specificati al momento della creazione del modello di nodo.

    • GPU_COUNT: numero di GPU del totale specificato dal modello di nodo da collegare a questa VM. Il valore predefinito è 1.

    • SSD_INTERFACE: tipo di interfaccia SSD locale. Impostalo su nvme se i driver dell'immagine del disco di avvio sono ottimizzati per NVMe, altrimenti impostalo su scsi. Specifica una volta questo flag e un valore corrispondente per ogni partizione SSD locale.

  2. Utilizza il comando gcloud compute instance-groups managed create per creare un gruppo di istanze gestite all'interno del gruppo di nodi single-tenant:

    gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
      --size=SIZE \
      --template=INSTANCE_TEMPLATE \
      --zone=ZONE
    

    Sostituisci quanto segue:

    • INSTANCE_GROUP_NAME: il nome di questo gruppo di istanze.

    • SIZE: il numero di VM da includere nel gruppo di istanze. Il gruppo di nodi deve avere risorse sufficienti per ospitare le istanze in questo gruppo di istanze gestite. Utilizza il gestore della scalabilità automatica dei gruppi di istanze gestite per gestire automaticamente le dimensioni dei gruppi di istanze gestite.

    • INSTANCE_TEMPLATE: il nome del modello di istanza da utilizzare per creare questo gruppo di istanze gestite. Il modello deve avere una o più etichette di affinità dei nodi che puntino ai gruppi di nodi appropriati.

    • ZONE: la zona in cui creare il gruppo di istanze gestite. Per un gruppo di istanze gestite a livello di regione, sostituisci il flag --zone con il flag --region e specifica una regione; aggiungi anche il flag --zones per specificare tutte le zone in cui esistono i gruppi di nodi.

REST

  1. Utilizza il metodo instanceTemplates.insert per creare un modello di gruppo di istanze gestite all'interno del gruppo di nodi single-tenant:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/TEMPLATE_ZONE/instance-templates
    { "name": "INSTANCE_TEMPLATE", "properties": { "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE", "scheduling": { "nodeAffinities": [ { "key": "compute.googleapis.com/node-group-name", "operator": "IN", "values": [ "GROUP_NAME" ] } ] }, "networkInterfaces": [ { "network": "global/networks/NETWORK", "subnetwork": "regions/REGION/subnetworks/SUBNETWORK" } ], "guestAccelerators": [ { "acceleratorType": GPU_TYPE, "acceleratorCount": GPU_COUNT } ], "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY" } }, { "type":"SCRATCH", "initializeParams":{ "diskType":"zones/LOCAL_SSD_ZONE/diskTypes/local-ssd" }, "autoDelete":true, "interface":"SSD_INTERFACE" } ] } }

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID progetto.

    • TEMPLATE_ZONE: la zona in cui creare il modello di istanza.

    • INSTANCE_TEMPLATE: il nome del nuovo modello di istanza.

    • MACHINE_TYPE_ZONE: la zona del tipo di macchina.

    • MACHINE_TYPE: il tipo di macchina della VM single-tenant. Utilizza il metodo machineTypes.list per ottenere un elenco dei tipi di macchine disponibili per il progetto.

    • GROUP_NAME: nome del gruppo di nodi in cui eseguire il provisioning della VM. Se vuoi utilizzare questo modello di istanza per creare un gruppo di istanze gestite a livello di regione esistente in più zone, specifica un elenco dei gruppi di nodi che esistono nelle stesse zone del gruppo di istanze gestite a livello di regione.

    • NETWORK: l'URL della risorsa di rete per questo modello di istanza.

    • REGION: la regione contenente la subnet per questo modello di istanza.

    • SUBNETWORK: l'URL della risorsa subnet per questo modello di istanza.

    • GPU_TYPE: il tipo di GPU. Impostato su uno dei tipi di acceleratore specificati al momento della creazione del modello di nodo.

    • GPU_COUNT: il numero di GPU del totale specificato dal modello di nodo da collegare a questa VM. Il valore predefinito è 1.

    • IMAGE_PROJECT: il progetto di immagine della famiglia di immagini.

    • IMAGE_FAMILY: la famiglia di immagini dell'immagine da utilizzare per creare la VM.

    • LOCAL_SSD_ZONE: la zona dell'SSD locale.

    • SSD_INTERFACE: il tipo di interfaccia SSD locale. Impostalo su NVME se i driver dell'immagine del disco di avvio sono ottimizzati per NVMe, altrimenti impostalo su SCSI.

  2. Utilizza il metodo instanceGroupManagers.insert per creare un gruppo di istanze gestite all'interno del gruppo di nodi single-tenant in base al modello di istanza creato in precedenza. In alternativa, se vuoi creare un gruppo di istanze gestite a livello di regione, utilizza il metodo regionInstanceGroupManagers.insert e specifica la regione e le zone di tutti i gruppi di nodi come specificato nel modello di istanza.

    Ad esempio, per creare un gruppo di istanze gestite a livello di zona, utilizza la richiesta seguente:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers
    {
      "baseInstanceName": "NAME_PREFIX",
      "name": "INSTANCE_GROUP_NAME",
      "targetSize": SIZE,
      "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE"
    }
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID progetto.

    • ZONE: la zona in cui creare il gruppo di istanze gestite.

    • NAME_PREFIX: nome del prefisso per ogni istanza nel gruppo di istanze gestite.

    • INSTANCE_GROUP_NAME: il nome del gruppo di istanze.

    • SIZE: il numero di VM da includere nel gruppo di istanze. Il gruppo di nodi deve avere risorse sufficienti per ospitare le istanze in questo gruppo di istanze gestite. Utilizza il gestore della scalabilità automatica dei gruppi di istanze gestite per gestire automaticamente le dimensioni dei gruppi di istanze gestite.

    • INSTANCE_TEMPLATE: l'URL del modello di istanza da utilizzare per creare il gruppo. Il modello deve avere un'etichetta di affinità dei nodi che punti al gruppo di nodi appropriato.

Configura le etichette di affinità nodo

Le etichette di affinità nodo consentono di raggruppare logicamente i gruppi di nodi e pianificare le VM su un insieme specifico di gruppi di nodi. Puoi anche utilizzare le etichette di affinità nodo per pianificare le VM su gruppi di nodi in zone diverse, mantenendo i gruppi di nodi in un gruppo logico. La procedura seguente è un esempio di utilizzo delle etichette di affinità per associare le VM a un gruppo di nodi specifico utilizzato per i carichi di lavoro di produzione. Questo esempio mostra come pianificare una singola VM, ma puoi anche utilizzare i gruppi di istanze gestite per pianificare un gruppo di VM.

gcloud

  1. Utilizza il comando gcloud compute sole-tenancy node-templates create per creare un modello di nodo con un set di etichette di affinità per un carico di lavoro di produzione:

    gcloud compute sole-tenancy node-templates create prod-template \
      --node-type=n1-node-96-624 \
      --node-affinity-labels workload=frontend,environment=prod
    
  2. Utilizza il comando gcloud compute sole-tenancy node-templates describe per visualizzare le etichette di affinità dei nodi assegnate al modello di nodo.

  3. Utilizza il comando gcloud compute sole-tenancy node-groups create per creare un gruppo di nodi che utilizza il modello di produzione:

    gcloud compute sole-tenancy node-groups create prod-group \
      --node-template=prod-template \
      --target-size=1
    
  4. Per le VM di produzione, crea un file node-affinity-prod.json per specificare l'affinità delle VM di produzione. Ad esempio, potresti creare un file che specifica che le VM vengono eseguite solo sui nodi con le affinità workload=frontend e environment=prod. Crea il file di affinità dei nodi utilizzando Cloud Shell o crealo in una località a tua scelta.

    [
      {
        "key" : "workload",
        "operator" : "IN",
        "values" : ["frontend"]
      },
      {
        "key" : "environment",
        "operator" : "IN",
        "values" : ["prod"]
      }
    ]
    
  5. Utilizza il file node-affinity-prod.json con il comando gcloud compute instances create per pianificare una VM sul gruppo di nodi con le etichette di affinità corrispondenti.

    gcloud compute instances create prod-vm \
      --node-affinity-file node-affinity-prod.json \
      --machine-type=n1-standard-2
    
  6. Utilizza il comando gcloud compute instances describe e controlla il campo scheduling per visualizzare le affinità dei nodi assegnate alla VM.

Configura le etichette di anti-affinità dei nodi

Le etichette di affinità nodo possono essere configurate come etichette di anti-affinità per impedire l'esecuzione delle VM su nodi specifici. Ad esempio, puoi utilizzare le etichette di anti-affinità per impedire che le VM che utilizzi per scopi di sviluppo vengano pianificate sugli stessi nodi della VM di produzione. L'esempio seguente mostra come utilizzare le etichette di affinità per impedire l'esecuzione delle VM su gruppi di nodi specifici. Questo esempio mostra come pianificare una singola VM, ma puoi anche utilizzare gruppi di istanze gestite per pianificare un gruppo di VM.

gcloud

  1. Per le VM di sviluppo, specifica l'affinità delle VM di sviluppo creando un elemento node-affinity-dev.json con Cloud Shell o creandolo in una località a tua scelta. Ad esempio, crea un file che configura le VM per l'esecuzione su qualsiasi gruppo di nodi con l'affinità workload=frontend, purché non sia environment=prod:

    [
      {
        "key" : "workload",
        "operator" : "IN",
        "values" : ["frontend"]
      },
      {
        "key" : "environment",
        "operator" : "NOT_IN",
        "values" : ["prod"]
      }
    ]
    
  2. Utilizza il file node-affinity-dev.json con il comando gcloud compute instances create per creare la VM di sviluppo:

    gcloud compute instances create dev-vm \
      --node-affinity-file=node-affinity-dev.json \
      --machine-type=n1-standard-2
    
  3. Utilizza il comando gcloud compute instances describe e controlla il campo scheduling per visualizzare le anti-affinità dei nodi assegnate alla VM.

Elimina un gruppo di nodi

Se devi eliminare un gruppo di nodi single-tenant, rimuovi prima tutte le VM dal gruppo di nodi.

Console

  1. Vai alla pagina Nodi single-tenant.

    Vai ai nodi single-tenant

  2. Fai clic sul nome del gruppo di nodi da eliminare.

  3. Per ogni nodo nel gruppo di nodi, fai clic sul nome del nodo ed elimina le singole istanze VM nella pagina dei dettagli del nodo oppure segui la procedura standard per eliminare una singola VM. Per eliminare le VM in un gruppo di istanze gestite, elimina il gruppo di istanze gestite.

  4. Dopo aver eliminato tutte le istanze VM in esecuzione su tutti i nodi del gruppo di nodi, torna alla pagina Nodi single-tenant.

    Vai a Nodi single-tenant

  5. Fai clic su Gruppi di nodi.

  6. Seleziona il nome del gruppo di nodi che devi eliminare.

  7. Fai clic su Elimina.

gcloud

  1. Elenca le istanze VM in esecuzione sui nodi nel gruppo di nodi utilizzando il comando gcloud compute sole-tenancy node-groups list-nodes:

    gcloud compute sole-tenancy node-groups list-nodes GROUP_NAME \
      --zone=ZONE
    

    Sostituisci quanto segue:

    • GROUP_NAME: nome del gruppo di nodi

    • ZONE: zona del gruppo di nodi

  2. Se nel gruppo di nodi sono presenti VM in esecuzione, segui la procedura per eliminare una singola VM o quella per eliminare un gruppo di istanze gestite.

  3. Dopo aver eliminato tutte le VM in esecuzione su tutti i nodi del gruppo di nodi, elimina il gruppo di nodi utilizzando il comando gcloud compute sole-tenancy node-groups delete:

    gcloud compute sole-tenancy node-groups delete GROUP_NAME \
        --zone=ZONE
    

    Sostituisci quanto segue:

    • GROUP_NAME: il nome del gruppo di nodi

    • ZONE: la zona del gruppo di nodi

REST

  1. Elenca le istanze VM in esecuzione sui nodi nel gruppo di nodi utilizzando il metodo nodeGroups.listNodes:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/nodeGroups/GROUP_NAME/listNodes
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID progetto

    • ZONE: la zona del gruppo di nodi

    • GROUP_NAME: il gruppo per cui elencare le VM

  2. Se nel gruppo di nodi sono presenti VM in esecuzione, segui la procedura per eliminare una singola VM o quella per eliminare un gruppo di istanze gestite.

  3. Dopo aver eliminato tutte le VM in esecuzione su tutti i nodi del gruppo di nodi, elimina il gruppo di nodi utilizzando il metodo nodeGroups.delete:

    DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/nodeGroups/GROUP_NAME
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID progetto

    • ZONE: la zona del gruppo di nodi

    • GROUP_NAME: il nome del gruppo di nodi da eliminare

Elimina un modello di nodo

Puoi eliminare un modello di nodo dopo aver eliminato tutti i gruppi di nodi che lo utilizzano.

Console

  1. Nella console Google Cloud, vai alla pagina Nodi single-tenant.

    Vai ai nodi single-tenant

  2. Fai clic su Modelli di nodo.

  3. Seleziona il nome di un modello di nodo inutilizzato.

  4. Fai clic su Elimina.

gcloud

Utilizza il comando gcloud compute sole-tenancy node-templates delete per eliminare un modello di nodo inutilizzato:

gcloud compute sole-tenancy node-templates delete TEMPLATE_NAME \
  --region=REGION

Sostituisci quanto segue:

  • TEMPLATE_NAME: il nome del modello di nodo da eliminare

  • REGION: la regione del modello di nodo

REST

Utilizza il metodo compute.nodeTemplates.delete per eliminare un modello di nodo non utilizzato:

 DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/nodeTemplates/TEMPLATE_NAME
 

Sostituisci quanto segue:

  • PROJECT_ID: il tuo ID progetto

  • REGION: la regione Google Cloud che contiene il modello di nodo

  • TEMPLATE_NAME: il nome del modello di nodo da eliminare

Passaggi successivi