Esegui il provisioning delle VM sui nodi single-tenant

In questa pagina viene descritto 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 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 che prenoti, potrebbe essere necessario richiedere una quota aggiuntiva.
  • Se non l'hai già fatto, configura l'autenticazione. L'autenticazione è il processo mediante il quale viene verificata l'identità dell'utente per ottenere l'accesso ai servizi e alle API Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi eseguire l'autenticazione in Compute Engine come segue.

    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. Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

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

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

        Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

        gcloud init

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

Crea un modello di nodo single-tenant

I modelli di nodi single-tenant sono risorse di regione 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 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 Etichette di affinità dei nodi. Le etichette di affinità consentono di raggruppare logicamente nodi e gruppi di nodi e, in seguito, durante il provisioning delle VM, puoi specificare le etichette di affinità sulle VM per pianificare le VM 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 single-tenant in un'altra regione, ripeti i passaggi precedenti.

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

gcloud

Usa 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: 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 sia 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 illustrato 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: il numero di dischi SSD. Imposta su 16 o 24.

  • DISK_SIZE: valore facoltativo per le dimensioni della partizione dell'SSD locale in GB. L'unica dimensione della partizione supportata è 375 e, 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: 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 della chiave di un'etichetta di affinità dei nodi 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, vedi Affinità dei nodi e anti-affinità.

  • VALUE: il valore nodeAffinityLabels che specifica la parte relativa al valore di una coppia chiave-valore di 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 sia 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 le dimensioni 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: il numero di dischi SSD. Imposta su 16 o 24.

Crea un gruppo di nodi single-tenant

Con il modello di nodi 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 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 nodo 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 del gestore della scalabilità automatica dei gruppi di nodi:

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

    • On: consente di aggiungere o rimuovere automaticamente i nodi dal gruppo di nodi.

    • Solo scale out: aggiungi nodi al gruppo di nodi quando è richiesta una 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 manualmente i valori in un secondo momento.

  9. Imposta il Criterio di manutenzione del gruppo di nodi single-tenant nella sezione Configura 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, vedi Criteri di manutenzione.

    • Predefinito
    • Riavvio in loco
    • 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 per il tuo gruppo di nodi single-tenant, nel modo seguente:

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

    • Attivazione del controllo di manutenzione avanzato per single-tenancy: Il controllo di manutenzione avanzato per la single-tenancy 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 sul pulsante Attiva il controllo di manutenzione avanzato per la modalità single-tenancy impostando l'opzione su on. Se scegli di utilizzare questa opzione per la manutenzione dei nodi, il campo Periodo di manutenzione è disabilitato e la manutenzione viene eseguita come configurato nel controllo di manutenzione avanzato.

    Tieni presente che 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 dell'organizzazione, scegli Condividi questo gruppo di nodi con tutti i progetti dell'organizzazione.
    • Per condividere il gruppo di nodi con progetti specifici all'interno dell'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 ulteriori 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 nodi 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 nodo su cui si basa il gruppo di nodi.

  • MAINTENANCE_POLICY: il criterio di manutenzione per il gruppo di nodi. Per ulteriori informazioni, consulta 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 single-tenant, utilizzando il flag --maintenance-interval. Per ulteriori informazioni, consulta Abilitare il controllo di manutenzione avanzato su un nodo single-tenant.

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

  • 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: consente di aggiungere o rimuovere automaticamente nodi dal gruppo di nodi.

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

  • 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 il criterio AUTOSCALER_MODE non è impostato su off.

REST

Utilizza il metodo nodeGroups.insert per creare un gruppo di nodi basato su un modello di nodi 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 viene basato 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 per il gruppo di nodi single-tenant, utilizzando il campo maintenanceInterval. Per ulteriori informazioni, consulta Abilitare il controllo di manutenzione avanzato su un nodo single-tenant.

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

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

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

    • ON: consente di aggiungere o rimuovere automaticamente nodi dal gruppo di nodi.

    • ONLY_SCALE_OUT: aggiungi nodi al gruppo di nodi quando è richiesta una capacità aggiuntiva.

  • 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 il criterio 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 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 etichette di affinità alla VM.

In alternativa, puoi utilizzare la seguente procedura 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 e, facoltativamente, fai clic sul nome del nodo single-tenant specifico per eseguire il provisioning della VM.

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

  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 le altre impostazioni in base alle tue esigenze.

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

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

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

    • Termina: VM arrestata durante gli eventi di manutenzione.

  9. Scegli una delle seguenti opzioni per Riavvio automatico:

    • On (opzione consigliata): 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 comando 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 si riavviano dopo l'arresto. Questo flag è abilitato per impostazione predefinita. Usa --no-restart-on-failure per disattivarla.

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 immagine 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 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 una delle seguenti opzioni:

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

    • TERMINATE: VM arrestata durante eventi di manutenzione.

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

  • GPU_COUNT: numero di GPU rispetto al 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 questa condizione durante la creazione dell'istanza e il modello di nodo non supporta l'SSD locale, la creazione dell'istanza non riuscirà. Imposta nvme se i driver dell'immagine disco di avvio sono ottimizzati per NVMe, altrimenti impostali 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 su 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 una delle seguenti opzioni:

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

    • TERMINATE: VM arrestata durante eventi di manutenzione.

  • RESTART_ON_FAILURE: indica se le VM single-tenant 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 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 acceleratori 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. Imposta su NVME se i driver dell'immagine disco di avvio sono ottimizzati per NVMe, altrimenti su SCSI.

Esegui il provisioning di un gruppo di VM single-tenant

I gruppi di istanze gestite 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 specificare le affinità dei nodi per questi gruppi di nodi 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: 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.

    • IMAGE_PROJECT: il progetto immagine della famiglia di immagini.

    • IMAGE_FAMILY: la famiglia di immagini 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 acceleratori 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 disco di avvio sono ottimizzati per NVMe, altrimenti 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 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 in questo 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à nodo che puntano 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 inoltre 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 tuo 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 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 che esiste in più di una zona, specifica un elenco di gruppi di nodi che esistono nelle stesse zone delle 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 il 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 acceleratori 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 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. Imposta su NVME se i driver dell'immagine disco di avvio sono ottimizzati per NVMe, altrimenti su SCSI.

  2. Utilizza il metodo instanceGroupManagers.insert per creare un gruppo di istanze gestite all'interno del tuo 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: il 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 in questo 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 questo gruppo. Il modello deve avere un'etichetta di affinità del nodo che rimandi al gruppo di nodi appropriato.

Configura le etichette di affinità dei nodi

Le etichette di affinità dei nodi consentono di raggruppare logicamente gruppi di nodi e pianificare le VM su un insieme specifico di gruppi di nodi. Puoi anche utilizzare le etichette di affinità dei nodi per pianificare le VM su gruppi di nodi in zone diverse e mantenere 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 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. Usa 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 su nodi con entrambe le affinità workload=frontend e environment=prod. Crea il file di affinità del nodo 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 sul gruppo di nodi con 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 seleziona 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 utilizzate a scopo 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 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 elemento node-affinity-dev.json con Cloud Shell o creandolo in una località a tua scelta. Ad esempio, crea un file che configuri le VM in modo che vengano eseguite 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 seleziona 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 ciascun nodo nel gruppo di nodi, fai clic sul nome del nodo ed elimina le singole istanze VM nella relativa pagina dei dettagli 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 da 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 sul gruppo di nodi sono presenti VM in esecuzione, 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 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: ID progetto

    • ZONE: la zona del gruppo di nodi

    • GROUP_NAME: il gruppo per il quale elencare le VM

  2. Se sul gruppo di nodi sono presenti VM in esecuzione, 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: 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 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 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 che contiene il modello di nodo

  • TEMPLATE_NAME: il nome del modello di nodo da eliminare

Passaggi successivi