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. Sugli host multi-tenant, le VM in genere condividono le risorse host con le VM di altri progetti e clienti. Quando sposti una VM in un nodo single-tenant, il tuo progetto ha accesso esclusivo e controllo completo dell'hardware del nodo single-tenant. Sei l'unico tenant su quel nodo, quindi i tuoi workload sono isolati dai workload di altri progetti e dalle relative VM.

Modificando le etichette di affinità nodo, 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 o un nodo 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 o nodo single-tenant

Spostare temporaneamente i carichi di lavoro in single-tenancy

A causa dei requisiti fluttuanti dei tuoi workload, ad esempio esigenze periodiche di isolamento aggiuntivo per esaminare le prestazioni o modifiche ai tuoi regolamenti di conformità, potresti dover spostare temporaneamente workload specifici nei nodi single-tenant. Poi, quando non hai più bisogno del single-tenancy, esegui nuovamente il deployment delle VM su un host multi-tenant. Quando modifichi la tenancy di una VM, Compute Engine ne conserva le configurazioni.

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, il che può aiutarti a consolidare i nodi e a ribilanciare i carichi di lavoro. Lo spostamento di una VM richiede un riavvio, quindi pianifica lo spostamento delle VM in base ai requisiti di disponibilità dei tuoi workload.

Limitazioni

  • Quando sposti una VM già in esecuzione su un nodo single-tenant, la VM potrebbe riavviarsi su un altro nodo. Se la tenancy esclusiva di una VM è 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 del gruppo di nodi. Se la tenancy esclusiva della VM è specificata utilizzando etichette di affinità o anti-affinità personalizzate, 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 verifica la tua identità per l'accesso a Google Cloud servizi e API. 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:

    gcloud

    1. Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il seguente comando:

      gcloud init

      Se utilizzi un provider di identità (IdP) esterno, devi prima accedere alla gcloud CLI con la tua identità federata.

    2. Set a default region and zone.

    REST

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

      Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il seguente comando:

      gcloud init

      Se utilizzi un provider di identità (IdP) esterno, devi prima accedere alla gcloud CLI con la tua identità federata.

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

Spostamento di una VM nella single-tenancy

Aggiorna la tenancy spostando la VM in un nodo single-tenant o gruppo di nodi specifico 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:

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

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

    In alternativa, puoi spostare una VM in 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. Avvia la VM.

    gcloud compute instances start VM_NAME
    

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

REST

  1. Arresta la VM. Per saperne di più su questo comando, vedi instances.stop.

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

    Sostituisci quanto segue:

    • PROJECT_ID: l'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:

    • PROJECT_ID ID del progetto contenente la VM da spostare

    • ZONE zona contenente il progetto

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

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

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

  3. Avvia la VM. Per ulteriori 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

Rimuovere una VM dalla 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, sposta la VM 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 su 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. Avvia la VM su un host multi-tenant.

    gcloud compute instances start VM_NAME
    

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

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. Cancella le affinità dei nodi dalla VM per spostarla su 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

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

  3. Avvia la VM su un host multi-tenant. Per saperne di più 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

Passaggi successivi