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 su nodi single-tenant, leggi la relativa panoramica.

Per eseguire il provisioning di una VM su un nodo single-tenant è necessario svolgere le seguenti azioni:

  1. Creazione di un template di nodo single-tenant. Questo tipo di template specifica proprietà uniformi per tutti i nodi single-tenant in un gruppo di nodi single-tenant.

  2. Creazione di un gruppo di nodi single-tenant tramite il template 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 prenotati, potresti dover richiedere una quota aggiuntiva.
  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è il processo mediante il quale la tua identità viene verificata per l'accesso a servizi e API di Google Cloud . Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:

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

    Console

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

    gcloud

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

      gcloud init

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

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

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

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

        gcloud init

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

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

Crea un template di nodo single-tenant

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

Console

Devi creare un template di nodo single-tenant prima di creare un gruppo di nodi. Utilizzando la console Google Cloud , devi creare il template di nodo durante la creazione di un gruppo di nodi single-tenant. Il nuovo template 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 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 template di nodo. Puoi utilizzare il template 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 template di nodo, fai clic su Crea template di nodo per iniziare a creare un template di nodo single-tenant.

  7. Specifica un nome per il template di nodo.

  8. Specifica il tipo di nodo per ogni nodo single-tenant nel gruppo di nodi da creare in base a questo specifico template.

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

    • Aggiungi un SSD locale e un acceleratore GPU.
    • Seleziona Attiva overcommit della CPU per controllarne i livelli per ciascuna VM programmata sul nodo.

    • Aggiungi le etichette di affinità nodo. Con le etichette di affinità puoi raggruppare logicamente nodi e gruppi di nodi e impostarle in un secondo momento sulle VM, durante il loro provisioning, per pianificare quest'ultime 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 template di nodo.

  11. Facoltativo: per aggiungere un nuovo template di nodo single-tenant 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 template 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 template di nodo

  • NODE_TYPE: il tipo di nodo per i nodi single-tenant creati in base a questo template. 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 template di nodo. Puoi utilizzare questo template 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à. Con le etichette di affinità puoi raggruppare logicamente nodi e gruppi di nodi e impostarle in un secondo momento sulle VM, durante il loro provisioning, per pianificare quest'ultime 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 template 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 sono disponibili il tipo di nodo single-tenant n1 o g2. A seconda della disponibilità a livello di zona, 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. Eseguine l'impostazione sul 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'SSD locale in GB. L'unica dimensione della partizione supportata è 375. Se non effettui alcuna impostazione, il valore predefinito rimane 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 template 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 template di nodo. Puoi utilizzare questo template per creare gruppi di nodi in qualsiasi zona di questa regione.

  • TEMPLATE_NAME: il nome del nuovo template di nodo

  • NODE_TYPE: il tipo di nodo per i nodi single-tenant creati in base a questo template. 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 sotto forma di coppia chiave-valore. Con le etichette di affinità puoi raggruppare logicamente nodi e gruppi di nodi e impostarle in un secondo momento sulle VM, durante il loro provisioning, per pianificare quest'ultime 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 del valore di una coppia chiave-valore dell'etichetta di affinità dei nodi.

  • GPU_TYPE: il tipo di GPU per ogni nodo single-tenant creato in base a questo template 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 sono disponibili il tipo di nodo single-tenant n1 o g2. A seconda della disponibilità a livello di zona, 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 nodo single-tenant creato in base a questo template di nodo. Eseguine l'impostazione sul 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. Se non effettui alcuna impostazione, il valore predefinito rimane 375.

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

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

Crea un gruppo di nodi single-tenant

Con il template di nodo creato in precedenza, crea un gruppo di nodi single-tenant. Un gruppo di nodi single-tenant eredita le proprietà specificate dal template di nodo single-tenant e ha valori aggiuntivi che devono essere definiti.

Console

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

    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 in cui visualizzarne il template.

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

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

  7. Scegli una delle seguenti opzioni per la modalità di scalabilità automatica del relativo gestore del gruppo 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 è necessaria una maggiore capacità.

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

  9. Nella sezione Configura le impostazioni di manutenzione imposta la policy di manutenzione del gruppo di nodi single-tenant su uno dei seguenti valori. La policy 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 policy di manutenzione.

    • Valore predefinito
    • Riavvia in loco
    • Esegui la migrazione all'interno del gruppo di nodi
  10. Per gestire la manutenzione del gruppo di nodi single-tenant puoi scegliere tra periodi di manutenzione regolari e un controllo di manutenzione avanzato, come mostrato di seguito:

    • Periodo 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 single-tenancy: il controllo di manutenzione avanzato per single-tenancy ti consente di monitorare 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 sul pulsante di attivazione/disattivazione Attiva controllo di manutenzione avanzato per single-tenancy in modo che sia impostato 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 di manutenzione avanzato.

    Tieni presente che il controllo di manutenzione avanzato supporta solo la policy di manutenzione predefinita.

  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 Condividi 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 template 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 template di nodo da utilizzare per creare il gruppo

  • TARGET_SIZE: il numero di nodi da creare all'interno del gruppo

  • ZONE: la zona in cui creare il gruppo di nodi. Questa deve essere la stessa regione del template di nodi su cui si basa il gruppo di nodi.

  • MAINTENANCE_POLICY: la policy di manutenzione per il gruppo di nodi. Per ulteriori informazioni, consulta le policy di manutenzione. Deve corrispondere a 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, vedi Attiva il controllo di manutenzione avanzato su un nodo single-tenant.

  • START_TIME: l'ora di inizio in GMT del 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 viene impostato alcun valore, il gruppo di nodi non ha un periodo di manutenzione configurato.

  • AUTOSCALER_MODE: la policy del gestore della scalabilità automatica per il gruppo di nodi. Deve corrispondere a uno dei seguenti elementi:

    • 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. Il valore deve essere minore o uguale a 100 e superiore o uguale a MIN_NODES Necessario se AUTOSCALER_MODE non è impostato su off.

REST

Utilizza il metodo nodeGroups.insert per creare un gruppo di nodi in base a un template 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 template di nodo su cui si basa il gruppo di nodi.

  • TARGET_SIZE: il numero di nodi da creare all'interno del gruppo

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

  • TEMPLATE_NAME: il nome del template di nodo da utilizzare per creare il gruppo

  • GROUP_NAME: il nome del nuovo gruppo di nodi

  • MAINTENANCE_POLICY: la policy di manutenzione per il gruppo di nodi. Deve corrispondere a 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, vedi Attiva il controllo di manutenzione avanzato su un nodo single-tenant.

  • START_TIME: l'ora di inizio in GMT del 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 viene impostato alcun valore, il gruppo di nodi non ha un periodo di manutenzione configurato.

  • AUTOSCALER_MODE: la policy del gestore della scalabilità automatica per il gruppo di nodi. Deve corrispondere a 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. Il valore deve essere minore o uguale a 100 e superiore o uguale a MIN_NODES Necessario se AUTOSCALER_MODE non è impostato su OFF.

Esegui il provisioning di una VM single-tenant

Dopo aver ottenuto un gruppo di nodi in base a un template 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 in un nodo o un gruppo di nodi specifico con etichette di affinità corrispondenti a quelle assegnate in precedenza al template di nodo, segui la procedura standard per la creazione di un'istanza VM e assegna le etichette di affinità alla VM.

In alternativa, per eseguire il provisioning di una VM in un nodo single-tenant, puoi utilizzare la procedura riportata di seguito descritta nella pagina dei dettagli del gruppo di nodi. In base al gruppo di nodi in 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 a Nodi single-tenant

  2. Fai clic su Gruppi di nodi.

  3. Fai clic sul nome del gruppo di nodi in cui eseguire il provisioning di un'istanza VM; facoltativamente, per eseguire il provisioning di una VM in un nodo single-tenant specifico, puoi fare clic direttamente sul nome del nodo.

  4. Fai clic su Crea istanza per eseguire il provisioning di un'istanza VM in questo gruppo di nodi, appuntati i valori applicati automaticamente per nome, regione e zona e modificali in base alle necessità.

  5. Seleziona una configurazione 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 Sole Tenancy, 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 eseguire la manutenzione sull'host, scegli una delle seguenti opzioni:

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

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

  9. Per eseguire il riavvio automatico, scegli una delle seguenti azioni:

    • On (consigliato): riavvia automaticamente le VM se queste 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 di una VM single-tenant.

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 single-tenant sono in grado di riavviarsi dopo l'arresto. Questo flag è attivo per impostazione predefinita. Usa --no-restart-on-failure per disattivarlo.

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 da utilizzare per creare la VM

  • IMAGE_PROJECT: il progetto della famiglia di immagini

  • GROUP_NAME: il 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 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: durante gli eventi di manutenzione è stata eseguita la migrazione della VM a un altro nodo nel gruppo di nodi.

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

  • GPU_TYPE: tipo di GPU. Eseguine l'impostazione su uno dei tipi di acceleratore specificati al momento della creazione del template di nodo.

  • GPU_COUNT: numero di GPU del totale specificato dal template 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 template di nodo con supporto SSD locale. Se lo imposti durante la creazione dell'istanza e il template di nodo non supporta l'SSD locale, l'operazione non va a buon fine. Esegui l'impostazione su nvme se i driver dell'immagine del disco di avvio sono ottimizzati per NVMe, altrimenti su scsi. Specifica questo flag e un valore corrispondente una volta per ogni partizione dell'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 uno dei seguenti valori:

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

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

  • RESTART_ON_FAILURE: indica se le VM single-tenant sono in grado di riavviarsi dopo l'arresto. Il valore predefinito è true.

  • GROUP_NAME: il 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 della subnet per questa VM

  • GPU_TYPE: il tipo di GPU. Eseguine l'impostazione su uno dei tipi di acceleratore specificati al momento della creazione del template di nodo.

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

  • IMAGE_PROJECT: il progetto della famiglia di immagini

  • IMAGE_FAMILY: la famiglia di immagini da utilizzare per creare la VM

  • LOCAL_SSD_ZONE: la zona dell'SSD locale

  • SSD_INTERFACE: il tipo di interfaccia SSD locale. Esegui l'impostazione su NVME se i driver dell'immagine del 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 (MIG) ti consentono di eseguire il provisioning di un gruppo di VM single-tenant identiche. Le etichette di affinità ti consentono di specificare il nodo o il gruppo di nodi single-tenant in cui eseguire il provisioning del gruppo di VM single-tenant.

Per i MIG a livello di regione, devi creare gruppi di nodi in ciascuna delle zone in cui si trovano queste istanze e specificare le affinità dei nodi per questi gruppi nel template di istanza di questi MIG.

gcloud

  1. Utilizza il comando gcloud compute instance-templates create per generare un template 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 template di 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 progetto della famiglia di immagini

    • IMAGE_FAMILY: la famiglia di immagini da utilizzare per creare la VM

    • GROUP_NAME: il nome del gruppo di nodi in cui eseguire il provisioning della VM. In alternativa, se vuoi utilizzare questo template 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 per quel gruppo di istanze gestite.

    • GPU_TYPE: tipo di GPU. Eseguine l'impostazione su uno dei tipi di acceleratore specificati al momento della creazione del template di nodo.

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

    • SSD_INTERFACE: tipo di interfaccia SSD locale. Esegui l'impostazione su nvme se i driver dell'immagine del 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 disporre di 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 di questi gruppi.

    • INSTANCE_TEMPLATE: il nome del template di istanza da utilizzare per creare questo gruppo di istanze gestite. Il template 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 --region e specifica una regione. Aggiungi inoltre il flag --zones per determinare tutte le zone in cui esistono gruppi di nodi.

REST

  1. Utilizza il metodo instanceTemplates.insert per creare un template 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 template di istanza

    • INSTANCE_TEMPLATE: il nome del nuovo template 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 in cui eseguire il provisioning della VM. Se vuoi utilizzare questo template di istanza per creare un MIG a livello di regione esistente in più di una zona, specifica un elenco di gruppi di nodi presenti nelle stesse zone del MIG a livello di regione.

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

    • REGION: la regione contenente la subnet per questo template di istanza

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

    • GPU_TYPE: il tipo di GPU. Eseguine l'impostazione su uno dei tipi di acceleratore specificati al momento della creazione del template di nodo.

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

    • IMAGE_PROJECT: il progetto della famiglia di immagini

    • IMAGE_FAMILY: la famiglia di immagini da utilizzare per creare la VM

    • LOCAL_SSD_ZONE: la zona dell'SSD locale

    • SSD_INTERFACE: il tipo di interfaccia SSD locale. Esegui l'impostazione su NVME se i driver dell'immagine del 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 gruppo di nodi single-tenant in base al template 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 determina la regione e le zone di tutti i gruppi di nodi come specificato nel template 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 gestore della scalabilità automatica dei gruppi di istanze gestite per gestire automaticamente le dimensioni di questi gruppi.

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

Configura le etichette di affinità dei nodi

Le etichette di affinità dei nodi 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à dei nodi per pianificare le VM su gruppi di nodi situati in zone diverse e mantenere comunque questi gruppi all'interno di un raggruppamento 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 workload 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 template di nodo con un insieme di etichette di affinità per un workload 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 template di nodo.

  3. Utilizza il comando gcloud compute sole-tenancy node-groups create per creare un gruppo di nodi che utilizza il template 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 affinità workload=frontend e environment=prod. Crea il file di affinità dei nodi in una posizione a tua scelta o utilizza Cloud Shell.

    [
      {
        "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 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à 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 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 i gruppi di istanze gestite per pianificare un gruppo di VM.

gcloud

  1. Per le VM di sviluppo, specifica la loro affinità creando un node-affinity-dev.json in una posizione a tua scelta o utilizzando Cloud Shell. Ad esempio, crea un file che configuri le VM per l'esecuzione su qualsiasi gruppo di nodi con affinità workload=frontend e non 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 le VM.

Console

  1. Vai alla pagina Nodi single-tenant.

    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 rispettivo nome 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 direttamente il gruppo.

  4. Dopo aver eliminato ogni singola istanza 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 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: la zona del gruppo di nodi

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

  3. Dopo aver eliminato ogni singola VM in esecuzione su tutti i nodi del gruppo di nodi, elimina il gruppo 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 sul gruppo di nodi, segui la procedura per eliminare una singola VM o un gruppo di istanze gestite.

  3. Dopo aver eliminato ogni singola VM in esecuzione su tutti i nodi del gruppo, elimina il gruppo 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 template di nodo

Puoi eliminare un template di nodi dopo aver eliminato tutti i gruppi di nodi che ne fanno uso.

Console

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

    Vai a Nodi single-tenant

  2. Fai clic su Modelli di nodi.

  3. Seleziona il nome di un template di nodo non utilizzato.

  4. Fai clic su Elimina.

gcloud

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

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

Sostituisci quanto segue:

  • TEMPLATE_NAME: il nome del template di nodo da eliminare

  • REGION: la regione del template di nodo

REST

Utilizza il metodo compute.nodeTemplates.delete per eliminare un template 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 template di nodo

  • TEMPLATE_NAME: il nome del template di nodo da eliminare

Passaggi successivi