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 carichi di lavoro sono isolati da quelli 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 nodo o un gruppo di nodi 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

Spostamento temporaneo dei carichi di lavoro in single-tenancy

A causa dei requisiti variabili dei carichi di lavoro, ad esempio esigenze periodiche di isolamento aggiuntivo per esaminare le prestazioni o modifiche alle normative di conformità, potrebbe essere necessario spostare temporaneamente carichi di lavoro specifici nei nodi single-tenant. Poi, quando non avrai più bisogno del single-tenant, esegui nuovamente il deployment delle VM su un host multi-tenant. Quando modifichi la tenancy di una VM, Compute Engine mantiene 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, 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 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 tenancy esclusiva di una VM è specificata dal nome del gruppo di nodi o utilizzando l'node-group-name etichetta di affinità predefinita, la VM può essere riavviata su qualsiasi nodo del gruppo di nodi. Se la tenancy esclusiva della VM è specificata utilizzando l'affinità o le etichette di 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 è il processo mediante il quale la tua identità viene verificata per l'accesso ai Google Cloud servizi e alle 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. 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 di API REST in questa pagina in un ambiente di sviluppo locale, utilizzi le credenziali che fornisci 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 saperne di più, consulta la sezione Autenticarsi per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud .

Spostamento di una VM in una tenancy esclusiva

Aggiorna la tenancy spostando la VM in un nodo single-tenant o in un gruppo di nodi specifico da un altro nodo o gruppo di nodi oppure 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 ulteriori informazioni 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

    • Zona ZONE 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

    • Zona ZONE 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

    • Zona ZONE contenente il progetto

    • VM_NAME nome della VM da avviare

Spostamento di una VM al di fuori della tenancy esclusiva

Se la tua VM non richiede più hardware dedicato, ad esempio dopo un evento che richiedeva 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 in precedenza le affinità dei nodi.

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

    • Zona ZONE 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

    • Zona ZONE contenente il progetto

    • Nome VM_NAME 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, 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

    • Zona ZONE contenente il progetto

    • VM_NAME nome della VM da avviare

Passaggi successivi