Aggiornamento della tenancy VM

Questa pagina descrive come aggiornare la tenancy di una VM modificando le etichette di affinità dei nodi della VM.

Per impostazione predefinita, Compute Engine esegue il deployment delle VM su host multi-tenant. Negli host multi-tenant, in genere le VM condividono le risorse host con le VM di altri progetti e clienti. Quando sposti una VM su un nodo single-tenant, il tuo progetto ha accesso esclusivo all'hardware del nodo single-tenant e ha il controllo completo. Sei l'unico tenant su quel nodo, quindi i tuoi carichi di lavoro sono isolati dai carichi di lavoro di altri progetti e dalle relative VM.

Modificando le etichette di affinità dei nodi, puoi spostare una VM nei seguenti modi:

  • Da un host multi-tenant a un gruppo di nodi o nodo single-tenant
  • Da un gruppo di nodi single-tenant a un host multi-tenant
  • Da un nodo single-tenant a un altro nodo o gruppo di nodi single-tenant
  • Da un gruppo di nodi single-tenant a un altro gruppo di nodi single-tenant o nodo

Spostamento temporaneo dei carichi di lavoro in single-tenancy

A causa della fluttuazione dei requisiti dei carichi di lavoro, come necessità periodiche di ulteriore isolamento per esaminare le prestazioni o modifiche alle normative di conformità, potrebbe essere necessario spostare temporaneamente carichi di lavoro specifici nei nodi single-tenant. Quindi, quando non hai più bisogno della single-tenancy, esegui nuovamente il deployment delle VM in un host multi-tenant. Quando modifichi la tenancy di una VM, Compute Engine conserva le configurazioni della VM.

Ribilanciamento dei carichi di lavoro single-tenant

Oltre a spostare le VM da e verso nodi e gruppi di nodi single-tenant, puoi spostare le VM tra nodi e gruppi di nodi, in modo da consolidare i nodi e ribilanciare i carichi di lavoro. Lo spostamento di una VM richiede il riavvio, quindi pianifica lo spostamento delle VM in base ai requisiti di disponibilità dei carichi di lavoro.

Limitazioni

  • Quando sposti una VM già in esecuzione su un nodo single-tenant, la VM potrebbe riavviarsi su un altro nodo. Se la single-tenancy di una VM viene specificata dal nome del gruppo di nodi o utilizzando l'etichetta di affinità predefinita node-group-name, la VM può essere riavviata su qualsiasi nodo nel gruppo di nodi. Se la single-tenancy della VM viene specificata utilizzando etichette di affinità personalizzata di affinità o anti-affinità, la VM potrebbe riavviarsi su qualsiasi nodo di qualsiasi gruppo di nodi nella zona.

Prima di iniziare

  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è il processo mediante il quale viene verificata l'identità per l'accesso ai servizi e alle API Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti in Compute Engine nel seguente modo.

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

    gcloud

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

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

    REST

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

      Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

      gcloud init

Spostamento di una VM in modalità single-tenancy

Aggiorna la tenancy spostando la VM su uno specifico nodo o gruppo di nodi single-tenant da un altro nodo o gruppo di nodi o da un host multi-tenant.

gcloud

  1. Arresta la VM.

    gcloud compute instances stop VM_NAME
    

    Sostituisci VM_NAME con il nome della VM da arrestare.

  2. Aggiorna la tenancy specificando il gruppo di nodi in cui spostare la VM.

    gcloud compute instances set-scheduling VM_NAME \
        --node-group=NODE_GROUP_NAME
    

    Sostituisci quanto segue:

    • Nome VM_NAME della VM da spostare in un gruppo di nodi specifico

    • Nome NODE_GROUP_NAME del gruppo di nodi in cui spostare la VM

    In alternativa, puoi spostare una VM su un nodo single-tenant utilizzando il nome del nodo o un'etichetta di affinità. Per ulteriori informazioni, consulta il comando gcloud compute instances set-scheduling.

  3. Avviare la VM.

    gcloud compute instances start VM_NAME
    

    Sostituisci VM_NAME con il nome della VM per avviare il gruppo di nodi specificato in precedenza dai contenuti di un file di etichetta di affinità.

REST

  1. Arresta la VM. Per ulteriori informazioni su questo comando, consulta instances.stop.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop
    

    Sostituisci quanto segue:

    • PROJECT_ID: ID del progetto contenente la VM da arrestare

    • ZONE zona contenente il progetto

    • VM_NAME nome della VM da arrestare

  2. Aggiorna la tenancy specificando il gruppo di nodi in cui spostare la VM.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setScheduling
    
    {
      "nodeAffinities": [
        {
          "key": "compute.googleapis.com/node-group-name",
          "operator": "IN",
          "values": [
            "NODE_GROUP_NAME"
          ]
        }
      ]
    }
    

    Sostituisci quanto segue:

    • ID PROJECT_ID del progetto contenente la VM da spostare

    • ZONE zona contenente il progetto

    • Nome VM_NAME della VM da spostare in un gruppo di nodi specifico

    • Nome NODE_GROUP_NAME del gruppo di nodi in cui spostare la VM

    In alternativa, puoi spostare una VM su un nodo single-tenant utilizzando il nome del nodo o un'etichetta di affinità. Per ulteriori informazioni, consulta il metodo instances.setScheduling.

  3. Avviare la VM. Per maggiori informazioni su questo comando, vedi instances.start.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/start
    

    Sostituisci quanto segue:

    • PROJECT_ID ID del progetto contenente la VM da avviare

    • ZONE zona contenente il progetto

    • VM_NAME nome della VM da avviare

Spostare una VM fuori dalla modalità single-tenancy

Se la tua VM non richiede più hardware dedicato, ad esempio dopo un evento che ha richiesto l'isolamento della VM da altre VM, spostala da un nodo single-tenant a un host multi-tenant.

gcloud

  1. Arresta la VM.

    gcloud compute instances stop VM_NAME
    

    Sostituisci VM_NAME con il nome della VM da arrestare.

  2. Cancella le affinità dei nodi dalla VM in modo da poterla spostare in un host multi-tenant.

    gcloud compute instances set-scheduling VM_NAME --clear-node-affinities
    

    Sostituisci VM_NAME con il nome della VM per cui rimuovere le affinità dei nodi.

  3. Avviare la VM su un host multi-tenant.

    gcloud compute instances start VM_NAME
    

    Sostituisci VM_NAME con il nome della VM da cui in precedenza hai cancellato le affinità dei nodi.

REST

  1. Arresta la VM. Per maggiori informazioni su questo comando, consulta instances.stop.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop
    

    Sostituisci quanto segue:

    • PROJECT_ID ID del progetto contenente la VM da arrestare

    • ZONE zona contenente il progetto

    • VM_NAME nome della VM da arrestare

  2. Cancella le affinità dei nodi dalla VM per spostarla in un host multi-tenant.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setScheduling
    
    {
      "nodeAffinities": []
    }
    

    Sostituisci quanto segue:

    • PROJECT_ID ID del progetto contenente la VM da spostare

    • ZONE zona contenente il progetto

    • Nome VM_NAME della VM da cui cancellare le affinità dei nodi

  3. Avviare la VM su un host multi-tenant. Per ulteriori informazioni su questo comando, consulta instances.start.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/start
    

    Sostituisci quanto segue:

    • PROJECT_ID ID del progetto contenente la VM da avviare

    • ZONE zona contenente il progetto

    • VM_NAME nome della VM da avviare

Passaggi successivi