Esegui il provisioning delle VM sui 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 dei 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 proprietà uniformi per tutti i nodi single-tenant in un gruppo di nodi single-tenant.

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

  3. Creazione di VM e relativo provisioning in un gruppo di nodi single-tenant.

Prima di iniziare

  • Prima di eseguire il provisioning delle VM su un nodo single-tenant, controlla la tua quota. A seconda del numero e delle dimensioni dei nodi riservati, potresti dover richiedere una quota aggiuntiva.
  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è la procedura mediante la quale la tua identità viene verificata per l'accesso alle API e ai servizi Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:

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

    Console

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

    gcloud

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

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

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

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

        gcloud init

      Per saperne di più, consulta Eseguire l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.

Creare un modello di nodo single-tenant

I modelli di nodi single-tenant sono risorse regionali che specificano le proprietà per i 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 nodi durante la creazione di un gruppo di nodi monoproprietario.

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 monoproprietario. 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 di proprietà esclusiva.

    Vai a 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 nodi 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 di proprietà esclusiva.

  7. Specifica un nome per il modello di nodo.

  8. Specifica il tipo di nodo per ogni 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'unità SSD locale e un acceleratore GPU.
    • Seleziona Attiva overcommit della CPU per controllare i livelli di overcommit della CPU per ogni VM pianificata sul nodo.

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

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

  11. (Facoltativo) Per aggiungere un nuovo modello di nodo di proprietà esclusiva in una regione diversa, ripeti i passaggi precedenti.

Per visualizzare i modelli di nodi, fai clic su Modelli di nodi 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 \]
  [--cpu-overcommit-type=CPU_OVERCOMMIT_TYPE]

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 ogni 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à ti consentono di raggruppare logicamente i nodi e i gruppi di nodi e, in un secondo momento, durante il provisioning delle VM, puoi specificare le etichette di affinità sulle VM per pianificarle 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 node di proprietà singola creato in base a questo modello di node. Per informazioni sulla disponibilità delle GPU a livello di zona, utilizza il comando gcloud compute accelerator-types list e scegli una zona in cui è disponibile il tipo di nodo n1 o g2 per l'uso esclusivo del cliente. A seconda della disponibilità nelle zone, imposta uno dei seguenti valori:

    • 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 tabella seguente:

    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. Da impostare su 16 o 24.

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

  • CPU_OVERCOMMIT_TYPE: il tipo di overcommit per le CPU su una VM. Da impostare su enabled o none.

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
    }
  ],
  "cpuOvercommitType": CPU_OVERCOMMIT_TYPE
}

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 ogni zona.

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

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

  • GPU_TYPE: il tipo di GPU per ogni node di proprietà singola creato in base a questo modello di nodo. Per informazioni sulla disponibilità delle GPU a livello di zona, utilizza il comando gcloud compute accelerator-types list e scegli una zona in cui è disponibile il tipo di nodo n1 o g2 per l'uso esclusivo del cliente. A seconda della disponibilità nelle varie zone, imposta uno dei seguenti valori:

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

    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 e, se non imposti questo valore, il valore predefinito è 375.

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

  • CPU_OVERCOMMIT_TYPE: tipo di overcommit della CPU. Impostato su enabled, none o CPU_OVERCOMMIT_TYPE_UNSPECIFIED.

Creare 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 nodo single-tenant e ha valori aggiuntivi che devi specificare.

Console

  1. Nella console Google Cloud, vai alla pagina Nodi di proprietà esclusiva.

    Vai a 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 o fai clic su Crea modello di nodo per creare un nuovo modello di nodo di proprietà esclusiva. Il modello di nodo selezionato viene applicato al gruppo di nodi.

  7. Scegli una delle seguenti opzioni per la modalità di scalabilità automatica del 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 scalabilità out: aggiungi nodi al gruppo di nodi quando è necessaria una maggiore capacità.

  8. Specifica il Numero di nodi per il gruppo. Se attivi lo strumento di scalabilità automatica dei gruppi di nodi, specifica un intervallo per le dimensioni del gruppo di nodi. Puoi modificare manualmente i valori in un secondo momento.

  9. Imposta il criterio di manutenzione del gruppo di nodi di proprietà esclusiva nella sezione Configura le impostazioni di manutenzione su uno dei seguenti valori. Il criterio di manutenzione consente di configurare il comportamento delle VM nel gruppo di nodi durante gli eventi di manutenzione dell'host. Per ulteriori informazioni, consulta Criteri di manutenzione.

    • Predefinito
    • Riavvia in loco
    • Eseguire 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 gruppo di nodi proprietario, come segue:

    • Finestra di manutenzione:seleziona il periodo di tempo durante il quale vuoi che vengano eseguiti gli eventi di manutenzione pianificata per i nodi dei gruppi di nodi single-tenant.

    • Attiva il controllo di manutenzione avanzato per il single-tenancy: il controllo di manutenzione avanzato per il single-tenancy ti consente di controllare gli eventi di manutenzione pianificata per i gruppi di nodi single-tenant e di ridurre al minimo le interruzioni correlate alla manutenzione. Per attivare il controllo di manutenzione avanzato, fai clic sull'opzione Attiva il controllo di manutenzione avanzato per single-tenancy per impostarla su On. Se scegli di utilizzare questa opzione per la manutenzione del nodo, il campo Periodo di manutenzione viene disattivato e la manutenzione viene eseguita come configurato nel controllo della manutenzione avanzata.

    Tieni presente che il controllo della manutenzione avanzata supporta solo il criterio di manutenzione Predefinito.

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

    • Per condividere il gruppo di nodi con tutti i progetti della tua 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 della tua organizzazione, scegli Condividi questo gruppo di nodi con 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 saperne di più 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 essere la stessa regione del modello di nodi 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 essere uno dei seguenti valori:

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

    In alternativa, puoi attivare il controllo di manutenzione avanzato per il gruppo di nodi di proprietà esclusiva utilizzando il flag --maintenance-interval. Per saperne di più, vedi Attivare il controllo di manutenzione avanzato su un nodo single-tenant.

  • START_TIME: l'ora di inizio in GMT della periodo di manutenzione per le VM in questo gruppo di nodi. Imposta uno dei seguenti valori: 00:00, 04:00, 08:00, 12:00, 16:00 o 20:00. Se non è impostato, il gruppo di nodi non ha un periodo di manutenzione impostato.

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

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

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

    • only-scale-out: aggiungi nodi al gruppo di nodi quando è richiesta una maggiore 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 inferiore o uguale a 100 e superiore 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 in base a 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 manutenzi 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 per il gruppo di nodi di proprietà privata utilizzando il campo maintenanceInterval. Per saperne di più, vedi Attivare il controllo di manutenzione avanzato su un nodo single-tenant.

  • START_TIME: l'ora di inizio in GMT della periodo di manutenzione per le VM in questo gruppo di nodi. Imposta uno dei seguenti valori: 00:00, 04:00, 08:00, 12:00, 16:00 o 20:00. Se non è impostato, il gruppo di nodi non ha un periodo di manutenzione impostato.

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

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

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

    • ONLY_SCALE_OUT: aggiungi nodi al gruppo di nodi quando è richiesta una maggiore 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 inferiore o uguale a 100 e superiore 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 in base a un modello di nodo 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 un 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 riportata di seguito 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 di proprietà esclusiva.

    Vai a 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 e, facoltativamente, per eseguire il provisioning di una VM su un nodo single-tenant specifico, fai clic sul nome del nodo single-tenant specifico su cui eseguire il provisioning della VM.

  4. Fai clic su Crea istanza per eseguire il provisioning di un'istanza VM in questo gruppo di nodi, prendi nota dei valori applicati automaticamente per Nome, Regione e Zona e modificali in base alle necessità.

  5. Seleziona una configurazione della macchina specificando la Famiglia di macchine, la Serie e il Tipo di macchina. Scegli la serie corrispondente al tipo di nodo single-tenant.

  6. Modifica il disco di avvio, il firewall e altre impostazioni, se necessario.

  7. Fai clic su Proprietà esclusiva, prendi nota delle Etichette di affinità dei nodi assegnate automaticamente e utilizza Sfoglia per apportare le modifiche necessarie.

  8. Fai clic su Gestione e per Manutenzione sull'host, scegli una delle seguenti opzioni:

    • Esegui migrazione istanza VM (consigliato): la VM è stata migrata a un altro nodo nel gruppo di nodi durante gli eventi di manutenzione.

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

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

    • On (recommended): riavvia automaticamente le VM se vengono messe in pausa per eventi di manutenzione.

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

  10. Fai clic su Crea per completare la creazione della VM monoproprietario.

gcloud

Utilizza il comando gcloud compute instances create per eseguire il provisioning di una VM in 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 monoproprietario si riavviano dopo l'arresto. Questo flag è attivato per impostazione predefinita. Usa --no-restart-on-failure per disattivare.

Sostituisci quanto segue:

  • VM_NAME: il nome della nuova VM monoutente.

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

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

  • IMAGE_PROJECT: il project di immagini della famiglia di immagini.

  • GROUP_NAME: il nome del gruppo di nodi su 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 ottenere 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 uno dei seguenti valori:

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

    • TERMINATE: la VM si è 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 lo specifichi durante la creazione dell'istanza e il modello di nodo non supporta l'SSD locale, la creazione dell'istanza non riesce. Imposta su nvme se i driver dell'immagine del disco di avvio sono ottimizzati per NVMe, altrimenti imposta su scsi. Specifica questo flag e un valore corrispondente una volta per ogni partizione dell'unità 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 monoutente.

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

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

    • TERMINATE: la VM si è arrestata durante gli eventi di manutenzione.

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

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

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

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

  • SUBNETWORK: l'URL della risorsa della sottorete 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: project image della famiglia di immagini.

  • IMAGE_FAMILY: image family dell'immagine da utilizzare per creare la VM.

  • LOCAL_SSD_ZONE: la zona dell'unità SSD locale.

  • SSD_INTERFACE: il tipo di interfaccia SSD locale. Imposta su NVME se i driver dell'immagine del disco di avvio sono ottimizzati per NVMe, altrimenti imposta 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 sole-tenant identiche. Le etichette di affinità ti consentono di specificare il nodo o il gruppo di nodi single-tenant su cui eseguire il provisioning del gruppo di VM single-tenant.

Per i MIG regionali, devi creare gruppi di nodi in ciascuna delle zone del MIG regionale e devi specificare le affinità dei nodi per questi gruppi di nodi nel modello di istanza del MIG regionale.

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 istanza.

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

    • IMAGE_PROJECT: il project di immagini della famiglia di immagini.

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

    • GROUP_NAME: il nome del gruppo di nodi su 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ù di una zona, utilizza il flag --node-affinity-file per specificare un elenco di valori per i gruppi di nodi del gruppo di istanze gestite 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. Imposta su nvme se i driver dell'immagine del disco di avvio sono ottimizzati per NVMe, altrimenti imposta su scsi. Specifica questo flag e un valore corrispondente una volta 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 di proprietà esclusiva:

    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 in questo gruppo di istanze. Il gruppo di nodi deve disporre di risorse sufficienti per ospitare le istanze in questo gruppo di istanze gestite. Utilizza il ridimensionamento automatico 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 rimandano 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 --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 di proprietà singola:

    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: il nome del gruppo di nodi su 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ù di una zona, specifica un elenco di gruppi di nodi esistenti 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 sottorete per questo modello di istanza.

    • SUBNETWORK: l'URL della risorsa della sottorete 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 project di immagini della famiglia di immagini.

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

    • LOCAL_SSD_ZONE: la zona dell'unità SSD locale.

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

  2. Utilizza il metodo instanceGroupManagers.insert per creare un gruppo di istanze gestite all'interno del gruppo di nodi di proprietà esclusiva in base al modello di istanza creato in precedenza. In alternativa, se vuoi creare un gruppo di istanze gestite regionale, 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 seguente richiesta:

    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: il nome del prefisso per ciascuna delle istanze nel gruppo di istanze gestite.

    • INSTANCE_GROUP_NAME: il nome del gruppo di istanze.

    • SIZE: il numero di VM da includere in questo gruppo di istanze. Il gruppo di nodi deve disporre di risorse sufficienti per ospitare le istanze in questo gruppo di istanze gestite. Utilizza il ridimensionamento automatico 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 questo gruppo. Il modello deve avere un'etichetta di affinità dei nodi che rimandi al gruppo di nodi appropriato.

Configurare le etichette di affinità dei nodi

Le etichette di affinità nodo ti 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 nei gruppi di nodi in zone diverse e mantenere comunque i gruppi di nodi in un gruppo logico. La procedura riportata di seguito è 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 insieme 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 in una posizione 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 nel 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.

Configurare le etichette di anti-affinità dei nodi

Le etichette di affinità dei nodi possono essere configurate come etichette di anti-affinità per impedire l'esecuzione delle VM su nodi specifici. Ad esempio, puoi utilizzare le etichette di antiaffinità per impedire la pianificazione delle VM che utilizzi per scopi di sviluppo 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 i 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 node-affinity-dev.json con Cloud Shell o in una località a tua scelta. Ad esempio, crea un file che configuri le VM per l'esecuzione su qualsiasi gruppo di nodi con l'affinità workload=frontend, a condizione che 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 di proprietà esclusiva, rimuovi prima le VM dal gruppo di nodi.

Console

  1. Vai alla pagina Nodi di proprietà esclusiva.

    Vai a Nodi single-tenant

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

  3. Per ogni nodo del 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 di proprietà esclusiva.

    Vai a Nodi single-tenant

  5. Fai clic su Gruppi di nodi.

  6. Seleziona il nome del gruppo di nodi da eliminare.

  7. Fai clic su Elimina.

gcloud

  1. Elenca le istanze VM in esecuzione sui nodi del 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: il nome del gruppo di nodi

    • ZONE: zona del gruppo di nodi

  2. Se sono presenti VM in esecuzione nel gruppo di nodi, segui la procedura per eliminare una singola VM o la procedura 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 del 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 sono presenti VM in esecuzione nel gruppo di nodi, segui la procedura per eliminare una singola VM o la procedura 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 nodi dopo aver eliminato tutti i gruppi di nodi che lo utilizzano.

Console

  1. Nella console Google Cloud, vai alla pagina Nodi di proprietà esclusiva.

    Vai a Nodi single-tenant

  2. Fai clic su Modelli di nodi.

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

  4. Fai clic su Elimina.

gcloud

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

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 metodocompute.nodeTemplates.delete per eliminare un modello di nodo inutilizzato:

 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 contenente il modello di nodo

  • TEMPLATE_NAME: il nome del modello di nodo da eliminare

Passaggi successivi